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