İki seyahat teknolojisi mühendisine bir envanter beslemesinin XML mi yoksa JSON mu olması gerektiğini sorun ve otuz dakikalık bir tartışmaya tanık olun. Dürüst cevap: tur ve transfer envanteri için her ikisi de işe yarar ve bir entegrasyonun başarılı ya da başarısız olmasını sağlayan şey nadiren formattır. Çok daha önemli olan sözleşmedir - şema, kararlılık ve değişikliğin nasıl ele alındığı. Yine de bu seçimin anlaşılmaya değer gerçek dengeleri vardır.
XML'in hâlâ yerini koruduğu noktalar
- Şemalar ve doğrulama. XSD, bir beslemeyi işlemeden önce biçimsel bir şemaya göre doğrulamanıza olanak tanır - katı kurallara sahip katalog verileri için değerlidir.
- Sektörel emsal. Seyahat dağıtımının büyük bölümü (OTA/NDC tarzı mesajlaşma) tarihsel olarak XML'dir, dolayısıyla araçlar ve beklentiler mevcuttur.
- Öznitelikler ve ad alanları. Zengin yapılandırılmış kayıtlar için öznitelikler, belgeleri kompakt ve kendini açıklayıcı tutabilir.
<product code="hagia-sophia-grand-bazaar" type="tour"> <title>Hagia Sophia & Grand Bazaar Tour</title> <duration>PT8H</duration> <net currency="EUR">149.50</net> </product>
JSON'ın kazandığı noktalar
- Geliştirici ergonomisi. Neredeyse her dilde yerel nesnelere doğrudan eşlenir - daha az tören, daha hızlı ayrıştırma.
- Yük boyutu. Daha az işaretleme yükü, ki bu büyük veya sık çekilen beslemeler için önemlidir.
- Modern web için araçlar. Yığınınız JavaScript/TypeScript veya JSON öncelikli bir API ağ geçidiyse, JSON bir çeviri adımını ortadan kaldırır.
{ "code": "hagia-sophia-grand-bazaar", "type": "tour",
"title": "Hagia Sophia & Grand Bazaar Tour",
"duration": "PT8H", "net": 149.50, "currency": "EUR" }
Yığınınızın zaten akıcı biçimde konuştuğu formatı seçin. Araçlarınızla mücadele etmenin maliyeti, herhangi bir soyut zarafetten daha ağır basar.
Asıl önemli olan şeyler
Hangi formatı seçerseniz seçin, şunlarda ısrar edin:
- Belgelenmiş, sürümlenmiş bir şema. Bir yükü doğrulayabilmeli ve geriye dönük uyumsuz bir değişikliğin ne zaman geleceğini bilebilmelisiniz.
- Kararlı tanımlayıcılar. Bir başlık düzenlendiğinde ürün kodları değişmemelidir.
- Açık birimler. Süreler ISO 8601 olarak (
PT8H), para açık bir para birimiyle, saatler bir saat dilimiyle. - Net bir "kaldırıldı" sinyali. Böylece eksik bir ürün "kesilmiş dosya" değil, "emekliye ayrılmış" anlamına gelir.
Pragmatik bir öneri
Sıfırdan başlıyorsanız ve JSON yerlisiyseniz, JSON'ı tercih edin. Halihazırda XML tabanlı dağıtım yürütüyorsanız veya biçimsel şema doğrulamasına ihtiyacınız varsa, XML gayet sağlamdır. Daha da iyisi, kataloğu tercih ettiğiniz formatta sunabilen ve aynı ürün tanımlayıcılarını her ikisinde de koruyabilen bir tedarikçiyle çalışın - böylece format, bir kilitlenme değil, bir uygulama ayrıntısı haline gelir. Connect, İstanbul tur ve transfer envanterini işte böyle sunar: tek bir kararlı sözleşme, ekibinize uygun olan temsil.
