首页 > 解决方案 > 休息最佳实践:我应该遵循什么标准?

问题描述

在发布此问题之前,我阅读了以下书籍和链接,并且由于此问题与最佳实践有关,因此该问题可能已关闭。但是我期待一些专家的意见。

https://www.restapitutorial.com/resources.html REST-API-Design-Rulebook 来自其他博文和 stackoverflow 问题。

例如,要获取有关具有我们正在使用的 id 的员工的信息uri,如下所示

http://myapp-name.myorganization.com/employees/employeeid/123456

但是以上所有资源都告诉我这样做

http://myapp-name.myorganization.com/employees/123456

同样,如果我想获取有关 id 为 12345 的员工的信息,我的 uri 如下

http://myapp-name.myorganization.com/countries/country/US/employeeid/12345

http://myapp-name.myorganization.com/countries/US/12345

这是否意味着我的uri不标准?

标签: restspring-rest

解决方案


它们只是指导方针。您无法在 Rest 文档中涵盖您业务的各种可能性和必需品。

谈到你的例子,

http://myapp-name.myorganization.com/employees/employeeid/123456

http://myapp-name.myorganization.com/employees/123456

都是正确的。但可能会更好(更短)。

通常我更喜欢第二个并使用第一个作为替代品。例如,如果我想通过 id(查找员工的“默认”方法)或他唯一的内部公司代码来查找员工,我更喜欢分别使用:

/employees/123456         # by id
/employees/code/A899123A  # by code

同样,如果我想获取有关 id 为 12345 的员工的信息,我的 uri 如下 http://myapp-name.myorganization.com/countries/country/US/employeeid/12345

这个 URL 对我来说意味着您试图在美国国家/地区查找 ID 为 12345 的员工。但如果该US术语是在您的 API 上查找国家/地区的默认方法,也可能会更短:

 /countries/US/employees/12345

而不是http://myapp-name.myorganization.com/countries/US/12345

这个似乎很混乱。您是否要查找 ID 为 12345 的内容?仅寻找 URL 很难回答。所以,/countries/US/employees/12345更一致。

如果想法是使用一些代码在某个国家/地区查找员工,则 URL 可以遵循相同的模式:/countries/US/employees/code/A899123A


推荐阅读