Apa itu titik akhir layanan web?

323

Katakanlah layanan web saya berada di http://localhost:8080/foo/mywebservicedan WSDL saya ada di http://localhost:8080/foo/mywebservice?wsdl.

Apakah http://localhost:8080/foo/mywebservicetitik akhir, yaitu, apakah sama dengan URI layanan web saya atau di mana pesan SOAP diterima dan tidak dikesampingkan?

Bisakah Anda jelaskan kepada saya apa itu dan apa tujuannya?

karakays
sumber

Jawaban:

416

Ini adalah jawaban yang lebih pendek dan mudah-mudahan lebih jelas ... Ya, titik akhir adalah URL tempat layanan Anda dapat diakses oleh aplikasi klien. Layanan web yang sama dapat memiliki beberapa titik akhir, misalnya untuk membuatnya tersedia menggunakan protokol yang berbeda.

lbalazscs
sumber
8
@ user137717 Tidak, situs web bukan layanan web. Layanan web terutama digunakan oleh aplikasi, sedangkan situs web terutama untuk manusia.
lbalazscs
4
@ user137717 Titik akhir adalah URL tempat layanan web Anda dapat diakses oleh aplikasi klien. Jika Anda tidak mengerti apa itu layanan web, baca misalnya ini: stackoverflow.com/questions/226108/…
lbalazscs
1
+1 dari saya juga, dan sebuah pertanyaan: Mengapa tidak sebut saja (yaitu yang disebut "titik akhir") sebagai "basis URI"? Apakah ada perbedaan mendasar antara "titik akhir" dan "basis URI"? Terima kasih.
Dirahasiakan
1
@Withheld Secara Konseptual ada perbedaan antara titik akhir dan alamatnya, tetapi dalam praktiknya biasanya alamat tersebut dimaksudkan, karena biasanya Anda perlu mengonfigurasi klien dengan "titik akhir" untuk menemukan layanan.
lbalazscs
2
@ lbalazscs - Alamat-IP: 8080 / foo / ShoppingWebservice / Toys , IP-Alamat: 8080 / foo / ShoppingWebservice / Buku dll. - Apa itu bagian dari bagian Toys / Mainan / Buku? Apakah mereka juga disebut titik akhir atau sumber daya?
MasterJoe2
47

Jawaban yang diperbarui, dari Peter dalam komentar:

Ini adalah "terminologi lama", gunakan secara langsung definisi "endepoint" WSDL2 (WSDL2 menerjemahkan "port" ke "endpoint").


Mungkin Anda menemukan jawaban dalam dokumen ini: http://www.w3.org/TR/wsdl.html

Dokumen WSDL mendefinisikan layanan sebagai kumpulan titik akhir jaringan, atau port. Dalam WSDL, definisi abstrak titik akhir dan pesan dipisahkan dari penyebaran jaringan konkret atau binding format data. Ini memungkinkan penggunaan kembali definisi abstrak: pesan, yang merupakan deskripsi abstrak dari data yang dipertukarkan, dan jenis port yang merupakan kumpulan abstrak dari operasi. Protokol konkret dan spesifikasi format data untuk jenis port tertentu merupakan ikatan yang dapat digunakan kembali. Port didefinisikan dengan mengaitkan alamat jaringan dengan ikatan yang dapat digunakan kembali, dan kumpulan port menentukan layanan. Oleh karena itu, dokumen WSDL menggunakan elemen-elemen berikut dalam definisi layanan jaringan:

  • Jenis - wadah untuk definisi tipe data menggunakan beberapa jenis sistem (seperti XSD).
  • Pesan - definisi abstrak dari data yang dikomunikasikan.
  • Operation - deskripsi abstrak dari tindakan yang didukung oleh layanan.
  • Port Type - serangkaian operasi abstrak yang didukung oleh satu atau lebih titik akhir.
  • Binding– protokol konkret dan spesifikasi format data untuk jenis port tertentu.
  • Port - titik akhir tunggal yang didefinisikan sebagai kombinasi dari alamat yang mengikat dan jaringan.
  • Layanan– kumpulan titik akhir terkait.

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

Titik akhir adalah titik koneksi tempat file HTML atau halaman server aktif terpapar. Titik akhir menyediakan informasi yang diperlukan untuk membahas titik akhir layanan Web. Endpoint menyediakan referensi atau spesifikasi yang digunakan untuk mendefinisikan grup atau keluarga properti pengalamatan pesan dan memberikan karakteristik pesan end-to-end, seperti referensi untuk sumber dan tujuan titik akhir, dan identitas pesan untuk memungkinkan seragam menangani pesan "independen". Titik akhir dapat berupa PC, PDA, atau terminal titik penjualan.

Julien
sumber
72
"Titik akhir menyediakan informasi yang diperlukan untuk mengatasi titik akhir layanan Web." Harus menyukai kalimat itu! : D
musaul
2
Ini adalah "terminologi lama", gunakan secara langsung definisi "endepoint" WSDL2 (WSDL2 menerjemahkan "port" ke "endpoint").
Peter Krauss
34

