【发布时间】:2013-09-04 19:01:50
【问题描述】:
我正在为 Web 应用程序设计 REST API。
我在设计 API 时的原则是:
- 使用客户端用例视角而不是数据模型视角。动机:从 DB 架构中抽象出来。
- 每个斜线代表新的用例/操作。
假设在应用程序中,我们有用户、产品、位置、产品新闻。用例是用户从某个位置关注产品新闻。如果位置为空,则用户会关注每个位置的产品新闻。
产品和位置列表众所周知。
将用户添加为特定产品位置组合的关注者的正确方法是什么?
我最终得到以下网址:
/product/follow?product=<product_name>[&location=<location name>]
product 和 location 名称位于查询部分,因为将来扩展更加灵活。
- PUT 的参数:当然,这个请求是幂等的 - 多次发送它不会像发送一次一样产生任何其他变化。
- POST 的参数:我们不指定 URL,在该 URL 下设置资源。
就我个人而言,我更接近 PUT,因为根据 API 的 用例 原则(我认为这是正确的),无能 规则接缝是最对应的。
【问题讨论】:
-
URI 中的“操作”=> 不是 REST。就这么简单。
标签: api http rest restful-url