Web hizmeti uç noktası nedir?


323

Diyelim ki web hizmetim adresinde http://localhost:8080/foo/mywebserviceve WSDL adresimde http://localhost:8080/foo/mywebservice?wsdl.

http://localhost:8080/foo/mywebserviceBir uç nokta, yani, web hizmetimin URI'si ile aynı mı yoksa SOAP mesajlarının alındığı ve paylaşılmadığı yer mi?

Bana bunun ne olduğunu ve amacının ne olduğunu açıklar mısınız?

Yanıtlar:


416

Bu daha kısa ve umarım daha net bir cevaptır ... Evet, bitiş noktası, hizmetinize bir istemci uygulaması tarafından erişilebilecek URL'dir. Aynı web hizmetinin, örneğin farklı protokoller kullanarak kullanılabilir olmasını sağlamak için birden fazla uç noktası olabilir.


8
@ user137717 Hayır, web siteleri web hizmetleri değildir. Bir web hizmeti esas olarak uygulamalar tarafından kullanılırken, web siteleri öncelikle insanlar içindir.
lbalazscs

4
@ user137717 Bitiş noktası, web hizmetinize bir istemci uygulaması tarafından erişilebilen URL'dir. Bir web hizmetinin ne olduğunu bilmiyorsanız, örneğin şunu okuyun: stackoverflow.com/questions/226108/…
lbalazscs

1
Benden +1 de ve bir soru: Neden sadece "son nokta" olarak adlandırılır) "temel URI" olarak adlandırılmıyor? "Uç nokta" ile "temel URI" arasında temel bir fark var mı? Teşekkürler.
Withheld

1
@Withheld Kavramsal olarak bir uç nokta ve adresi arasında bir fark vardır, ancak pratikte genellikle adres kastedilmektedir, çünkü tipik olarak bir müşteriyi hizmeti bulmak için bir "uç nokta" ile yapılandırmanız gerekir.
lbalazscs

2
@lbalazscs - IP Adresi: 8080 / foo / AlışverişWebservice / Oyuncaklar , IP Adresi: 8080 / foo / AlışverişWebservice / Kitaplar vb. - / Toys, / Books kısmı ne denir? Bunlara uç nokta veya kaynak da deniyor mu?
MasterJoe2

47

Yorumlarda Peter'dan cevap güncellendi:

Bu "eski terminoloji" dir, WSDL2 "endepoint" tanımını doğrudan kullanın (WSDL2 "port" u "uç noktaya çevirir").


Belki bu belgede bir cevap bulursunuz: http://www.w3.org/TR/wsdl.html

Bir WSDL belgesi, hizmetleri ağ uç noktalarının veya bağlantı noktalarının koleksiyonu olarak tanımlar. WSDL'de, uç noktaların ve mesajların soyut tanımı, somut ağ dağıtımlarından veya veri biçimi bağlantılarından ayrılır. Bu, soyut tanımların yeniden kullanılmasına izin verir: değiş tokuş edilen verilerin soyut tanımları olan mesajlar ve soyut operasyon koleksiyonları olan port tipleri. Belirli bir port tipi için somut protokol ve veri formatı spesifikasyonları tekrar kullanılabilir bir bağ oluşturur. Bir bağlantı noktası, bir ağ adresini yeniden kullanılabilir bir bağlamayla ilişkilendirerek tanımlanır ve bir bağlantı noktaları koleksiyonu bir hizmeti tanımlar. Bu nedenle, bir WSDL belgesi ağ hizmetlerinin tanımında aşağıdaki öğeleri kullanır:

  • Türler - bazı tür sistemlerini (XSD gibi) kullanan veri türü tanımlamaları için bir kapsayıcı.
  • Mesaj - iletilen verinin soyut, yazılı bir tanımı.
  • Operasyon - servis tarafından desteklenen bir eylemin özet açıklaması.
  • Port Type (Port Tipi) - bir veya daha fazla uç nokta tarafından desteklenen soyut bir işlem kümesi.
  • Bağlama - belirli bir bağlantı noktası türü için somut bir protokol ve veri biçimi belirtimi.
  • Port - bir bağlamanın ve ağ adresinin kombinasyonu olarak tanımlanan tek bir uç nokta.
  • Hizmet - ilgili son noktaların bir koleksiyonu.

http://www.ehow.com/info_12212371_definition-service-endpoint.html

Bitiş noktası, HTML dosyalarının veya etkin sunucu sayfalarının bulunduğu bir bağlantı noktasıdır. Uç noktalar, bir Web hizmeti uç noktasını ele almak için gereken bilgileri sağlar. Uç nokta, bir grup veya mesaj adresleme özelliklerini tanımlamak ve uç noktaların kaynağı ve hedefi için referanslar ve tekdüze olmasına izin vermek için mesajların kimliği gibi uçtan uca mesaj özellikleri vermek için kullanılan bir referans veya spesifikasyon sağlar. "bağımsız" mesajların adreslenmesi. Son nokta bir PC, PDA veya satış noktası terminali olabilir.


72
"Uç noktalar, bir Web hizmeti uç noktasını ele almak için gereken bilgileri sağlar." Bu cümleyi sevmeliyim! : D
musaul

2
Bu "eski terminoloji" dir, WSDL2 "endepoint" tanımını doğrudan kullanın (WSDL2 "port" u "uç noktaya çevirir").
Peter Krauss

34

