Tutorial WSDL: Bahasa Penerangan Perkhidmatan Web dengan Contoh

Isi kandungan:

Anonim

Apa itu WSDL?

Bahasa Penerangan Perkhidmatan Web (WSDL) adalah fail berasaskan XML yang pada dasarnya memberitahu aplikasi pelanggan apa yang dilakukan oleh perkhidmatan web. Fail WSDL digunakan untuk menjelaskan secara ringkas apa yang dilakukan oleh perkhidmatan web dan memberikan klien semua maklumat yang diperlukan untuk menyambung ke perkhidmatan web dan menggunakan semua fungsi yang disediakan oleh perkhidmatan web.

Dalam tutorial ini, kita akan memfokuskan pada titik terakhir yang merupakan bahagian terpenting dalam perkhidmatan web, dan itu adalah WSDL atau bahasa penerangan perkhidmatan Web.

Fail WSDL digunakan untuk menjelaskan secara ringkas apa yang dilakukan oleh perkhidmatan web dan memberikan klien semua maklumat yang diperlukan untuk menyambung ke perkhidmatan web dan menggunakan semua fungsi yang disediakan oleh perkhidmatan web.

Dalam tutorial ini, anda akan belajar-

  • Struktur Dokumen WSDL
  • Elemen WSDL
  • Mengapa WSDL
  • Bahagian Mesej WSDL
  • Pengikat Jenis Pelabuhan
  • Membuat Fail WSDL
  • Menerbitkan Contoh Perkhidmatan Web

Struktur Dokumen WSDL

Dokumen WSDL digunakan untuk menggambarkan perkhidmatan web. Penerangan ini diperlukan, supaya aplikasi pelanggan dapat memahami apa yang sebenarnya dilakukan oleh perkhidmatan web.

  • Fail WSDL mengandungi lokasi perkhidmatan web dan
  • Kaedah yang didedahkan oleh perkhidmatan web.

Fail WSDL itu sendiri boleh kelihatan sangat rumit bagi pengguna mana pun, tetapi mengandungi semua maklumat yang diperlukan oleh mana-mana aplikasi pelanggan untuk menggunakan perkhidmatan web yang berkaitan.

Berikut adalah struktur umum fail WSDL

  • Definisi
  • Ruang Nama Sasaran
  • Jenis Data
  • Mesej
  • Jenis Port
  • Ikatan
  • perkhidmatan

Satu perkara penting yang perlu diperhatikan di sini adalah bahawa definisi mesej, yang diluluskan oleh protokol SOAP sebenarnya ditakrifkan dalam dokumen WSDL.

Dokumen WSDL sebenarnya memberitahu aplikasi pelanggan apa jenis pesanan SOAP yang dikirim dan diterima oleh perkhidmatan Web.

Dengan kata lain, WSDL sama seperti kad pos yang mempunyai alamat lokasi tertentu. Alamat tersebut memberikan maklumat mengenai orang yang menghantar kad pos. Oleh itu, dengan cara yang sama, fail WSDL adalah poskad, yang mempunyai alamat perkhidmatan web yang dapat menyampaikan semua fungsi yang diinginkan oleh klien.

Berikut adalah rajah struktur fail WSDL

Struktur WSDL

Elemen WSDL

