YAML media type?

HttpMimeMime TypesYaml

Http Problem Overview


What is the most appropriate media type (formally MIME type) to use when sending data structured with YAML over HTTP and why?

There is no registered application type or text type that I can see.

Example:

> GET /example.yaml

< Content-Type: ????
<
< --- # Favorite movies
< - Casablanca
< - North by Northwest
< - Notorious

Possible options:

  • text/x-yaml

  • text/yaml

  • text/yml

  • application/x-yaml

  • application/x-yml

  • application/yaml

  • application/yml

Http Solutions


Solution 1 - Http

Ruby on Rails uses application/x-yaml with an alternative of text/yaml (source).

I think it's just a matter of convention, there is no technical why, as far as I can tell.

Solution 2 - Http

Although another answer was accepted, please refer to this Proposed media type registration for YAML thread on the IANA mailing list for reviewing Media Type in which Ben Harris, University of Cambridge Information Services, proposed in July 2015 on behalf of the YAML team the media type:

text/vnd.yaml

with (suggested) deprecated aliases:

text/yaml
text/x-yaml
application/x-yaml

That is still proposed/pending (the thread does not indicate status of the proposal) so this answer is no more definitive than the others :-)

Solution 3 - Http

I'd say text/x-yaml:

text over application because it's a human-readable

x-yaml over yaml because it hasn't been accepted into the registered list of mime types.

Edit: from RFC 3023 (XML Media Types):

> The top-level media type "text" has > some restrictions on MIME entities > and they are described in [RFC2045] > and [RFC2046]. In particular, the > UTF-16 family, UCS-4, and UTF-32 are > not allowed (except over > HTTP[RFC2616], which uses a MIME-like > mechanism).

Interesting... Not exactly sure what it means, but food for thought.

Solution 4 - Http

On Chrome application/yaml will download, while text/yaml will display.

Solution 5 - Http

"x-" media types are discouraged, see RFC 4288, Section 3.4. The right thing to do is to use the personal tree, the vendor tree, or to actually attempt a proper media type registration.

Solution 6 - Http

As per MIME Types list it's text/yaml, even though it's not in official IANA MIME list

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJon CramView Question on Stackoverflow
Solution 1 - HttpVinko VrsalovicView Answer on Stackoverflow
Solution 2 - HttpdjbView Answer on Stackoverflow
Solution 3 - HttpGregView Answer on Stackoverflow
Solution 4 - HttpGiulioView Answer on Stackoverflow
Solution 5 - HttpJulian ReschkeView Answer on Stackoverflow
Solution 6 - HttpThe GodfatherView Answer on Stackoverflow