当前位置:  开发笔记 > 前端 > 正文

如果REST API返回JSON,那么MIME类型是什么?

如何解决《如果RESTAPI返回JSON,那么MIME类型是什么?》经验,为你挑选了5个好方法。

我的REST API返回JSON.

我目前正在返回text/plain作为MIME类型,但感觉很有趣.我应该回来application/x-javascript还是其他类型?

第二个问题是关于错误条件的HTTP状态代码.如果我的REST API返回错误状态,我将返回JSON

{ result: "fail", errorcode: 1024, errormesg: "That sucked. Try again!" }

HTTP状态代码应该保留在200 OK



1> Lawrence Dol..:

的JSON规范建议application/json,这似乎是由支持IETF和IANA注册表.

关于第二个问题,我认为如果消息处理以某种方式失败,您应该将结构化和标准错误响应作为JSON消息返回; 只有当您考虑HTTP错误代码时,由于某种原因未能将消息传递给后端处理程序.

更新2014-06-27:客户端(浏览器)仅使用200响应的日子早已过去,RESTful API的主流建议是使用适合响应的HTTP响应代码,2xx用于成功响应(例如201创建的对于所有错误条件,包括来自API本身的错误条件,PUT; 204 No DELETE内容)和4xx和5xx.


出于实际原因(例如,你在混合中使用了Flex的可怕HTTP客户端),有时你必须使用200来处理所有事情.但是,在正常情况下,您希望使用最合适的HTTP状态代码.
@ashitaka:其他问题专门询问如何将JSON设置为text/x-json.它没有声称这是JSON的正确媒体类型.

2> inquam..:

JSON的MIME类型是

application/json

http://www.ietf.org/rfc/rfc4627.txt

http://www.iana.org/assignments/media-types/application/

更具体地说:

http://www.ietf.org/rfc/rfc4627.txt



3> 小智..:

我更喜欢回复HTTP错误状态和特定于应用程序的有效负载.


大卫似乎离开了SO,但是其他任何人都可以支持上述陈述并带来一些争论,为什么这是一个好的(或坏的)练习?根据上面的Software Monkey的回答,我看到,使用有效的JSON响应返回HTTP错误是错误的想法.如果存在真正的错误,服务器应仅发回HTTP错误.

4> Julian Resch..:

不,你不应该在错误的情况下返回200.

可以重复状态代码,或在响应有效负载中包含更详细的错误代码.



5> LukeShu..:

根据RFC 4627,Content-type返回的适当方法是注册MIME类型IANA(实际上,它显示在IANA的页面上).当然,如果你要写一个客户,你会希望在你所接受的内容中更加自由,并且也接受其他诸如和.application/jsontext/jsontext/x-json

现在,如果有错误,你应该返回HTTP 200,这是从根本上非RESTful.我知道有时候你的错误没有完全匹配,但是在RFC 2616第 10.4-10.5 节中选择最接近的4XX(客户端故障)或5XX(服务器故障)错误,并且在JSON中更精确.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有