Fail WSDL mengandungi bahagian utama berikut

  1. The tag digunakan untuk menentukan semua jenis data yang kompleks, yang akan digunakan dalam mesej ditukar antara permohonan pelanggan dan perkhidmatan web. Ini adalah aspek penting dari aplikasi klien, kerana jika perkhidmatan web berfungsi dengan jenis data yang kompleks, maka aplikasi klien harus tahu bagaimana memproses jenis data yang kompleks. Jenis data seperti float, angka, dan rentetan adalah semua jenis data sederhana, tetapi mungkin ada jenis data terstruktur yang mungkin disediakan oleh perkhidmatan web.

    Sebagai contoh, mungkin ada jenis data yang disebut EmployeeDataType yang boleh memiliki 2 elemen yang disebut "EmployeeName" dari jenis string dan "EmployeeID" dari jenis nombor atau bilangan bulat. Bersama-sama mereka membentuk struktur data yang kemudian menjadi jenis data yang kompleks.

  2. The tag digunakan untuk menentukan mesej yang ditukar antara aplikasi klien dan pelayan web. Mesej-mesej ini akan menjelaskan operasi input dan output yang dapat dilakukan oleh perkhidmatan web. Contoh mesej boleh berupa mesej yang menerima EmployeeID pekerja, dan output output boleh menjadi nama pekerja berdasarkan EmpoyeeID yang disediakan.

  3. The tag digunakan untuk merangkumi setiap input dan output mesej ke dalam satu operasi logik. Jadi mungkin ada operasi yang disebut "GetEm Employee" yang menggabungkan pesan input penerimaan EmployeeID dari aplikasi klien dan kemudian mengirim EmployeeName sebagai pesan output.

  4. The tag digunakan untuk mengikat operasi untuk jenis port tertentu. Ini adalah kerana apabila aplikasi klien memanggil jenis port yang relevan, ia kemudian dapat mengakses operasi yang terikat dengan jenis port ini. Jenis port sama seperti antara muka. Oleh itu, jika aplikasi pelanggan perlu menggunakan perkhidmatan web, mereka perlu menggunakan maklumat yang mengikat untuk memastikan mereka dapat menyambung ke antara muka yang disediakan oleh perkhidmatan web tersebut.

  5. The tag adalah nama yang diberikan kepada perkhidmatan web itu sendiri. Pada mulanya, ketika aplikasi klien membuat panggilan ke perkhidmatan web, ia akan dilakukan dengan memanggil nama perkhidmatan web. Sebagai contoh, perkhidmatan web boleh terletak di alamat seperti http: //localhost/Guru99/Tutorial.asmx . Teg perkhidmatan sebenarnya akan mempunyai URL yang ditentukan sebagai http: //localhost/Guru99/Tutorial.asmx , yang sebenarnya akan memberitahu aplikasi pelanggan bahawa terdapat perkhidmatan web yang tersedia di lokasi ini.

Mengapa WSDL

Perkhidmatan web adalah komponen penting dalam membina aplikasi web moden. Tujuan utama mereka adalah untuk membolehkan banyak aplikasi yang dibina di atas pelbagai bahasa pengaturcaraan untuk saling berbicara. Sebagai contoh, kita dapat mengadakan pembicaraan aplikasi web .Net ke aplikasi Java melalui layanan Web.

Perkhidmatan web mempunyai ciri-ciri utama berikut

  • Ia dibina menggunakan bahasa pengaturcaraan XML. Hampir semua teknologi moden seperti .Net dan Java mempunyai perintah yang sepadan dengan kemampuan untuk bekerja dengan XML. Oleh itu, XML diambil sebagai bahasa yang paling sesuai untuk membina perkhidmatan web.
  • Perkhidmatan web berkomunikasi melalui HTTP. HTTP adalah protokol yang digunakan oleh semua aplikasi berasaskan web. Oleh itu, masuk akal untuk memastikan bahawa perkhidmatan Web juga mempunyai kemampuan untuk bekerja melalui protokol HTTP.
  • Perkhidmatan web sesuai dengan spesifikasi bahasa tertentu. Spesifikasi ini ditetapkan oleh W3C, yang merupakan badan pengatur untuk semua standard web.
  • Perkhidmatan web mempunyai bahasa keterangan yang dikenali sebagai WSDL, yang digunakan untuk menggambarkan perkhidmatan web.

Fail WSDL ditulis dalam XML lama biasa. Sebabnya dalam XML adalah supaya fail dapat dibaca oleh bahasa pengaturcaraan apa pun.

Oleh itu, jika aplikasi pelanggan ditulis dalam. Net, ia akan memahami fail XML. Begitu juga, jika aplikasi klien ditulis dalam bahasa pengaturcaraan Java maka juga akan dapat menafsirkan file WSDL.

Fail WSDL adalah apa yang mengikat semuanya. Dari rajah di atas, anda dapat melihat bahawa anda boleh membuat perkhidmatan web dalam bahasa .Net.

Jadi di sinilah perkhidmatan tersebut dilaksanakan. Sekiranya anda tidak mempunyai fail WSDL dan ingin kelas Java menggunakan perkhidmatan web, anda memerlukan banyak usaha pengekodan untuk mencapainya.

Tetapi sekarang dengan fail WSDL yang ada dalam XML, yang dapat dimengerti oleh bahasa pengaturcaraan apa pun, kini anda dapat dengan mudah menggunakan kelas Java menggunakan perkhidmatan web .Net. Oleh itu, jumlah usaha pengekodan sangat dikurangkan.

