RESTful API Açıklama Dillerine Genel Bakış - Overview of RESTful API Description Languages

RESTful (Temsili Devlet Transferi) API (uygulama programlama Arayüzü) DL'ler (açıklama dilleri) resmi diller yapılandırılmış bir açıklama sağlamak için tasarlanmıştır. RESTful web API bu hem insan hem de otomatik makine işleme için kullanışlıdır. API Açıklama Dilleri bazen arayüz açıklama dilleri (IDL'ler). Yapılandırılmış açıklama, insanlar için belgeler oluşturmak için kullanılabilir. programcılar; aynı araç tarafından oluşturulan tüm belgeler aynı biçimlendirme kurallarını izlediğinden, bu tür belgelerin okunması serbest biçimli belgelerden daha kolay olabilir. Ek olarak, açıklama dili genellikle kitaplıklar gibi çeşitli yazılım yapılarının otomatik olarak oluşturulmasına izin verecek kadar kesindir ve çeşitli programlama dillerinden API'ye erişir ve bu da onları programcılardan manuel olarak oluşturma yükünü ortadan kaldırır.

Tarih

Önceki iki ana açıklama dili vardır: WSDL2.0 (Web Hizmetleri Açıklama Dili) ve WADL (Web Uygulaması Açıklama Dili). İkisi de RESTful API'leri tanımlamak için endüstride yaygın olarak benimsenmemiştir, her ikisinin de zayıf insan okunabilirliğini ve WADL'nin aslında bir RESTful API'yi tam olarak tanımlayamadığını belirtmektedir.[1]

Alternatifler

Hypertext odaklı API'ler

RESTful API'leri oluşturmaya yönelik alternatif bir yaklaşım, HATEOAS (Uygulama Durumunun Motoru Olarak Hiper Ortam ). Bu yaklaşımda, istemci yazılımı, dokümantasyon yoluyla paylaşılan statik bir arayüz açıklamasına yazılmaz. Bunun yerine, müşteriye bir dizi giriş noktası verilir ve API, bu uç noktalar ile etkileşim yoluyla dinamik olarak keşfedilir. HATEOAS tanıtıldı Roy Fielding doktora tezi Mimari Stiller ve Ağ Tabanlı Yazılım Mimarilerinin Tasarımı. HATEOAS, onları diğerlerinden ayıran RESTful API'ler için orijinal vizyon olmuştur. RPC mekanizmalar.[2]

RESTful API DL'lerinin listesi

Veri açıklama dillerinin listesi

RESTful API açıklamasının önemli bir kısmı, döndürülen veri yapılarının belirtimidir. IDL, kendi formatını belirtebilir veya mevcut bir veri tanımlama formatını kullanabilir. Birçok RESTful API DL'nin kullandığı dikkate değer bir örnek JSON Şeması.

  • json: api
  • JSON Şeması
    • OpenAPI, Google APIs Discovery tarafından kullanılır,[6] I / O Belgeleri
  • Apache Avro
  • JSON-RPC 2.0
    • Barrister tarafından kullanılan

RESTful API DL'lerinin Karşılaştırması

RESTful API DLs çevresindeki topluluk etkindir ve manzara hala değişmektedir. Akana'nın bir sunumuna göre bu alandaki en aktif projeler OpenAPI, RAML ve API Blueprint.[1]

Sponsorİlk taahhütEn son kararlı sürümKararlı çıkış tarihiYazılım lisansı[7]BiçimAçık kaynakKod üretimi (müşteri)Kod üretimi (sunucu)
RAMLMuleSoftEylül 20131.016 Mayıs 2016Apache 2.0YAMLEvetEvetEvet
API TaslağıArı kovanıNisan 2013MITMarkdownEvetHayırHayır
OpenAPIAçık API Girişimi (OAI)Temmuz, 20113.026 Temmuz 2017Apache 2.0JSON veya YAMLEvetEvetEvet
SERİNÜNIFOR20112.0Aralık 2014Genel yaratıcıRDFEvetHayırEvet

Çerçeveler

Çoğu sunucu çerçevesi, bir veya daha fazla IDL ile birlikte çalışır.

Referanslar

  1. ^ a b http://www.slideshare.net/SOA_Software/api-description-languages
  2. ^ Fielding, Roy. "REST API'leri hiper metin odaklı olmalıdır". Alındı 4 Kasım 2015.
  3. ^ "OASIS Açık Veri Protokolü (OData) TC - OASIS".
  4. ^ "Avukat RPC - Hakkında".
  5. ^ Lira, Hermano Albuquerque; Dantas, Jose Renato Villela; Muniz, Bruno de Azevedo; Nunes, Tadeu Matos; Farias, Pedro Porfirio Muniz (2015/01/01). "Anlamsal RESTful Arabirimler Kullanan Web Hizmetleri için Veri Bütünlüğünü Desteklemeye Yönelik Bir Yaklaşım". 24. Uluslararası World Wide Web Konferansı Bildirileri. WWW '15 Arkadaşı. New York, NY, ABD: ACM: 1485–1490. doi:10.1145/2740908.2743042. ISBN  9781450334730.
  6. ^ https://developers.google.com/discovery/v1/reference/apis
  7. ^ Buradaki lisanslar özettir ve lisansların tam beyanları olarak alınmaz. Bazı paketler kitaplıkları farklı lisanslar altında kullanabilir.

Dış bağlantılar