Ana içeriğe geç

YAML

YAML Ain't Markup Language

Okunuşu
yemıl
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/yaml

Kısaca

YAML, parantez yerine girinti kullanan, insanın okuyabileceği bir veri biçimidir; DevOps araçlarında ve CI/CD pipeline'larında yapılandırma için yaygındır.

YAML nedir?

YAML, ayarlar, listeler ve iç içe nesneler gibi yapılandırılmış verileri insanların kolayca okuyup düzenleyebileceği biçimde yazmaya yarayan bir metin biçimidir. Dosyalar .yaml ya da .yml uzantısını kullanır. Ad, YAML Ain't Markup Language ifadesinin özyinelemeli bir kısaltmasıdır ve belgeler için değil veriler için tasarlandığını vurgulamak üzere seçilmiştir; başlangıçta Yet Another Markup Language anlamına geliyordu.

YAML yapıyı göstermek için boşluklarla girinti kullanır; bu yüzden süslü parantez ya da kapanış etiketi yoktur ve sekme karakterlerine izin verilmez. Bir key: value çifti bir alan tanımlar, - ile başlayan bir satır bir liste öğesi tanımlar ve satırları bir anahtarın altında girintilemek onları o anahtarın içine yerleştirir. Yorumlar # ile başlar ve tek bir dosya --- ile ayrılmış birden çok belge barındırabilir.

YAML'ı DevOps'ta neredeyse her yerde bulursunuz: Kubernetes manifest'leri, Docker Compose dosyaları, CI/CD pipeline tanımları ve OpenAPI biçiminde yazılmış API açıklamaları. Onu düzgünce girintilenmiş bir taslak gibi düşünün; hangi ayrıntının hangi başlığa ait olduğunu yalnızca girinti söyler.

YAML sıklıkla JSON ile karşılaştırılır. YAML 1.2, JSON'un bir üst kümesi olarak tasarlanmıştır; bu yüzden geçerli hemen her JSON belgesi aynı zamanda geçerli bir YAML'dır, ancak YAML yorumlar ve daha az kalabalık bir sözdizimi ekler. Ödünleşim, esnekliğinin sizi şaşırtabilmesidir: yanlış bir girinti anlamı sessizce değiştirir ve tırnaksız no ya da on gibi değerler, eski YAML 1.1 kurallarını izleyen ayrıştırıcılar tarafından boolean olarak okunabilir; bu yüzden şüpheye düştüğünüzde string'leri tırnak içine alın.

Önemli noktalar

  • YAML, yapılandırılmış veri ve yapılandırma için insan tarafından okunabilir bir biçimdir.
  • Yapıyı boşluklarla girinti tanımlar; sekmelere izin verilmez.
  • JSON'un aksine # ile yorumları destekler.
  • YAML 1.2, JSON'un üst kümesidir; bu yüzden JSON'un çoğu geçerli bir YAML'dır.
  • Beklenmedik tür dönüşümlerinden kaçınmak için no, yes ya da on gibi belirsiz değerleri tırnak içine alın.

Örnek

Küçük bir YAML yapılandırma dosyasıyaml
# A simple service configuration
name: web-app
version: 2
debug: false

server:
  host: 0.0.0.0
  port: 8080

# A list of allowed origins
allowedOrigins:
  - https://example.com
  - https://admin.example.com

Sık sorulan sorular

.yaml ile .yml arasındaki fark nedir?

İçerik açısından fark yoktur; her iki uzantı da bir YAML dosyası anlamına gelir. Resmi öneri .yaml'dır, ancak bazı eski sistemler dosya uzantılarını üç karakterle sınırladığı için .yml de yaygındır.

YAML, JSON'dan daha mı iyidir?

Hiçbiri kesin olarak daha iyi değildir. YAML insanlar için yazması daha kolaydır ve yorumları destekler, bu da onu yapılandırma için popüler kılar; JSON ise daha basit, daha katı ve ayrıştırması daha hızlıdır, bu da onu API'ler için olağan seçim yapar.

YAML'da neden girinti hataları alıyorum?

Yapıyı girinti tanımladığı için sekme ile boşlukları karıştırmak ya da tek bir satırı yanlış hizalamak anlamı bozar veya değiştirir. Yalnızca boşluk kullanın, girintiyi tutarlı tutun ve hataları erken yakalamak için bir YAML linter'ı ya da doğrulayıcısı çalıştırın.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar