165 votes

Type de média YAML?

Quel est le type de média le plus approprié (formellement MIME type) à utiliser lors de l'envoi de données structurées avec YAML sur HTTP et pourquoi ?

Il n'y a aucun type d'application enregistré .il n'existe aucun type d'application ou type de texte que je puisse voir.

Exemple:

> GET /example.yaml

< Content-Type: ????
<
< --- # Films préférés
< - Casablanca
< - La mort aux trousses
< - Notorious

Options possibles:

  • text/x-yaml
  • text/yaml
  • text/yml
  • application/x-yaml
  • application/x-yml
  • application/yaml
  • application/yml

0 votes

Il y a maintenant. rfc-editor.org/rfc/rfc9512.html

99voto

Vinko Vrsalovic Points 116138

Ruby on Rails utilise application/x-yaml avec une alternative de text/yaml (source).

Je pense que c'est simplement une question de convention, il n'y a pas de raison technique, autant que je sache.

0 votes

Bizarre, la recherche sur Google pour "yaml mime" donne un lien ruby en premier résultat, avec text/x-yaml et aucune mention d'application/x-yaml

102 votes

Ce n'est pas tout à fait vrai. Les types MIME qui commencent par text/ doivent être traités comme ISO-8859-1 sauf si un autre type MIME est explicitement déclaré (par exemple, text/html; charset=utf-8). Les types MIME qui commencent par application/ sont traités comme UTF-8 sauf si un autre type MIME est explicitement déclaré. Par exemple, text/x-yaml ne peut pas utiliser des caractères UTF-8 tandis que text/x-yaml; charset=utf-8 et application/x-yaml le peuvent. Si ma mémoire est bonne, cela est défini dans le RFC 3023.

3 votes

@RyanParman Vous confondez un peu le jeu de caractères et le type MIME. Vous avez raison que text/*, sans un paramètre charset= explicite, est présumé être ISO-8859-1, mais les éléments dans application/* ne sont pas nécessairement du texte. (Le RFC que vous avez mentionné concerne XML, je ne suis pas sûr de sa pertinence.)

36voto

djb Points 1809

Bien qu'une autre réponse ait été acceptée, veuillez vous référer à ce fil de discussion Proposed media type registration for YAML sur la liste de diffusion de l'IANA pour examiner le type de média dans lequel Ben Harris, University of Cambridge Information Services, a proposé en juillet 2015 au nom de l'équipe YAML le type de média :

text/vnd.yaml

avec des alias dépréciés (suggérés) :

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

Cela est toujours proposé/en attente (le fil de discussion n'indique pas le statut de la proposition) donc cette réponse n'est pas plus définitive que les autres :-)

20voto

Greg Points 132247

Je dirais text/x-yaml:

text plutôt que application parce que c'est lisible par l'homme

x-yaml plutôt que yaml parce qu'il n'a pas été accepté dans la liste enregistrée des types MIME.

Edit: à partir de la RFC 3023 (Types de médias XML):

Le type de média de premier niveau "texte" a certaines restrictions concernant les entités MIME et elles sont décrites dans [RFC2045] et [RFC2046]. En particulier, le la famille UTF-16, UCS-4 et UTF-32 ne sont pas autorisées (sauf sur HTTP[RFC2616], qui utilise un mécanisme similaire aux MIME).

Intéressant... Pas exactement sûr de ce que cela signifie, mais de la matière à réflexion.

1 votes

C'est lisible par l'homme mais son but est de communiquer des applications... XML est sous application

0 votes

Et également sous le texte. Il semble que vous devriez avoir à la fois du texte/x-yaml et de l'application/x-yaml... rfc-editor.org/rfc/rfc3023.txt

0 votes

Pour ce que ça vaut, voilà ce que comprend l'implémentation REST de TastyPie de Django.

19voto

Giulio Points 1

Sous Chrome, application/yaml se téléchargera, tandis que text/yaml s'affichera.

14voto

Roberto Polli Points 330

L'IETF travaille à enregistrer le type de média application/yaml et le suffixe de syntaxe structurée +yaml.

Actuellement, nous n'enregistrons pas text/yaml. https://github.com/ietf-wg-httpapi/mediatypes/blob/main/draft-ietf-httpapi-yaml-mediatypes.md

N'hésitez pas à participer à la discussion.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X