java - 在为我们的应用程序形成 REST URL 时,我们应该如何区分与同一对象相关的两个服务?

标签 java rest url naming-conventions

需要两个与对象“item”相关的服务。

  1. 获取项目的详细信息。虽然这是一种获取数据的方法,但我将使用 POST,因为我的 pathParam/MatrixParam 列表太长(比如说,matrixParam 中提供的 buyerIds 用于获取他们购买的商品)。为了避免“URI 太长”异常,我将其设置为 POST。

  2. 保存项目的一些详细信息。这也将是一个 POST 方法,因为它正在保存/更新。

现在,两个服务将具有相同的 url http://...../item并且两者都将 httpMethod 作为 POST。

我们如何通过 URL 区分这两种服务?将其设为“http://.../item/save ”和“.../item/get”是否正确?

最佳答案

如果您的网址最终太长,听起来您的网址设计是错误的 - GET 对 http://.../items/1/purchasers/ 会(例如)一个合适的 URL 来返回所有购买了商品 1 的人,然后要更新商品 1,您可以将 PUT 到 http://.../items/1/ 并创建一个您想要的商品POST 到 http://.../items/

您决定的 URL 方案听起来并不符合 RESTful,因为您使用它来描述操作而不是资源 - URL 应该标识您正在访问的资源,而不是对其执行的操作。

关于java - 在为我们的应用程序形成 REST URL 时,我们应该如何区分与同一对象相关的两个服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30976598/

相关文章:

java - 获取 java.lang.SecurityException : ConnectivityService: Neither user 10062 nor current process has android. 权限。ACCESS_NETWORK_STATE。”

node.js - 如何为 REST API 构建 Mongo 数据库

java - SEVERE : A message body writer for Java class java. 未找到 util.ArrayList 和 MIME 媒体类型 application/json

php - 如何在PHP中更改查询结果页面的URL?

html - URL 框架打破了响应式网站

eclipse - 线程 "main"java.lang.NoClassDefFoundError : Main in Eclipse on OSX 10. 6 中的异常

java - 使用环境变量填充 @ConfigurationProperties 中的 Map

java - FindBugs:重写 equals() 导致静态代码分析错误 EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS

c# - 是否有适用于 Salesforce REST Api 的 c# 包装器?

java - Android,使用异步任务从 url 中获取文本