创建自定义内容类型的正确性?

时间:2014-03-12 15:25:03

标签: mime-types content-type asp.net-web-api

我正在编写一个查看内容类型(例如application/json)的应用来确定处理。大多数情况下,Content-Type是众所周知的。但是,有时创建自定义Content-Type(例如application/swagger' or text / raml'或yaml / raml')会很方便。创建自定义内容类型的后果是什么?如果我想将它们作为HTTP响应发送,浏览器如何处理它们?我使用text/swagger还是application/swagger

是否重要?

2 个答案:

答案 0 :(得分:2)

浏览器(不了解chrome和chromera(opera next))具有定义mime类型操作的配置。如果你的内容必须由浏览器直接解析(即(x)(ht)ml,css,images ..),它应该包含正确的mime类型(即" image / jpeg"如果你想显示jpeg如果你发送hello / omg,你不能指望浏览器显示正确的页面,而是会显示一些"下载"对话窗口或类似的东西。)

内容mime类型应涵盖rfc2046:http://tools.ietf.org/html/rfc2046

答案 1 :(得分:2)

有关创建自定义或实验内容类型标识符的指南,请参阅rfc6648

历史上,建议是在" x - "之前添加标识符。但这已经被弃用了。听起来最好的做法是尽量确保您注册自定义媒体类型或使用已经注册的媒体类型(即使它是实验性的)

至于是否使用text/swaggerapplication/swagger我建议将此基于Swagger使用的媒体类型,即JSON,因为JSON被标识为application/json然后Swagger会就像application/swagger+json一样。 Swagger还可以包含标识为application/schema+json

的JSON模式

实际上已经有一个discussion on the Swagger mailing list,其中包含application/swagger+json的提案