在RESTful API(在HTTP中)中表示一次可写资源的惯用方法是什么?在CRUD术语中,应该可以创建资源但禁止更新吗?
编辑:
只是在下面对Rosenheimer的答案的评论中添加澄清。我想允许客户端指定URL而不是由POST
处理程序生成它。
答案 0 :(得分:0)
如果资源之前不存在(这意味着“一次可写”实际上是资源的“创建”)那么就可以很容易地调用父POST
,如下所示:{ {1}}发送资源。
稍后,不允许POST example.com/Resources
或PUT
到PATCH
的特定资源,其中example.com/Resources/123
将是资源的标识符。
因此资源可以写一次但以后不能更改。
答案 1 :(得分:0)
您可以使用HTTP状态layoutParams.removeRule(RelativeLayout.CENTER_VERTICAL);
或405 Method Not Allowed
禁止后续更新。
有些人使用POST
来创建资源:
403 Forbidden
有些人可能会使用# C of CRUD
POST ./phones -> 200 OK with the id of the object created
# R or CRUD
GET ./phones/{id}
# U of CRUD
PATCH/PUT ./phones/{id}
# D of CRUD
DELETE ./phones/{id}
来创建对象,但使用PUT
的问题是该方法对客户端有2个含义。
答案 2 :(得分:0)
我认为正确的做法是在第一次保存资源时接受PUT
方法,并在后续尝试更新现有资源时返回409 Conflict HTTP状态代码。