API的路由需要具体的具体程度如何?

时间:2017-02-05 01:50:35

标签: rest restful-architecture restful-url

我正在创建一个API,我有一个用户可以通过调用来请求:

/api/request/user/{id}

这很好用。

假设每个用户都有一套技能,可以是一种技能,也可以是100。

我希望获得特定用户的所有技能。

我是否会超级具体而且必须打电话给你:

/api/request/user/{id}/skills

或者这样做:

/api/request/skills/{id}(其中{id}是用户的id

足够?

我应该遵循REST API标准还是灵活?

非常感谢任何建议,谢谢。

1 个答案:

答案 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}

会很好。