Bahagian Mesej WSDL

WSDL terdiri daripada bahagian yang disebut "mesej" yang dilambangkan oleh elemen .

Elemen ini pada asasnya digunakan untuk menggambarkan data yang bertukar antara perkhidmatan web dan aplikasi pelanggan.

Setiap perkhidmatan web akan selalu mempunyai 2 jenis mesej,

  • Salah satunya adalah untuk input perkhidmatan web, dan yang lain adalah untuk output perkhidmatan web.
  • Input digunakan untuk menggambarkan parameter yang diterima oleh perkhidmatan web. Ini adalah aspek penting dalam aplikasi pelanggan sehingga mengetahui nilai yang akan dikirim sebagai parameter ke perkhidmatan web.
  • Jenis mesej lain adalah mesej output yang memberitahu apa hasil yang diberikan oleh perkhidmatan web.

Setiap pesan, pada gilirannya, akan memiliki elemen yang digunakan untuk menggambarkan parameter yang digunakan oleh pesan input dan output.

Berikut adalah contoh ringkas, seperti apa mesej untuk perkhidmatan web. Fungsi perkhidmatan web adalah memberikan nama "Tutorial" setelah "ID Tutorial" diserahkan sebagai parameter ke perkhidmatan web.

  1. Seperti yang kita lihat, perkhidmatan web mempunyai 2 pesan, satu untuk input dan yang lain untuk output.
  2. Mesej input dikenali sebagai TutorialNameRequest yang mempunyai satu parameter yang disebut TutorialID. Parameter ini adalah nombor jenis yang ditentukan oleh jenis nombor xsd:
  3. Mesej output dikenali sebagai TutorialNameResponse yang mempunyai satu parameter yang disebut TutorialName. Parameter ini adalah rentetan jenis yang ditentukan oleh jenis rentetan xsd:

Pengikat Jenis Pelabuhan

Pelabuhan digunakan dalam WSDL untuk menentukan satu operasi lengkap yang ditawarkan oleh perkhidmatan web.

Dalam topik sebelumnya, kami melihat bahawa perkhidmatan web kami menyediakan 2 mesej, satu untuk input yang disebut "TutorialNameRequest" dan yang lain untuk output yang disebut "TutorialNameResponse." Bersama borang input dan output dikenali sebagai satu operasi yang lengkap.

WSDL menyediakan elemen yang disebut yang digunakan untuk menentukan operasi yang disediakan oleh perkhidmatan Web.

Oleh itu, dalam contoh di atas kita dapat memperhatikan perkara berikut:

  1. Nama Jenis port yang merangkumi operasi diberikan sebagai "Tutorial_PortType."
  2. Operasi itu sendiri diberi nama "Tutorial". Oleh itu operasi kami pada asasnya memberikan Nama Tutorial jika TutorialID diberikan sebagai parameter input.
  3. Seterusnya adalah 2 mesej kami, satu untuk input dan yang lain untuk output yang membentuk operasi kami

Selain elemen , ada juga elemen yang digunakan untuk menentukan bagaimana pesan akan ditransfer.

  1. Contoh di atas menunjukkan bahawa pengikatan terdiri daripada nama yang mengikat yang dalam kes kita diberikan sebagai "TutorialSoapBinding". Mengikat secara sederhana adalah maklumat yang digunakan oleh aplikasi pelanggan untuk benar-benar mengikat dirinya dengan perkhidmatan web. Setelah benar-benar terikat dengan perkhidmatan web, ia kemudian dapat memanggil berbagai operasi yang didedahkan oleh perkhidmatan web.
  2. Lapisan pengangkutan diberikan sebagai http: // yang bermaksud bahawa mesej yang akan dipindahkan melalui protokol HTTP.

Membuat Fail WSDL

Fail WSDL dibuat setiap kali perkhidmatan web dibina dalam bahasa pengaturcaraan apa pun.

Oleh kerana fail WSDL cukup rumit untuk dihasilkan dari awal biasa, semua editor seperti Visual Studio untuk .Net dan Eclipse untuk Java secara automatik membuat fail WSDL.

Berikut adalah contoh fail WSDL yang dibuat di Visual Studio.




TutorialService

Fail WSDL di atas kelihatan sangat menakutkan bagi mana-mana pengguna, kami akan membahas bahagian-bahagian yang berbeza secara terperinci dalam tutorial berikutnya, tetapi buat masa ini, mari kita lihat ringkasan tentang apa yang sebenarnya dilakukan oleh setiap bahagian fail WSDL

