在发布此问题之前,我阅读了以下书籍和链接,并且由于该问题与最佳实践有关,因此可能会关闭该问题。但是我希望有一些专家的意见。
https://www.restapitutorial.com/resources.html REST-API-设计-规则书 其他博客文章和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不符合标准?
答案 0 :(得分:2)
它们只是准则。您无法在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
相反
这似乎令人困惑。您是否要查找ID为12345的内容?仅查找URL很难回答。因此,/countries/US/employees/12345
更加一致。
如果该想法是在某个国家/地区找到具有某些代码的员工,则URL可以采用相同的模式:/countries/US/employees/code/A899123A
答案 1 :(得分:2)