Web hizmeti bitiş noktası, başka bir programın programınızla iletişim kurmak için kullanacağı URL'dir . ?wsdlWeb hizmeti bitiş noktası URL'sine eklediğiniz WSDL'yi görmek için .

Web servisleri programdan programa etkileşim içindir, web sayfaları programdan insana etkileşim içindir.

Yani: Bitiş noktası: http://www.blah.com/myproject/webservice/webmethod

Bu nedenle, WSDL: http://www.blah.com/myproject/webservice/webmethod?wsdl


Bir WSDL öğelerini daha da genişletmek için, bunları kodla karşılaştırmak her zaman yararlı olur:

Bir WSDL'nin 2 bölümü vardır (fiziksel ve soyut).

Fiziksel Bölüm:

Tanımlar - değişkenler - örnek: myVar, x, y, etc.

Türler - veri türleri - ex: int, double, String, myObjectType

İşlemler - yöntemler / işlevler - ör: myMethod (), myFunction (), vb.

Mesajlar - yöntem / fonksiyon giriş parametreleri ve dönüş tipleri

  • örnek: public myObjectType myMethod ( myVar dizesi )

Porttipler - sınıflar (yani işlemler için bir kaptır) - ör: MyClass {}, vb.

Özet Bölümü:

Bağlama - bunlar porttiplere bağlanır ve bu web hizmeti ile iletişim kurmak için seçilen protokolü tanımlar. - bir protokol bir iletişim şeklidir (metin / SMS, telefona karşı e-posta vb.).

Servis - Bu, başka bir programın web servisinizi bulabileceği adresi (yani noktanızı ) listeler .


5
"Web hizmetleri programdan programa etkileşim içindir, web sayfaları programdan insana etkileşim içindir" beni şaşırtmak için çok yararlı bir ifade "neden insanlar cehenneme URL olarak çağırmazlar"
Minnie

14

Üzerinde çalıştığım geçmiş projelerde, son nokta göreceli bir özellikti. Yani, eklenmiş olabilir veya olmayabilir, ama her zaman protocol://host:port/partOfThePath.

Aranan hizmetin dinamik bir parçası varsa, örneğin a ?param=dynamicValue, o kısım bitiş noktasına eklenir. Ancak çoğu zaman son nokta, değiştirilmeden olduğu gibi kullanılabilir.

Anlaşılması gereken şey, bir uç noktanın ne olmadığı ve nasıl yardımcı olduğudur. Örneğin, bir uç noktada depolanan bilgileri iletmenin alternatif bir yolu, uç noktanın farklı bölümlerini ayrı özelliklerde saklamak olacaktır. Örneğin:

hostForServiceA=someIp
portForServiceA=8080
pathForServiceA=/some/service/path
hostForServiceB=someIp
portForServiceB=8080
pathForServiceB=/some/service/path

Veya birden çok hizmette aynı ana bilgisayar ve bağlantı noktası varsa:

host=someIp
port=8080
pathForServiceA=/some/service/path
pathForServiceB=/some/service/path

Bu durumlarda, tam URL'nin kodunuzda şu şekilde oluşturulması gerekir:

String url = "http://" + host + ":" + port + pathForServiceA  + "?" + dynamicParam + "=" + dynamicValue;

Sözleşmede bu, son nokta olarak saklanabilir

serviceAEndpoint=http://host:port/some/service/path?dynamicParam=

Ve evet birçok kez bitiş noktasını '=' işaretine kadar sakladık. Bu, aşağıdaki gibi kodlara yol açar:

String url = serviceAEndpoint + dynamicValue;

Umarım biraz ışık tutar.


7

Basitçe söylemek gerekirse, bir uç nokta bir iletişim kanalının bir ucudur. Bir API başka bir sistemle etkileşime girdiğinde, bu iletişimin temas noktaları uç noktalar olarak kabul edilir. API'lar için bir uç nokta, bir sunucu veya hizmetin URL'sini içerebilir. Her uç nokta, API'lerin işlevlerini yerine getirmek için ihtiyaç duydukları kaynaklara erişebilecekleri konumdur.

API'lar 'istekler' ve 'yanıtlar' kullanılarak çalışır. Bir API bir web uygulamasından veya web sunucusundan bilgi istediğinde, bir yanıt alır. API'lerin istek gönderdiği yere ve kaynağın yaşadığı yere bitiş noktası denir.

Referans: https://smartbear.com/learn/performance-monitoring/api-endpoints/


6

Bir Bitiş Noktası, genellikle bir yanıtla sonuçlanan göreceli veya mutlak bir url olarak belirtilir. Bu yanıt genellikle, örneğin bir JSON dizesi oluşturabilen bir sunucu tarafı işleminin sonucudur. Bu dize daha sonra uç noktaya çağrı yapan uygulama tarafından tüketilebilir. Bu nedenle, genel olarak uç noktalar, bir işlemi başlatmak ve / veya bir yanıt döndürmek için TCP / IP ağlarında kullanılan önceden tanımlanmış erişim noktalarıdır. Uç noktalar, anahtar / değer çiftleri olarak birden çok anahtar / değer çiftiyle ayrıldığından, URL'nin içinden geçirilen parametreleri içerebilir ve uç noktanın örneğin bir güncelleme / ekleme işlemi; bu nedenle uç noktaların her zaman bir yanıt döndürmesi gerekmez, ancak bir yanıtın yalnızca bir işlemin başarılı veya başarısız olduğunu göstermek olsa bile her zaman yararlı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.