如何在 Java 中实现 REST 服务

时间:2024-10-13 18:07:14

1、创建 web 应用程序的任何已知应用程序都可用于创建 REST 服务。

如何在 Java 中实现 REST 服务

2、0 版以后的 Spring MVC 等库具有从请求路径中提取变量的功能, 如下图中的示例。

如何在 Java 中实现 REST 服务

3、但是, Play 框架非常适合创建 REST 服务。路由文件提供了路径变量的理想细分, 以及它们如何映射到各个 Java 方法。此文件一目了然, 可以很容易地理解应用程序的 REST API 及其如何与 Java 代码交互。下图显示了用于电影租赁服务的示例路由文件。

如何在 Java 中实现 REST 服务
如何在 Java 中实现 REST 服务

4、对于一个简单的示例, 所有这些操作都映射到单个类中的方法是很好的。但是, 对于一个全面的、可用于生产的解决方案, 这些服务将被分解为它们自己的类, 每个类都有自己的服务对象来与数据库交互, 或者类似的东西。

5、使用 HTTP 方法查看时, 路径描述要执行的操作。调用/users将返回系统中所有用户的表示形式倦虺赳式。调用 PUT /movie/Batman将在服务器上创建一部名为 "蝙蝠侠" 的电影。对于此调用, 您可以看到影片标题已绑定到一个名变量, 类型为 String。

6、更有趣的路径, PUT/rental/:user/:movie, 链接这两个实体, 允许用户租用电影。

7、对 REST 服务很重要的另一个功能是等价性的概念。对于 REST 服务, PUT 和 DELETE 应该是等价的, 这意味着 GET 请求也是等价的。如果多个请求具有与一个请求相同的效果, 则 rest 调用可以定义为等价。在资源上调用 PUT 时, 您正在服务器上创建一个新资源, 因此再次进行相同的调用将导致创建完全相同的资源。DELETE 也是如此: 在调用 DELETE 之后, 资源将不再可用。如果再次调用 DELETE, 则该资源仍然不可用。使用 GET, 应该发生的只是将指定的资源返回到客户端, 而不进行任何更改;因此, 使相同的 GET 应导致返回相同的数据。

8、等价 API 的优点是, 如果客户端不能确定请求是否成功, 则再次提交请求将是正常的。这对于移动电话应用程序非常有用, 因为它可能会在任何时候丢失网络连接, 甚至在发出请求的中途, 或者在发出请求之后, 但在收到响应之前。

9、POST 的定义是对现有资源进行更新。例如, 如果您有一个服务端点将资源的值更新为 1, 则对该资源的多次调用将导致资源在每次调用后具有不同的新值。

© 手抄报圈