YAML mime türü?


112

YAML ile yapılandırılmış verileri HTTP üzerinden gönderirken kullanılacak en uygun MIME türü nedir?

Verilen bir seçimin neden en uygun olduğuna dair bir açıklama çok takdir edilecektir.

Görebildiğim kayıtlı uygulama türü veya metin türü yok.

Misal:

> GET /example.yaml

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

Olası seçenekler:

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

Yanıtlar:


64

Ruby on Rails application/x-yaml, text/yaml( kaynak ) seçeneğiyle birlikte kullanır .

Sanırım bu sadece bir konvansiyon meselesi , anlayabildiğim kadarıyla teknik bir neden yok .


79
Bu tam olarak doğru değil . İle başlayan text/mime türleri, başka bir mime türü açıkça bildirilmedikçe (örn. text/html; charset=utf-8) ISO-8859-1 olarak işlenecektir . İle başlayan Mime türleri, application/başka bir mime türü açıkça belirtilmediği sürece UTF-8 olarak işlenir. Örneğin, text/x-yamlUTF-8 karakterlerini kullanırken text/x-yaml; charset=utf-8ve application/x-yamlyapabilir. IIRC, bu, RFC 3023'te tanımlanmıştır.
Ryan Parman

2
@RyanParman Karakter kümesiyle MIME tipini biraz karıştırıyorsunuz. Haklısınız text/*, açık bir charset=parametre olmadan ISO-8859-1 olduğu varsayılır, ancak içindeki şeyler application/*mutlaka metin değildir. (Bağladığınız RFC XML ile ilgili, ne kadar alakalı olduğundan emin değil.)
Thanatos

3
@RyanParman Doğru değil. tools.ietf.org/html/rfc6838#section-4.2.1 diyor: If a "charset" parameter is specified, it SHOULD be a required parameter, eliminating the options of specifying a default value. If there is a strong reason for the parameter to be optional despite this advice, each subtype MAY specify its own default value, or alternatively, it MAY specify that there is no default value. Finally, the "UTF-8" charset [RFC3629] SHOULD be selected as the default.. Orada hiçbir resmi tanımı şöyledir text/yamlne de text/x-yamlvarsayılan UTF-8 yani.
aef

7
Kodlama işleme dahil RFC 3023, 2014 yılında tools.ietf.org/html/rfc7303#section-3 tarafından kullanımdan kaldırılmıştır . İçin varsayılan kuralı US-ASCII(not: değil ISO-8859-1) için text/*RFC 2046 yılında medya türlerine göre obsoleted olmuştur Regardless of what approach is chosen, all new text/* registrations MUST clearly specify how the charset is determined; relying on the US-ASCII default defined in Section 4.1.2 of [RFC2046] is no longer permitted.içinde tools.ietf.org/html/rfc6838#section-4.2.1 Ocak 2013 Ne RFC 3023 ne RFC 7303 diyelim şey jenerik yaklaşık içinde text/*BİLDİĞİM KADARIYLA.
aef

6
@RyanParman O zaman sonuç muhtemelen doğruydu, ancak kural RFC 2046'dan geldiği halde yanlışlıkla RFC 3023'ü referans aldınız. Ancak bugün , IANA kaydında farklı bir şey belirtmeyen UTF-8her text/*medya türü için varsayılandır .
aef

22

Başka bir yanıt kabul edilmiş olsa da , Cambridge Bilgi Hizmetleri Üniversitesi'nden Ben Harris'in Temmuz 2015'te YAML ekibi adına medya türünü önerdiği Medya Türü'nü incelemek için IANA posta listesindeki bu Önerilen medya türü kaydına bakın. :

text/vnd.yaml

kullanımdan kaldırılmış (önerilen) takma adlarla:

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

Bu hala öneriliyor / beklemede (konu, teklifin durumunu göstermiyor) dolayısıyla bu cevap diğerlerinden daha kesin değil :-)


11
Görünüşe göre teklif Ocak 2018 itibariyle hiçbir yere
varmadı

15

Text / x-yaml derdim:

insan tarafından okunabilir olduğu için uygulama üzerinde metin

mime türleri kayıtlı listesine kabul edilmediğinden x-yaml over yaml.

Düzenleme: RFC 3023'ten (XML Ortam Türleri):

En üst düzey ortam türü "metin", MIME varlıkları üzerinde bazı kısıtlamalara sahiptir ve bunlar [RFC2045] ve [RFC2046] 'da açıklanmıştır. Özellikle, UTF-16 ailesi, UCS-4 ve UTF-32'ye izin verilmez (MIME benzeri bir mekanizma kullanan HTTP [RFC2616] dışında).

İlginç ... Ne anlama geldiğinden tam olarak emin değilim, ama düşünce için yiyecek.


1
İnsan tarafından okunabilir ancak amacı uygulamaları iletmektir ... XML uygulama aşamasındadır
Vinko Vrsalovic

Ve ayrıca metnin altında. Görünüşe göre hem text / x-yaml hem de application / x-yaml ... rfc-editor.org/rfc/rfc3023.txt
Vinko Vrsalovic

Ne olursa olsun, Django'nun TastyPie REST uygulamasının anladığı şey budur.
Michael Scheper

1
... ama JSON da okunabilir değil mi? Ben bunu söylemek daha tutarlı olacağını düşünüyorum application/yamlbiz diyebilirsiniz gibi, application/jsonve applicaiton/xml.
Anthony Rutledge

7

"x-" ortam türleri önerilmez, bkz. RFC 4288, Bölüm 3.4 . Yapılacak doğru şey, kişisel ağacı, satıcı ağacını kullanmak ya da gerçekten uygun bir ortam türü kaydını denemektir.


Öyleyse application/vnd.yamlya da text/vnd.yaml(metin daha iyi görünüyor)
teller

Tamamen doğru değil. IANA'ya kayıt olmadan kullanılması amaçlanan tek alt tür ağacı x.. vnd.ve prs.kayıt gerektirir. Tools.ietf.org/html/rfc6838#section-3.2 ve tools.ietf.org/html/rfc6838#section-3.3'e bakın .
aef

3

Chrome'da görüntülenirken application/yamlindirilecek text/yaml.


Bu soruya bir cevap vermiyor. Yeterli itibara sahip olduğunuzda , herhangi bir gönderi hakkında yorum yapabileceksiniz ; bunun yerine soruyu soranın açıklamasını gerektirmeyen yanıtlar verin . - Yorumdan
ysf

2
@ysf Yorumunuz aşırı derecede bilgiççe, IMO. Gönderi kısa ama tahakkuk ediyor, OP'nin sorusunu yanıtlıyor, her seçeneğin "nedenini" açıklıyor VE sınırlamalarını belirtmeye çalışıyor ("... en azından Chrome'da bu doğru".) Bahsetmeye gerek yok: başka kimse sağlanmadı bu bilgi. OP, farklı İçerik Türlerinin kendisi için aslında faydalı olabilecek farklı davranışlarla sonuçlanabileceğini düşünmemiş bile olabilir.
Dan H

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.