AtomPub'u ne zaman kullanmalıyım?


13

RESTful web hizmeti tasarımı üzerine bazı araştırmalar yapıyorum ve önemli bir karar noktası olduğunu düşündüğüm şeylere ulaştım, bu yüzden biraz tavsiye almak için topluma sunacağımı düşündüm.

RESTful mimarisinin ilkelerine uygun olarak keşfedilebilir bir API sunmak istiyorum, bu yüzden çeşitli HTTP fiillerini mümkün olduğunca eksiksiz destekleyeceğim. Zorluğum bu kaynakların temsili seçimi ile geliyor. Gördüğünüz gibi, arama sonuçlarının nasıl sunulacağını ve diğer kaynaklara bağlantıların nasıl sağlandığını kapsayan kendi API'mı bulmak benim için kolay olurdu, ancak bu benim uygulamam için benzersiz olacak.

Atom Yayın Protokolü'nü ( RFC 5023 ) ve OData'nın kullanımını nasıl desteklediğini okudum , ancak (şu anda) oldukça basit bir API'nin ne olduğu hakkında ekstra bir soyutlama düzeyi ekliyor gibi görünüyor.

Benim sorum şu, bir geliştirici ne zaman temsil seçeneği olarak AtomPub'u seçmeli - eğer varsa? Ve değilse, önerilen mevcut yaklaşım nedir?


1
Bununla ilgili ilginç bir tartışma var: comments.gmane.org/gmane.comp.web.services.rest/16023
Gary Rowe

Yanıtlar:


11

Bu konuda adil bir araştırma yaptıktan sonra, bulgularım şunlardır:

3 ana biçim ve yaklaşım var gibi görünüyor: AtomPub, OData ve HAL. Her biri için araştırmayı özetledim.

AtomPub

  • Pro: İyi kurulmuş standart
  • Pro: XML ve JSON ile çalışır
  • Pro: Apache Abdera ile mükemmel Java desteği var
  • Con: Abdera çok fazla bağımlılık getiriyor
  • Con: Sunucu tarafında çalışmak çok karmaşık
  • Con: Tam bir JavaScript istemcisi oluşturmak zor

OData

  • Pro: AtomPub üzerine inşa edildi
  • Pro: XML ve JSON ile çalışır
  • Pro: odata4j projesi ile iyi Java desteği var
  • Pro: İyi bir URI sorgu yapısı sağlar

  • Con: Tam bir çerçeve sunar (aslında Dropwizard'ın yerini alır)

  • Con: Çalışması çok karmaşık, özellikle varlık veri modeli (EDM)
  • Con: EDM için yalnızca Windows araçlarına güvenmeden iyi bir JavaScript istemci kitaplığı bulmak zor

HAL

  • Pro: Hafif ve genişletilebilir bir yaklaşım sunar
  • Pro: XML ve JSON ile çalışır
  • Pro: Uygulamak için bir JAXB modeli oluşturmak önemsiz (bağımlılık yok)
  • Pro: İyi bir bağlantı çerçevesi sağlar
  • Pro: jQuery XML ayrıştırma özelliğini kullanarak bir JavaScript istemcisi oluşturmak önemsiz
  • Con: Onaylanmadı (IETF'ye yaklaşılmış olmasına rağmen)

Peki ne zaman AtomPub kullanmalıyım?

Ek karmaşıklıktan memnunsanız ve müşterileriniz için standart kütüphaneler kullanmak istiyorsanız, yukarıdakilerden AtomPub'u seçmelisiniz. Büyük bir belge deposu çalıştırıyorsanız bu durum büyük olasılıkla olur.

Başkalarına yardımcı olabilecek yeni bir blog makalesine daha fazla ayrıntı (bu sorunun kapsamı dışında) koydum .

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.