【发布时间】:2016-05-23 18:23:25
【问题描述】:
我正在开发一个用于管理用户的 REST API。每个用户都有一个姓名和一个他自己的联系人列表(姓名、类型、值)。我正在考虑两种建模 REST API 的方法,即粗粒度方法:
- GET /user/{id},获取用户详细信息及其联系人
- POST /users,添加新用户及其联系人
- PUT /users/{id},更新用户及其联系人
或细粒度的方法:
- GET /user/{id},获取用户详细信息
- GET /user/{id}/contacts,获取用户的联系人
- POST /user,添加新用户
- PUT /user/{id},更新用户
- POST /user/{id}/contacts,添加新的用户联系人
- PUT /user/{id}/contact/{id},更新用户联系人
- DELETE /user/{id}/contact/{id},删除用户联系人
何时应该选择细粒度方法而不是粗粒度方法?
【问题讨论】:
-
为什么不能同时使用? post/put 只是添加/更新用户及其联系人,但您也可以根据需要单独编辑联系人?
-
更多请看这个问题:Coarse grained vs Fine grained
标签: rest architecture