|
|
1
8
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19 它只是一个冒号分隔的键值。 ETAG:“XYZZY” 它可以是任何类型的文本数据——我通常包括一个带有所创建项标识符的JSON字符串。测试的简单性使得包括它是值得的。
在本例中,所创建项的标识符、URI和类型是“资源特征和位置”。 |
|
|
2
80
我想 atompub REST API 是一个很好的休息服务的例子。请参见Atompub规范中的以下代码段:
服务器发出成功创建的信号,状态代码为201。响应包括一个位置头,指示Atom条目的成员条目URI,以及该条目在响应主体中的表示。
集合创建和返回的条目可能与客户端发布的条目不匹配。服务器可以更改条目中各种元素的值,例如atom:id、atom:updated和atom:author值,还可以选择删除或添加其他元素和属性,或者更改元素内容和属性值。 |
|
|
3
48
其想法是,响应主体会给您一个链接到该内容的页面:
这意味着您将包括
反应体然后他们继续提到你应该在回复中包括什么。 身体 :
对于使用浏览器的用户,您可以为他们提供一些可以查看的内容,然后单击以访问他们新创建的资源:
如果该页面仅由机器人使用,则让响应具有计算机可读性是有意义的:
或者,如果您愿意:
答案完全取决于你,这是你任意想要的。 缓存友好最后还有一个优化,我可以预先缓存创建的资源(因为我已经有了内容;我刚刚上传了它)。服务器可以返回一个日期或etag,我可以用刚刚上传的内容存储它:
和
|
|
|
4
26
退房 HTTP: Method Definitions: POST .
|
|
|
5
23
几句话:
|
|
|
6
1
输出实际上取决于所请求的内容类型。但是,您至少应该将创建的资源放在适当的位置。就像post-redirect-get模式。 在我的情况下,除非另有要求,否则我不填。因为这是jax-rs在使用response.created()时的行为。 但是,请注意,像Angular这样的浏览器和框架不会自动跟随201。我注意到 http://www.trajano.net/2013/05/201-created-with-angular-resource/ |
|
|
7
-2
我对此的另一个答案是采取务实的态度,保持 REST API contract 简单。在我的例子中,我重构了我的RESTAPI,使事情更具可测试性,而无需使用JavaScript或XHR,只需简单的HTML表单和链接。
所以更具体地说,我只使用返回码
请注意,在我重构的API契约中,post响应不应包含任何可缓存的数据,因为post实际上不可缓存,因此请将其限制为可以使用get请求请求和缓存的ID。 |
|
|
Jakob · 烧瓶REST-API:响应中的数值错误 1 年前 |
|
|
Omar Ahmed · 可以仅使用(CSRF)令牌进行身份验证吗 1 年前 |
|
|
Hyper10n · 从T-SQL查询内部管理HTTP会话 2 年前 |
|
|
Lavonne Riley · 无法获取数据并将其添加到谷歌工作表中 2 年前 |
|
|
testtt · 微服务REST调用和数据库事务 2 年前 |
|
|
JoeBim · PHP中的中程API 2 年前 |