【发布时间】:2013-05-08 10:59:44
【问题描述】:
我正在设计一个简单的 CRUD REST API。这是我的第一次,所以我想就我的设计是否有意义得到一些反馈。
我正在使用 HTTP 方法:GET、POST、DELETE 和 UPDATE。 API 将使用和获取 JSON 格式的数据。示例 URL 将如下所示:
GET (list): curl http://<domain>/myapp/rest/v1/colors
POST: curl -XPOST http://<domain>/myapp/rest/v1/colors -d '{
"name": "red",
"shade": "light"
}'
GET (single item): curl http://<domain>/myapp/rest/v1/colors/2
DELETE: curl -XDELETE http://<domain>/myapp/rest/v1/colors/2
etc...
问题
在 POST 请求之后,将在数据库中创建一条记录。那么,POST请求是否应该返回新创建记录的ID呢?这样那个ID就可以在UPDATE, DELETE and GET (single item)中使用了?
【问题讨论】:
-
这取决于你如何设计你的休息服务。是的,一个 POST 请求可以接收响应体。
-
谢谢,是的,我知道 POST 可以接收正文。但是我可以在处理请求后发送响应,例如,新创建的记录的 ID 为
659 -
是的,如果这些 ID 与您的数据库同步,您可以使用这些 ID。
-
一个务实的答案是:是的,返回新创建的项目的 ID(自动递增的主键?)。这是否符合 REST,因此 HTTP 标准的规定是有争议的。