我正在设计一个 Restful HTTP API 并且有一个设计问题。
在我的应用程序中,用户应该能够建议项目创建。
然后我可以批准或不批准它们。
我想知道最好的 VERB+URL 模式是什么。
示例 1:
POST|GET|PUT|DELETE /items
用户发布一个新项目,我可以将它从“待定”中放入“已批准”或删除它。
在这里,我必须使用 GET /items?status=approved 来获取所有已批准的项目,并使用 GET /items?status=pending 来获取所有待处理的项目。默认情况下,也许 GET /items 会让我得到所有批准的。
但我不明白如何阻止用户将其置于已批准状态。
或者
示例 2:
POST|GET|PUT|DELETE /item_creation_suggestions
用户发布一个新的项目建议,我可以通过 DELETE:ting 批准它并执行 POST /items 或只是删除它。
这里 /items 和 /item_creation_suggestions 是两个独立的集合。我只需要在批准时删除建议并创建项目。
这使得保护我的应用程序免受未经授权的访问变得简单。我可以通过授权保护我的 /items,而 /item_creation_suggestions 可以被任何人使用。
但这似乎不太安宁?
当用户建议项目更新和删除并且我批准或不批准它们时也是如此。
我是 Restful 设计的新手,因此我们将不胜感激所有反馈和建议!