WSDL, SOAP ve REST nedir?


Yanıtlar:


180

WSDL, bir web hizmetini tanımlayan bir XML belgesidir. Aslında Web Hizmetleri Açıklama Dili anlamına gelir.

SOAP, uygulamalar arasında belirli bir protokol (örneğin, HTTP veya SMTP olabilir) üzerinden bilgi alışverişi yapmanızı sağlayan XML tabanlı bir protokoldür. Basit Nesne Erişim Protokolü anlamına gelir ve bilgileri iletmek için mesajlaşma biçimi için XML kullanır.

REST, ağ bağlantılı sistemlerin mimari tarzıdır ve Temsili Devlet Transferi anlamına gelir. Bu bir standardın kendisi değildir, ancak HTTP, URL, XML vb.Gibi standartları kullanır.


4
SMAP veya HTTP'yi SOAP'ın kullanılabileceği protokol örnekleri olarak koymak istedim. HTTP'nin kullanılabilecek tek protokol olduğu anlamına gelmiyordu (sadece örnek olarak kullanıyordum).
keith_c

7
Temsili Durum Transferi (REST), bir web hizmetine uygulandığında, hizmetlerin Web'de en iyi şekilde çalışmasını sağlayan performans, ölçeklenebilirlik ve değiştirilebilirlik gibi istenen özellikleri tetikleyen tek tip arabirim gibi kısıtlamaları belirten mimari bir stildir. REST tarzında, veriler ve işlevsellik kaynaklar olarak kabul edilir ve Tekdüzen Kaynak Tanımlayıcıları (URI'ler) kullanılarak bunlara erişilir. Kaynaklar, bir dizi basit, iyi tanımlanmış işlem kullanılarak gerçekleştirilir. istemci / sunucu mimarisini izler ve durum bilgisi olmayan bir iletişim protokolü, genellikle HTTP kullanmak üzere tasarlanmıştır.
kingAm

4
WSDL'deki 'D', "Tanım" yerine "Açıklama" anlamına gelmiyor mu?
Sparkzz

11
"A WSDL is an XML document that describes a web service. It actually stands for Web Services Definition Language." Bu gerçekten ne olduğunu açıklamıyor ...
Ojonugwa Jude Ochalifu

2
Wikipedia göre @Sparkzz:The current version of WSDL is WSDL 2.0. The meaning of the acronym has changed from version 1.1 where the "D" stood for "Definition".
Bochu

106

Örnek: Basit bir ifadeyle web hesap makineniz varsa.

WSDL: WSDL, istemciye uygulayabileceğiniz veya maruz bırakabileceğiniz işlevleri anlatır. Örneğin: toplama, silme, çıkarma vb.

SOAP: SOAP'ı kullanırken aslında doDelete (), doSubtract (), doAdd () gibi eylemleri gerçekleştirirsiniz. SOAP ve WSDL elma ve portakal. Onları karşılaştırmamalıyız. Her ikisinin de farklı işlevleri var.

Neden SOAP ve WSDL kullanıyoruz: Platformdan bağımsız veri alışverişi için.

DÜZENLEME: Normal bir günlük yaşam örneğinde:

WSDL: Bir restorana gittiğimizde Menü Öğelerini görüyoruz, bunlar WSDL'ler.

Proxy Sınıfları: Şimdi Menü Öğelerini gördükten sonra zihnimizi oluşturuyoruz (ne sipariş edeceğimize dair zihnimizi işliyoruz): Temel olarak WSDL Belgesine dayalı Proxy sınıfları yapıyoruz.

SABUN: O zaman yiyecekleri aslında Menülere göre sipariş ettiğimizde: Yani, SABUN kullanılarak yapılan servis yöntemlerini çağırmak için proxy sınıflarını kullanıyoruz. :)


38

Birisi her SOAP / WSDL'den bahsettiğinde, xml'de tanımlanan nesneleri ve sınıfları düşünüyorum ...

"SOAP'ı herhangi bir PHP sınıfındaki gibi kullanırsınız. Ancak, bu durumda sınıf yerel uygulamalar dosya sisteminde değil, http üzerinden erişilen uzak bir sitede bulunur." ... "Bir SOAP hizmetini başka bir PHP sınıfı olarak kullanmayı düşünürsek, WSDL belgesi tüm sınıf yöntemleri ve özelliklerinin bir listesidir."

http://www.doublehops.com/2009/07/07/quick-tutorial-on-getting-started-with-soap-in-php/comment-page-1/

..ve birisi REST hakkında her konuştuğunda POST, GET ve DELETE gibi HTTP komutlarını (istek yöntemleri) düşünüyorum


19

