java - 根据休息标准,哪个休息 API url 更好?

标签 java spring rest api api-design

<分区>

我有包作为资源。一个包可以有父包等等。在层次结构之上是根包。现在的用例是:

给定任何包(不一定是根包)的 packageId,我想检索存在于其顶部层次结构中的根包的详细信息。

我对 2 个网址感到困惑:(或任何其他更好的网址)

/rest/v1/packageDetails/rootPackage/{packageId}

或者

/rest/v1/packageDetails/{packageId}/rootPackage

最合适的rest end point url应该是什么?

最佳答案

选项 2。为了证明推理,我将使用一个不同的例子。

假设您有一个 rest API 端点:

/rest/v1/users/{userId}

如果您想创建一个额外的端点来检索数据的子集,例如 attributes,您可以像这样构造它:

/rest/v1/users/{userId}/attributes

为用户检索特定属性的另一个用例可能如下所示:

/rest/v1/users/{userId}/attributes/{attributeId}

需要注意的重要一点是,属性属于用户。属性是特定用户拥有的一位或多位数据。

在您的例子中,一个包有一个 rootPackage,因此您可以将 rootPackage 建模为属于特定的包。

关于java - 根据休息标准,哪个休息 API url 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53228199/

相关文章:

REST API 版本控制 - 流行的 API

java - 如何在从 Java jersey 客户端进行 REST 调用时增加超时?

java - 带有请求参数和内容正文的 Web 请求

java - Aspect 停用 Spring Controller Mapping

java - 在 H2 中持久化 ManyToMany 实体会引发异常

java - 是否可以检测 JCalendar JDateChooser 字段上的日期更改?

java - 不从实体开始学习 Spring Roo

java - 如何使用java配置在spring中配置waffle

Java-识别整数和 double

java - Mockito 模拟一个返回值并验证它