【发布时间】:2013-07-13 18:37:49
【问题描述】:
我不太了解如何合理地构建 REST(或类似 REST)的 API。
想象一个用于创建和发送时事通讯电子邮件的 API。您可能有以下名词/资源:通讯(主题、正文等)、邮件列表(收件人的集合)和收件人(电子邮件地址和相关数据)。
因此您可以使用 PUT 创建资源并返回其 ID:
/newsletter
/list
/user
您可以使用 GET 获取有关资源的信息:
/newsletter/[id]
/list/[id]
/user/[id]
您可以使用 PATCH 更新现有资源(或者这应该是 POST 吗?):
/newsletter/[id]
/list/[id]
/user/[id]
您可以使用 DELETE 删除资源:
/newsletter/[id]
/list/[id]
/user/[id]
以上正确吗?
哪些端点适用于诸如向列表发送简报、将用户添加到列表等操作?
以下是否有意义,是否为 RESTfull?
/newsletter/[newsletter_id]/send/[mailinglist_id]
/list/[list_id]/add/[user_id]
/list/[list_id]/remove/[user_id]
当可以通过/list/[id] 的 PATCH 添加或删除用户时,为列表设置 list/[id]/add/[id] 和 list/[id]/remove/[id] 端点是多余还是无益?
如何通过电子邮件地址或姓名等属性搜索用户 ID?或者通过名称或创建时间等标识符获取列表?
【问题讨论】: