我发现一个看起来不太好的行为:我使用python-eve更新了一条记录,出现了错误,因为我发送了一些不应该发送的字段,但这不是问题。我发现即使出现错误,响应机构也会显示相对于它的消息,http响应状态为200.
我不确定它是否是错误或者是标准行为,我希望收到验证失败时出现4xx错误。
任何想法?
由于
加斯
Request URL:http://127.0.0.1:5000/players/52ed7a53a54d75bf68c1b720
Request Method:PUT
Status Code:200 OK
Request Headersview source
Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,es;q=0.6
Authorization:Basic YWRtaW46c2VjcmV0
Cache-Control:no-cache
Connection:keep-alive
Content-Length:335
Content-Type:application/json
Cookie:roles="[\"operator\"\054\"admin\"]"
Host:127.0.0.1:5000
If-Match:eeadcc62ad252697c9b109c00cae771c0690c172
Origin:http://127.0.0.1:5000
Pragma:no-cache
Referer:http://127.0.0.1:5000/static/index.html
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36
X-Requested-With:XMLHttpRequest
Request Payloadview source
{_updated:2014-02-01T22:50:59.000Z, name:gas1e, score:260, _tenant:tonga.net,…}
_created: "2014-02-01T22:50:59.000Z"
_etag: "eeadcc62ad252697c9b109c00cae771c0690c172"
_issues: {_updated:unknown field, _created:unknown field, _status:unknown field, _issues:unknown field,…}
_status: "ERR"
_tenant: "tonga.net"
_updated: "2014-02-01T22:50:59.000Z"
name: "gas1e"
score: 260
Response Headersview source
Access-Control-Allow-Headers:
Access-Control-Allow-Max-Age:21600
Access-Control-Allow-Methods:HEAD, GET, PUT, POST, DELETE, OPTIONS, PATCH
Access-Control-Allow-Origin:*
Content-Length:171
Content-Type:application/json
Date:Sun, 02 Feb 2014 05:16:09 GMT
Server:Werkzeug/0.9.4 Python/2.7.5
Response Payloadview source
_issues: {_updated:unknown field, _created:unknown field, _status:unknown field, _issues:unknown field,…}
_created: "unknown field"
_etag: "unknown field"
_issues: "unknown field"
_status: "unknown field"
_updated: "unknown field"
_status: "ERR"
答案 0 :(得分:3)
Eve支持批量插入,这意味着POST可以(通常会)包含多个提交插入的文档。其中一些文档可能会通过验证并将被插入,其他文档可能无法通过验证。这就是为什么你得到200(请求被接受和处理)和带有效负载的数组。每个数组项都包含成功插入文档的id,etag,创建日期,或者如果验证失败,则包含文档未通过的原因。
这就是说,我正在考虑批量插入可选,这将使单个文档验证失败的返回4xx非常合理。
答案 1 :(得分:0)
文档似乎指出这种行为正是发生的事情。
http://python-eve.org/features.html#data-validation
我从未使用过这个,所以我可以提供更多帮助。但根据上面描述的链接,这对我来说似乎并不太可靠。我倾向于构建自己的界面而不是依赖某些OOTB产品的原因很多。可悲的是,我看到很多不好的实现。