Titik akhir layanan web adalah URL yang akan digunakan program lain untuk berkomunikasi dengan program Anda. Untuk melihat WSDL Anda menambahkan ?wsdlke URL titik akhir layanan web.

Layanan web adalah untuk interaksi program-ke-program , sedangkan halaman web adalah untuk interaksi program-ke-manusia .

Jadi: Titik akhir adalah: http://www.blah.com/myproject/webservice/webmethod

Karenanya, WSDL adalah: http://www.blah.com/myproject/webservice/webmethod?wsdl


Untuk memperluas elemen WSDL, saya selalu merasa terbantu untuk membandingkannya dengan kode:

WSDL memiliki 2 bagian (fisik & abstrak).

Bagian fisik:

Definisi - variabel - mis: myVar, x, y, dll.

Jenis - tipe data - contoh: int, dobel, String, myObjectType

Operasi - metode / fungsi - mis: myMethod (), myFunction (), dll.

Pesan - parameter input metode / fungsi & tipe pengembalian

  • mis: public myObjectType myMethod ( String myVar)

Porttypes - kelas (yaitu mereka adalah wadah untuk operasi) - mis: MyClass {}, dll.

Bagian abstrak:

Binding - ini terhubung ke porttypes dan menentukan protokol yang dipilih untuk berkomunikasi dengan layanan web ini. - Protokol adalah bentuk komunikasi (jadi teks / SMS, vs telepon vs. email, dll.).

Layanan - ini mencantumkan alamat tempat program lain dapat menemukan layanan web Anda (yaitu titik akhir Anda ).

specialk1st
sumber
5
Saya menemukan "Layanan web adalah untuk interaksi program-ke-program, sedangkan halaman web adalah untuk interaksi antar-program" adalah pernyataan yang sangat berguna untuk menghentikan saya membuat bingung "mengapa orang tidak memanggil titik akhir sebagai URL"
Minnie
14

Dalam proyek-proyek sebelumnya yang saya kerjakan, titik akhir adalah properti relatif. Maksudnya itu mungkin atau mungkin tidak ditambahkan, tetapi selalu mengandung protocol://host:port/partOfThePath.

Jika layanan yang dipanggil memiliki bagian dinamis untuk itu, misalnya a ?param=dynamicValue, maka bagian itu akan ditambahkan ke titik akhir. Tetapi berkali-kali titik akhir dapat digunakan sebagaimana adanya tanpa harus diubah.

Apa yang penting untuk dipahami adalah apa yang bukan titik akhir dan bagaimana itu membantu. Misalnya cara alternatif untuk meneruskan informasi yang disimpan di titik akhir adalah dengan menyimpan berbagai bagian titik akhir di properti yang terpisah. Sebagai contoh:

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

Atau jika host dan port yang sama melintasi beberapa layanan:

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

Dalam kasus tersebut, URL lengkap perlu dibangun dalam kode Anda seperti itu:

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

Dalam kontrak ini dapat disimpan sebagai titik akhir

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

Dan ya berkali-kali kami menyimpan titik akhir hingga dan termasuk '='. Ini mengarah ke kode seperti ini:

String url = serviceAEndpoint + dynamicValue;

Harapan yang memberi sedikit cahaya.

Jose Martinez
sumber
7

Sederhananya, titik akhir adalah salah satu ujung saluran komunikasi. Ketika API berinteraksi dengan sistem lain, titik sentuh dari komunikasi ini dianggap sebagai titik akhir. Untuk API, titik akhir dapat menyertakan URL server atau layanan. Setiap titik akhir adalah lokasi dari mana API dapat mengakses sumber daya yang mereka butuhkan untuk menjalankan fungsinya.

API berfungsi menggunakan 'permintaan' dan 'tanggapan.' Ketika API meminta informasi dari aplikasi web atau server web, itu akan menerima respons. Tempat API mengirim permintaan dan tempat sumber daya itu hidup, disebut titik akhir.

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

Satya
sumber
6

Endpoint ditentukan sebagai url relatif atau absolut yang biasanya menghasilkan respons. Respons itu biasanya merupakan hasil dari proses sisi server yang, misalnya, dapat menghasilkan string JSON. String itu kemudian dapat dikonsumsi oleh aplikasi yang melakukan panggilan ke titik akhir. Jadi, secara umum titik akhir adalah titik akses yang telah ditentukan, digunakan dalam jaringan TCP / IP untuk memulai proses dan / atau mengembalikan respons. Titik akhir dapat berisi parameter yang diteruskan dalam URL, sebagai pasangan nilai kunci, pasangan nilai kunci ganda dipisahkan oleh ampersand, memungkinkan titik akhir untuk memanggil, misalnya, proses pembaruan / penyisipan; jadi titik akhir tidak selalu perlu mengembalikan respons, tetapi respons selalu berguna, bahkan jika itu hanya untuk menunjukkan keberhasilan atau kegagalan suatu operasi.

Martyn Wynn
sumber