RESTful API客户端最佳实践

4

关于编写RESTful API服务的最佳实践有很多,但很难找到有关编写可扩展、易于维护和结构良好的RESTful API客户端的有用信息。

我使用的架构简述:

我有一个使用Java语言编写的Web应用程序,后端使用Spring MVC,前端使用HTML+CSS+JavaScript+AJAX。

我将客户端后端部分分为3个部分:

  1. 数据访问对象层(这里封装了对API的请求,因此可以轻松更改其实现,例如从URLConnection移动到Spring RestTemplate);
  2. 聚合层(这里对来自不同API方法的数据进行聚合);
  3. 控制器层(用于与前端通信)。

问题:

对我来说,这是非常灵活的架构。然而,我的很多朋友都认为DAO层只能用于与数据库通信。

  1. 我应该将DAO类重命名吗?例如从"CarDAO"更改为"CarRepository"等?
  2. 这是RESTful API客户端的好架构吗?
  3. 有什么可以改进的地方吗?是否可以在较少的层数下达到同样的灵活性?

3
许多好问题会基于专家经验产生一些程度的意见,但对于这个问题的回答往往基本上完全基于意见而非事实、参考或特定专业知识。如果问题中包含“最佳”一词,则很可能与主题无关。 - user177800
1个回答

2
你可以改进dao层。
1)创建一个独立的dao服务和dao对象。 服务从dao层获取信息,其中dao实现可以更改为另一个,同时将dao层替换为测试数据的虚拟数据层。在此处使用JPA注释。
2)将请求响应层的编组和解组织与控制器分开维护。
3)保持模块化,使其像插件播放架构一样。
4)我建议您使用JAX-RS注释,以便rest服务实现(服务器和客户端)都可以成为简单的一分钟工作,并且我们可以使用现有的框架使其非常简单。

请提供一个可用于RESTful API客户端的JPA注释示例,谢谢。 - Dmytro Plekhotkin
我在DAO层中提到了这个。对于纯REST客户端,根据你的使用便捷性,有许多选项可供选择,从Apache HTTP Client API到JAX RS 2.0 complaint APIs不等。 - geddamsatish
你是指像org.springframework.data.rest.core.annotation.RepositoryRestResource这样的注解,还是像javax.persistence.PersistenceContext这样的注解? - Dmytro Plekhotkin
我指的是Java持久化注解。 - geddamsatish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接