java - RESTful API 客户端最佳实践

标签 java api rest spring-mvc restful-architecture

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

关于我使用的架构的简短描述:

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

我把客户端的后端部分分成了3个部分:

  1. 数据访问对象级别(此处封装了对 API 的请求,因此我可以轻松更改它的实现,例如从 URLConnection 移动到 Spring RestTemplate);
  2. 聚合级别(此处聚合了来自不同 API 方法的数据);
  3. Controller 级别(用于与前端通信)。

问题:

对我来说,这是非常灵活的架构。但是很多 friend 说DAO级别只能用来和数据库通信。

  1. 我应该重命名我的 DAO 类吗?例如。从“CarDAO”到“CarRepository”等等?
  2. RESTful API Client 的架构是否良好?
  3. 可以改进什么?可以用更少的级别达到相同的灵 active 吗?

最佳答案

你可以改进dao层。

1) 分别创建一个dao服务和dao对象。 服务从 dao 层获取信息,其中 dao 实现可以更改为另一个,同时将 dao 层替换为测试数据的虚拟数据层。在这里使用 JPA 注释。

2) 与 Controller 分开维护请求响应层的编码和解码。

3) 保持模块化,使其类似于插件播放架构。

4) 我建议您使用 JAX-RS 注释,这样服务器和客户端的其余服务实现可以是一个简单的一分钟工作,我们可以使用现有框架使其变得非常简单。

关于java - RESTful API 客户端最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23741625/

相关文章:

java - 一个 web.xml 中的多个 Jersey servlet

java - 如何结合 Webstart Maven 插件使用 Maven 将 'all-permissions' 添加到 list 文件?

java - 从 CLI 生成 Base64 编码的哈希值以匹配 Java

php - Paypal SDK错误 "Credential not found for default user"

java - 如何从 Amazon 实例获取操作系统信息?

rest - Go gorilla 记录每个请求持续时间和状态码

java - HmacSHA1 使用相同的 secret 在不同的系统上生成不同的签名

java - Htmlunit中点击按钮后如何刷新页面

javascript - 使用数字和连字符访问 Javascript 对象键

ruby-on-rails - 不在 Rails Controller 中实现所有 REST 操作是错误的吗?