SORU
9 Kasım 2013, CUMARTESİ


SOAP vs REST (farklılıklar)

Web hizmeti bir iletişim protokolü olarak, SOAP ve REST arasındaki farklar hakkında yazılar okudum, ama SABUN üzerinde DİNLENMEK için büyük bir avantaj olduğunu düşünüyorum

  1. Diğerleri daha dinamik ve UDDI oluşturma ve güncelleme gerek.

  2. DİNLENME XML biçimi ile sınırlı değildir. DİNLENME hizmetleri gönderebilir web düz metin, JSON ve XML de.

Ama SABUN daha standart (; güvenlik Ex).

Bu noktaları doğru muyum?

CEVAP
10 Kasım 2013, Pazar


Ne yazık ki, yerlerine de yanlış bilgilendirme ve yanlış anlamaları bir yeri vardır. Soru ve answer by @cmd sadece Yığın Taşması bu, ama soruları ve cevapları bu konu ile ilgili en yansıtmaktadır.

SOAP ve REST ilk bir protokol olduğundan, doğrudan mukayese edilebilir mi (ya da en azından olmaya çalışır) ve ikinci bir mimari tarzı. Bu insanlar SABUN olmayan herhangi bir HTTP API DİNLENME arama eğilimindedir beri, muhtemelen etrafında karışıklık kaynaklarından biri.

İşler biraz bastırıyor ve bir karşılaştırma yapmaya, SABUN ve DİNLENME arasındaki temel fark, istemci ve sunucu uygulamaları arasında bağlantı derecesidir. SOAP client özel masaüstü uygulaması gibi, sıkıca server bağlı çalışıyor. İstemci ve sunucu arasında sert bir sözleşmesi var ve eğer her iki tarafında bir değişiklik olursa kırması bekleniyor. Herhangi bir değişiklik, aşağıdaki sürekli güncellemeleri gerekir.

GERİSİ bir istemci tarayıcısı gibi. Bir protokol ve standart yöntemler kullanmayı bilen genel bir istemci ve bir uygulama içine sığacak. Ekstra yöntem, standart yöntem üzerinde kaldıraç yaratarak protokol standartları ihlal ve medya türüne onlarla eylemleri yaratamazsın. Eğer doğru yapılırsa, daha az kavrama vardır, ve değişiklikleri daha düzgün bir şekilde ele olabilir. Bir istemci bir REST API sıfır bilgi ile hizmeti, giriş noktası ve medya tipi için girmesi gerekiyordu. SOAP istemci kullanarak olacak her şey hakkında bir ön bilgi gerekiyor, hatta etkileşim başlamak olmaz. Ayrıca, DİNLENME bir istemci-kod-talep sunucusu tarafından sağlanan kendisi olan klasik örnek javascript kodu istemci tarafı başka bir hizmet ile etkileşim sürücü için kullanılan genişletilebilir.

Bu ne hakkında olduğunu ve SABUN nasıl farklı olduğunu anlamak için çok önemli noktalar olduğunu düşünüyorum:

  • DİNLENME protokol bağımsızdır. HTTP bağlı değil. Bir web sitesinde bir ftp linki takip edebilirsiniz gibi oldukça fazla, GERİSİ bir uygulama için standart bir URİ düzeni vardır herhangi bir iletişim kuralı kullanabilirsiniz.

  • DİNLENME eşleme HTTP yöntemleri için CRUD. Bu konuda ayrıntılı bir açıklama için this cevap okuyun.

  • DİNLENME kullandığınız parçaları gibi standart. HTTP güvenlik ve Kimlik Doğrulama standart, HTTP üzerinden DİNLENME yaparken kullanın.

  • DİNLENME HATEOAS olmadan huzur içinde değil. Bu bir istemci tek giriş noktası URI bilir ve kaynakları müşteri takip etmeli bağlantıları geri döneceği anlamına gelir. Huzur içinde yapabileceğiniz her şey için URİ desen ver, şu süslü belgelerine jeneratörler noktası tamamen Bayan API. Sadece belgeleyen bir şey olması gerekiyordu aşağıdaki standart, ama ne zaman sen yapmak, sen kaplin istemciye belirli bir anda evrim API ve herhangi bir değişiklik üzerinde API olması belgelenmiş ve uygulamalı ya da kıracak.

  • Diğer web kendisi mimari tarzıdır. Yığın Taşması girdiğinizde, bir Soru ve bir Cevap, medya türleri bildiklerini ve web bağlantıları sağlar. REST API aynı şeyi vardır. Eğer biz tasarlanmış bir web yolu insanlar DİNLENME yapılmalı, yerine sahip bir ana sayfa ile bağlantıları Sorular ve Cevaplar, olursak, bu bir statik belgeler açıklayan ekonomik görünüm bir soru, almak zorunda URI stackoverflow.com/questions/<id> yerine kimliği olan Soru.tarayıcınız üzerinde kimliği ve yapıştır. Bu saçmalık, ama birçok insan DİNLENME olduğunu düşünüyorum.

Bu son nokta yeterince vurguladı olamaz. Eğer müşterileriniz belgelerinde şablonlardan URI yapı ve kaynak gösterimi bağlantıları almıyorsanız, o DİNLENME değil. Roy Fielding, DİNLENME yazarın, bu blog yazısı bunu açıkça belirtti: REST APIs must be hypertext-driven.

Akılda yukarıdaki ile, REST, XML sınırlı olmayabilir, doğru herhangi bir diğer biçimi ile süre ve bağlantılar için bazı biçim tasarım standardize etmek zorundasın olduğunu fark edeceksiniz. Köprüler, XML, JSON, ama değil standart. HAL gibi JSON için taslak standartlar vardır.

Son olarak, geri KALAN herkes için değil, ve bunun bir kanıtı çoğu insan onların sorunlarını çok iyi DİNLEN diyorlar HTTP API ile çözmek ve asla bunun ötesinde girişim. GERİSİ zor bazen, özellikle başlangıçta yapmak ama sunucu tarafında daha kolay evrim ile zamanla öder, ve değişiklikler için müşterinin direncini. Eğer bir şey hızlı ve kolay bir şekilde yapılması gerekir, değil mi dinleniyor merak etme. Aradığınız şey muhtemelen değil. Eğer yıllar, hatta on yıllar için çevrimiçi kalmak zorunda olacak bir şey gerekiyorsa, o zaman GERİSİ sana kalmış.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andytokkallos

    Andytokkallo

    27 Kasım 2007
  • Elefant Traks

    Elefant Trak

    5 HAZİRAN 2007
  • Jeb Corliss

    Jeb Corliss

    17 Kasım 2006