API 的路由需要有多具体?
How specific does an API's routing need to be?
我正在创建一个 API,我有一个可以通过调用请求的用户:
/api/request/user/{id}
这很好用。
假设每个用户都有一套技能,可以是一个技能,也可以是 100 个。
我想获得特定用户的所有技能。
我会不会非常具体,这样你就必须打电话给:
/api/request/user/{id}/skills
或者这样做:
/api/request/skills/{id}
(其中 {id}
是用户的 id
)
够了吗?
是否有我应该遵循的 REST API 标准或者它是否灵活?
非常感谢任何建议,谢谢。
由于 skills
是用户的 属性,我们将其视为 sub-resource。得到sub-resources是基于嵌套URL(hierarchical way),所以/api/request/user/{id}/skills
就太棒了!
在 /api/request/skills/{id}
情况下 id
应该是技能的标识符,以使您的 API 直观。
还要记住命名 convention。请保持一致,您的 skills
资源是复数,所以让我们将 user
重命名为 users
.
所以,总结一下
/api/request/users/{user_id}
/api/request/users/{user_id}/skills
/api/request/skills/{skill_id}
会很好。
我正在创建一个 API,我有一个可以通过调用请求的用户:
/api/request/user/{id}
这很好用。
假设每个用户都有一套技能,可以是一个技能,也可以是 100 个。
我想获得特定用户的所有技能。
我会不会非常具体,这样你就必须打电话给:
/api/request/user/{id}/skills
或者这样做:
/api/request/skills/{id}
(其中 {id}
是用户的 id
)
够了吗?
是否有我应该遵循的 REST API 标准或者它是否灵活?
非常感谢任何建议,谢谢。
由于 skills
是用户的 属性,我们将其视为 sub-resource。得到sub-resources是基于嵌套URL(hierarchical way),所以/api/request/user/{id}/skills
就太棒了!
在 /api/request/skills/{id}
情况下 id
应该是技能的标识符,以使您的 API 直观。
还要记住命名 convention。请保持一致,您的 skills
资源是复数,所以让我们将 user
重命名为 users
.
所以,总结一下
/api/request/users/{user_id}
/api/request/users/{user_id}/skills
/api/request/skills/{skill_id}
会很好。