Menerbitkan Contoh Perkhidmatan Web

Sekarang mari kita lihat contoh bagaimana kita dapat menerbitkan perkhidmatan web dan menggunakannya dengan menggunakan Visual Studio.

Dalam contoh ini, kami akan membuat perkhidmatan web dengan satu Kaedah Web. Kaedah ini akan menerima parameter Integer yang disebut "TutorialID." Kaedah Web kemudian akan mengembalikan rentetan yang disebut "Perkhidmatan Web."

Kami kemudian akan membuat aplikasi berdasarkan konsol, yang akan menggunakan perkhidmatan web ini dan memanggil kaedah web kami dengan sewajarnya.

Mari kita lihat langkah-langkah yang diperlukan untuk melaksanakan contoh ini.

Langkah 1) Langkah pertama adalah membuat perkhidmatan web anda. Langkah terperinci bagaimana projek web dan perkhidmatan web Asp.Net dibuat telah dijelaskan di sini; Ikuti langkah yang sama untuk membuat projek dan perkhidmatan web dengan sewajarnya. Bahagian pentingnya adalah memasukkan kod di bawah dalam fail perkhidmatan Web.

namespace webservic asmx{[WebService(Name = "Guru99 Web service")]public class TutorialService : System.Web.Services.WebService{[WebMethod]public string GetTutorialService(int TutoriallD){string TutorialName = "Web Services";return TutorialName;}}}

Penjelasan Kod:

  1. Di sini kita membuat Kaedah Web yang disebut "Guru99WebService." Dalam kaedah web ini, kami memasukkan parameter integer yang harus diteruskan setiap kali kaedah web ini dipanggil.
  2. Seterusnya kita mendefinisikan pemboleh ubah yang disebut "TutorialName" yang akan menyimpan nilai rentetan "Perkhidmatan Web." Inilah nilai yang akan dikembalikan semasa perkhidmatan web dipanggil.

Langkah 2) Setelah kami menentukan fail perkhidmatan web, langkah seterusnya adalah membuat projek pelanggan yang akan menggunakan perkhidmatan web ini.

Mari buat aplikasi konsol mudah yang akan memanggil perkhidmatan web ini, memanggil "Guru99WebService" dan kemudian memaparkan output kaedah web di skrin log konsol. Ikuti langkah di bawah untuk membuat aplikasi konsol.

Klik kanan fail penyelesaian Visual Studio dan pilih pilihan Tambah-> Projek baru

Langkah 3) Dalam langkah ini,

  1. Pastikan untuk memilih pilihan Visual C # Windows terlebih dahulu. Kemudian pilih pilihan untuk membuat aplikasi konsol.
  2. Beri nama untuk projek anda yang dalam kes kami telah diberikan sebagai "DemoApplication."

Selepas anda mengklik butang OK di skrin di atas, anda akan dapat melihat projek tersebut di Solution explorer di Visual Studio.

Langkah 4) Pada langkah ini, anda akan menetapkan aplikasi DemoApplication Console sebagai projek permulaan. Ini dilakukan untuk memastikan bahawa aplikasi ini dilancarkan terlebih dahulu ketika keseluruhan projek Visual Studio dijalankan. Aplikasi Konsol ini, pada gilirannya, akan memanggil perkhidmatan web yang akan dilancarkan secara automatik oleh Visual Studio.

Untuk menyelesaikan langkah ini, klik kanan projek DemoApplication dan pilih pilihan "Tetapkan sebagai Projek StartUp."

Langkah 5) Langkah seterusnya adalah menambahkan rujukan perkhidmatan "Guru99Webservice" ke aplikasi konsol kami. Ini dilakukan supaya Aplikasi Demo dapat merujuk perkhidmatan web dan semua kaedah web dalam perkhidmatan web.

Untuk melakukan ini, klik kanan fail projek DemoApplication dan pilih pilihan menu Tambah-> Rujukan Perkhidmatan.

