rest - 休息最佳实践:我应该遵循什么标准?
问题描述
在发布此问题之前,我阅读了以下书籍和链接,并且由于此问题与最佳实践有关,因此该问题可能已关闭。但是我期待一些专家的意见。
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不标准?
解决方案
它们只是指导方针。您无法在 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
推荐阅读
- tensorflow - TF2 代码比 Conv1D 网络的等效 PyTorch 代码慢 10 倍
- python - 如何在 cython 中创建自定义运算符?
- javascript - 如何在自动生成的内容上触发 click()
- python - 在我的图中绘制 Cartopy 中的文本
- linux - 如何在 Linux 中将日志打印到文件和 cli 中
- python - Python脚本在虚拟环境中从终端运行,但无法找到带有VS Code播放按钮的熊猫
- duplicates - DocuSign API 为文档创建重复条目
- python - 避免记录模块在每次运行代码时将调试信息附加到控制台
- nouislider - noUISlider 在触控设备(Android 和 iOS)中不流畅
- python - 按组分组和连接值