REST API URL 最佳实践

REST API URL best practice

假设我有两个模型。 ProjectTask。任务必须属于项目。

以下哪个 URL 端点是最佳实践?

  1. 获取https://api.myapp.com/projects/:project_id/tasks/:task_id
  2. 获取https://api.myapp.com/tasks/:task_id?project_id=:project_id

对于过滤结果,我总是使用查询参数,但我想知道应该我们用必需的参数做什么?

根据 REST 最佳实践,资源成员应该在 url 中。在您的情况下,这意味着:

https://api.myapp.com/projects/:project_id/tasks/:task_id

查询参数应该用作过滤器。例如获取名称以 "TEST"/

开头的所有任务
https://api.myapp.com/projects/:project_id/tasks/:task_id?nameStartsWith=TEST

您可以在这里阅读更多相关信息:http://www.restapitutorial.com/resources.html 下载 PDF 并查看第 14 页 - 资源命名。