我正在创建一个API,我有一个用户可以通过调用来请求:
/api/request/user/{id}
这很好用。
假设每个用户都有一套技能,可以是一种技能,也可以是100。
我希望获得特定用户的所有技能。
我是否会超级具体而且必须打电话给你:
/api/request/user/{id}/skills
或者这样做:
/api/request/skills/{id}
(其中{id}
是用户的id
)
足够?
我应该遵循REST API标准还是灵活?
非常感谢任何建议,谢谢。
答案 0 :(得分:1)
由于skills
是用户的属性,因此我们将其视为子资源。获取子资源基于嵌套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}
会很好。