Langkah 6) Pada langkah ini, kami akan memberikan nilai yang berbeza yang diperlukan untuk menambahkan rujukan perkhidmatan kami

  1. Pertama, kita perlu memilih pilihan penemuan kita. Pilihan ini akan mengambil fail WSDL secara automatik untuk perkhidmatan web TutorialService kami.
  2. Seterusnya, kami harus memberikan nama untuk rujukan perkhidmatan kami. Dalam kes kami, kami memberikannya nama Guru99Webservice.
  3. Kemudian kita perlu memperluas pilihan TutorialService.asmx supaya kita dapat melihat kaedah 'GetTutorialService' di sebelah kanan. Di sini TutorialService.asmx adalah nama fail Visual Studio .Net kami yang mengandungi kod untuk perkhidmatan web kami.
  4. Kami kemudian akan melihat kaedah Web kami yang ada dalam perkhidmatan web kami yang dikenali sebagai "GetTutorialService"

Apabila kita mengklik butang 'OK', semua kod yang diperlukan untuk mengakses perkhidmatan web ini akan ditambahkan ke aplikasi DemoApplication Console seperti yang ditunjukkan di bawah.

Tangkapan skrin menunjukkan bahawa "Guru99Webservice" berjaya ditambahkan ke aplikasi konsol kami.

Langkah 7) Langkah seterusnya adalah menambahkan kod ke aplikasi konsol kami untuk mengakses kaedah web dalam perkhidmatan web kami. Buka fail kod Program.cs yang disertakan secara automatik dengan aplikasi konsol dan tambahkan kod di bawah

namespace DemoApplication{class Program{static void Main(string[ ] args){var client = new Guru99Webservice.Guru99WebserviceSoapClient();Console.WriteLine(client.GetTutorialService(l));Console.ReadKey();}}}

Penjelasan Kod: -

  1. Bahagian pertama adalah memilih fail Program.cs. Ini adalah fail utama yang dibuat oleh Visual Studio semasa aplikasi konsol dibuat. Fail ini adalah apa yang akan dilaksanakan ketika aplikasi konsol (dalam aplikasi demo kes kita) dijalankan.
  2. Kami kemudian membuat pemboleh ubah yang disebut "klien" yang akan ditetapkan ke contoh rujukan Perkhidmatan kami yang dibuat pada langkah sebelumnya. Dalam kes kami, rujukan perkhidmatan adalah 'Guru99Webservice.Guru99WebserviveSoapClient ()'
  3. Kami kemudian memanggil Metode Web kami 'GetTutorialService' dalam perkhidmatan web TutorialService Ingat bahawa kaedah GetTutorialService kami menerima parameter integer, jadi kami hanya meneruskan parameter integer ke kaedah web.
  4. Garis akhir ini hanya untuk memastikan skrin log konsol tetap aktif sehingga kita dapat melihat hasilnya. Perintah ini hanya akan menunggu sebilangan input dari pengguna.

Pengeluaran

Apabila semua langkah di atas diikuti, dan Aplikasi Demo dijalankan, output di bawah akan dipaparkan.

Dari hasilnya, kita dapat melihat dengan jelas bahawa Aplikasi Demo memanggil perkhidmatan Web kami dan rentetan yang dikembalikan oleh perkhidmatan Web dipaparkan di log Konsol kami.

Ringkasan

  • Bentuk penuh WSDL adalah Bahasa Penerangan Perkhidmatan Web
  • Dokumen WSDL adalah dokumen yang digunakan untuk menggambarkan perkhidmatan web. Ini adalah kunci bagi mana-mana aplikasi pelanggan untuk mengetahui di mana perkhidmatan web berada. Ini juga membolehkan aplikasi pelanggan memahami kaedah yang ada dalam perkhidmatan web.
  • Fail WSDL menjadikan perkhidmatan web sangat mudah dilaksanakan dalam satu bahasa pengaturcaraan dan dipanggil dari bahasa pengaturcaraan yang berbeza.
  • Dokumen WSDL biasanya terdiri daripada mesej. Untuk setiap kaedah web, ada 2 pesan, satu untuk input, dan yang lain untuk output. Bersama-sama mereka membentuk operasi.
  • Fail Bahasa Penerangan Perkhidmatan Web (singkatan dari WSDL) biasanya dibuat dalam editor yang digunakan untuk bahasa pengaturcaraan yang sesuai.
  • Kami telah melihat bagaimana kami dapat menggunakan perkhidmatan web di Visual Studio. Ini dapat dilakukan dengan membuat projek lain yang merupakan aplikasi konsol. Kemudian dengan menambahkan rujukan perkhidmatan, kita kemudian dapat mengakses kaedah web dalam perkhidmatan web kita.