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

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

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, 则对该资源的多次调用将导致资源在每次调用后具有不同的新值。