SOAP -> SOAP (Basit nesne erişim protokolü), makine-makine etkileşimi için oluşturulan uygulama seviyesi protokolüdür. Protokol standart kuralları tanımlar. Belirli protokolü kullanan tüm taraflar protokol kurallarına uymalıdır. TCP gibi, Taşıma katmanında gevşer, SOAP protokolü Uygulama katmanı (SOAP - Axis2, .Net'i destekleyen herhangi bir uygulama) tarafından anlaşılacaktır.

WSDL -> SOAP mesajı SoapEnevelope-> SoapHeader ve SoapBody'den oluşur. Mesaj formatının ne olacağını tanımlamıyor mu? desteklediği tüm taşıma işlemleri (HTTP, JMS) nelerdir? Bu bilgi olmadan, belirli web hizmetini tüketmek isteyen herhangi bir istemci için SOAP mesajını oluşturmak zordur. Olsalar bile, emin olmayacaklar, her zaman işe yarayacaklar. WSDL kurtarmadır. WSDL (Web Hizmeti açıklama Dili) SOAP mesajının işlemlerini, mesaj biçimlerini ve aktarım ayrıntılarını tanımlar.

REST -> REST (Temsili durum aktarımı) Aktarım'a dayanır. Eylemleri hedefleyen SOAP'ın aksine, REST kaynaklar hakkında daha fazla endişe duymaktadır. REST kaynakları URL'yi (örnek -http: // {serverAddress} / çalışanları / çalışanNumarası / 12345) kullanarak bulur ve eylemler için aktarım protokolüne (HTTP - GET, POST, PUT, DELETE, ... ile) bağlıdır. kaynaklarda gerçekleştirilecek. REST hizmeti kaynağı URL'ye göre bulur ve eylemi taşıma eylem fiilini temel alarak gerçekleştirir. Daha çok mimari üslup ve konvansiyonlara dayanmaktadır.


16

Karmaşık bir şeyi "basitçe" anlamayacaksınız.

WSDL, bir web hizmetini tanımlamak için XML tabanlı bir dildir. Servis tarafından kullanılan mesajları, işlemleri ve ağ taşıma bilgilerini açıklar. Bu web hizmetleri genellikle SOAP kullanır, ancak diğer protokolleri kullanabilir.

WSDL, bir program tarafından okunabilir ve bu nedenle, web hizmetini çağırmak için gerekli olan istemci kodunun tümünü veya bir kısmını oluşturmak için kullanılabilir. SOAP tabanlı web servislerine "kendini tanımlayan" demenin anlamı budur.

REST, WSDL ile hiç ilgili değildir.


11

SOAP, Basit (sic) Nesne Erişim Protokolü anlamına gelir. HTTP üzerinden XML göndererek uzak nesnelere Uzak Yordam Çağrısı yapmanın bir yolu olması amaçlanmıştır.

WSDL, Web Hizmeti Açıklama Dilidir. Bir bitiş noktasına '.wsdl' ile biten bir istek, kullanımın bekleyebileceği istek ve yanıtı açıklayan bir XML mesajıyla sonuçlanır. Hizmet ve müşteri arasındaki sözleşmeyi deşifre eder.

REST, hizmetlere mesaj göndermek için HTTP kullanır.

SABUN bir spec, REST bir stil.


2
-1: üzgünüm, ama SOAP'ı RPC ile ilişkilendirmeye katılmıyorum. Mesaj tarzı hizmetler ne olacak? Ayrıca, .wsdl veya? Wsdl ile biten bir isteğin WSDL oluşturacağını söyleyen bir standart yoktur.
John Saunders

4
SOAP ile RPC yapamayacağınızı mı söylüyorsunuz? Bunun tüm standardı kapsamadığını biliyorum, ama kesinlikle orijinal motivasyondu. WSDL URL'sinin standardın bir parçası olup olmadığı konusunda beni orada bulunduğunu kabul edeceğim. Genelde böyle yapıldığını görüyorum, ama standartta onu zorunlu kılan hiçbir şey veremiyorum.
duffymo

1
SOAP'ın XML-RPC'den türetilmiş olduğu gerçeğini, SOAP'ın başlangıçta bir RPC olarak tasarlandığı fikrini karıştırıyor olabilirsiniz. Yine de WSDL'nin en başından RPC tarzı hizmetlere ek olarak belge tarzı hizmetleri de tanımlayabildiğini unutmayın. RPC, SOAP ve WSDL'nin arkasındaki orijinal motivasyon olsaydı, belge tarzı hizmetlerin orijinal standarttan yoksun olması beklenebilirdi.
John Saunders

6

Wikipedia "Web Hizmetleri Açıklama Dili, Web hizmetlerini tanımlamak için bir model sağlayan XML tabanlı bir dildir" diyor. Başka bir deyişle, javadoc bir java kütüphanesine olduğu gibi WSDL bir web hizmetine.

WSDL hakkında gerçekten tatlı olan şey, yazılımın WSDL kullanarak bir istemci ve sunucu oluşturabilmesidir.


4

REST, kodlama açısından hafiftir, hafif cihazlar için (örn. Katı olmayan API'ler) çok daha kullanışlıdır.

REST formattan bağımsızdır. XML, HTML, JSON tüm seçenekler mevcuttur.

REST, WSDL / SOAP etkileşiminin çok noktalı ileti etkileşimi olduğu 2 noktalı ileti aktarımı için yetenekler sağlar (REST, Yeniden Konumlandırma Durumu Aktarımı anlamına geldiğinden şaşırtıcı değildir).

REST, XML iletileri için yeni bir uzantı gerektirmez; burada WSDL / SOAP'de durum böyledir.

WSDL / SOAP çoklu taşıma protokolleri kullanır, REST yalnızca HTTP'ye dayanır. Bu nedenle WSDL / SOAP RESTful gibi kullanılabilir, ancak basit istekler aşırı karmaşık / ağır ağırlıklı olabilir.

Basit bir benzetme: REST, bir motoboyun yemeğinizi kolay ve hızlı bir şekilde sunması gibidir. XML, WSDL / SOAP'ı daha çok UPS teslimatı, daha yapılandırılmış ve ciddi şeyler gibi genişletti, ancak bir maliyeti var.



0

WSDL belgesi bir web servisini açıklar. Bu ana öğeleri kullanarak hizmetin konumunu ve hizmet yöntemlerini belirtir: her hizmet için web hizmeti veri öğelerinde kullanılan veri türleri gerçekleştirilebilecek işlemleri ve iletilen iletileri tanımlar

SOAP (Basit Nesne Erişim Protokolü), farklı işletim sistemlerinde çalışan programların http ve xml kullanarak iletişim kurmasına izin veren bir mesajlaşma protokolüdür.

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.