REST'e karşı SABUN. Bir süredir sorun oldu. Ve gerçek, aynı sorunun iki yanıtı: web'e nasıl erişilir hizmetler.
Ancak birini diğerine tercih etmek şaşırtıcı derecede zor olabilir.
SOAP (Basit Nesne Erişim Protokolü), standartlara dayalı bir web uzun süredir var olan hizmetlere erişim protokolü. Başlangıçta Microsoft tarafından geliştirilen SOAP, kısaltma kadar basit değildir. tavsiye ederim.
REST (Temsili Durum Aktarımı), başka bir standarttır ve SOAP'ın eksikliklerine yanıt. SOAP ile ilgili sorunları çözmeye çalışır. ve web hizmetlerine erişim için daha basit bir yöntem sağlar.
Ya GraphQL?
Tabii ki, GraphQL son zamanlarda büyük bir sıçrama yaptı, bundan daha önce de bahsetmiştik. Uzun uzadıya diğer yazılarda. Ama yine de eskisi kadar standart değil. REST ve SABUN, bu yüzden bu makalede sadece bunlara odaklanacağız. iki.
Hangi protokolün kullanılacağına karar verirken hem SOAP hem de REST'in dikkate alması gereken sorunlar var.
Benzerlikler
SOAP ve REST, HTTP protokolü üzerinden benzerlikler paylaşsa da, SOAP
REST'ten daha katı bir mesajlaşma kalıpları kümesidir. SOAP'taki kurallar
önemlidir çünkü herhangi bir standardizasyon seviyesine ulaşamayız
onlarsız Bir mimari stili olarak REST, işlem gerektirmez
ve doğal olarak daha esnektir. Hem SOAP hem de REST,
herkesin uymayı kabul ettiği köklü kurallar
bilgi alışverişinde bulunma ilgisi.
SOAP'a Hızlı Bir Bakış
SOAP, mesajlaşma hizmetleri sağlamak için yalnızca XML'e güvenir. Microsoft başlangıçta SABUN'u eskisinin yerini alacak şekilde geliştirdi gibi internette iyi çalışmayan teknolojiler Dağıtılmış Bileşen Nesne Modeli (DCOM) ve Ortak Nesne İsteği Komisyoncu Mimarisi (CORBA). Bu teknolojiler, güvendikleri için başarısız oluyor ikili mesajlaşma hakkında. SOAP'ın kullandığı XML mesajlaşması daha iyi çalışır internet üzerinden.
Microsoft, ilk sürümün ardından SOAP'ı İnternet'e gönderdi Standardize edildiği Engineering Task Force (IETF). SABUN genişlemeyi desteklemek için tasarlanmıştır, bu nedenle her türlü başka kısaltmaya sahiptir ve WS-Addressing, WS-Policy gibi onunla ilişkili kısaltmalar, WS-Güvenlik, WS-Federasyon, WS-ReliableMessaging, WS-Koordinasyon, WS-AtomicTransaction ve WS-RemotePortlet'ler. Aslında, bir bulabilirsiniz Web Hizmetleri Standartlarında bu standartların tam listesi.
Asıl nokta, SOAP'ın oldukça genişletilebilir olmasıdır, ancak yalnızca
belirli bir görev için ihtiyacınız olan parçalar. Örneğin, bir kamu kullanırken
herkesin ücretsiz olarak kullanabileceği bir web hizmetine gerçekten sahip değilsiniz.
WS-Security'ye çok ihtiyaç var.
Zorluk Programlama Diline Bağlıdır
SOAP'ta istekte bulunmak ve yanıt almak için kullanılan XML, son derece karmaşık Bazı programlama dillerinde, bu istekler manuel olarak gerçekleşir, bu da sorunlu hale gelir çünkü SOAP hatalara karşı hoşgörüsüz. Ancak, diğer diller kısayolları kullanabilir. SABUN sağlar. oluşturmak için gereken çabayı azaltmanıza yardımcı olabilirler. istek ve yanıtı ayrıştırmak için. Aslında, .NET ile çalışırken dillerde XML'i asla göremezsiniz.
Büyünün bir kısmı Web Hizmetleri Açıklama Dili'dir (WSDL).
Bu, SOAP ile ilişkili başka bir dosyadır. sağlar
Web hizmetinin nasıl çalıştığının tanımı, böylece bir web hizmeti oluşturduğunuzda
buna atıfta bulunarak, IDE işlemi tamamen otomatik hale getirebilir. Böylece
SOAP kullanmanın zorluğu büyük ölçüde kullandığınız dile bağlıdır.
kullan.
Yerleşik Hata İşleme
En önemli SOAP özelliklerinden biri yerleşik hata yönetimidir. Eğer isteğinizle ilgili bir sorun var, yanıt hata içeriyor sorunu çözmek için kullanabileceğiniz bilgiler. Yapabileceğin göz önüne alındığında Web hizmetine sahip değilseniz, bu özel özellik son derece önemlidir; aksi takdirde, işlerin neden yürümediğini tahmin etmeye devam edersiniz. bu hata raporlama, mümkün olması için standartlaştırılmış kodlar bile sağlar kodunuzdaki bazı hata işleme görevlerini otomatikleştirmek için.
İlginç bir SOAP özelliği, onu HTTP aktarımıyla kullanmak için sahip olmanızın gerekmemesidir. Basit Posta Aktarım Protokolü üzerinden SOAP kullanmak için gerçek bir belirtim var (SMTP) ve diğerlerinin yerine kullanmamanız için hiçbir neden yok nakliye Aslında, Python gibi bazı dillerdeki geliştiriciler ve PHP tam da bunu yapıyor.