บทช่วยสอน WSDL: บริการบนเว็บ Descriptภาษาไอออนพร้อมตัวอย่าง
WSDL คืออะไร?
บริการเว็บ Descriptภาษาไอออน (WSDL) เป็นไฟล์ที่ใช้ XML ซึ่งโดยพื้นฐานแล้วจะบอกแอปพลิเคชันไคลเอนต์ว่าบริการเว็บทำอะไร ไฟล์ WSDL ใช้เพื่ออธิบายโดยสรุปว่าบริการบนเว็บทำอะไร และให้ข้อมูลทั้งหมดที่จำเป็นแก่ลูกค้าในการเชื่อมต่อกับบริการเว็บ และใช้ฟังก์ชันทั้งหมดที่มีให้โดยบริการเว็บ
ในบทช่วยสอนนี้ เราจะเน้นไปที่จุดสุดท้ายซึ่งเป็นส่วนที่สำคัญที่สุดของบริการบนเว็บ และนั่นคือ WSDL หรือภาษาคำอธิบายบริการบนเว็บ
ไฟล์ WSDL ใช้เพื่ออธิบายโดยสรุปว่าบริการเว็บทำอะไร และให้ข้อมูลทั้งหมดที่จำเป็นแก่ลูกค้าในการเชื่อมต่อกับบริการเว็บ และใช้ฟังก์ชันทั้งหมดที่มีให้โดยบริการเว็บ
โครงสร้างของเอกสาร WSDL
เอกสาร WSDL ใช้เพื่ออธิบายบริการเว็บ จำเป็นต้องมีคำอธิบายนี้ เพื่อให้แอปพลิเคชันไคลเอนต์สามารถเข้าใจว่าบริการเว็บทำอะไรได้จริง
- ไฟล์ WSDL มีตำแหน่งของบริการเว็บและ
- วิธีการที่ถูกเปิดเผยโดยบริการเว็บ
ไฟล์ WSDL อาจดูซับซ้อนมากสำหรับผู้ใช้ แต่จริงๆ แล้วมีข้อมูลที่จำเป็นทั้งหมดที่แอปพลิเคชันไคลเอนต์ต้องการในการใช้บริการเว็บที่เกี่ยวข้อง
ด้านล่างนี้เป็นโครงสร้างทั่วไปของไฟล์ WSDL
- คำนิยาม
- Targetnamespace
- ประเภทข้อมูล
- Messages
- ประเภทพอร์ต
- ผูก
- บริการ
สิ่งสำคัญประการหนึ่งที่ควรทราบที่นี่คือคำจำกัดความของข้อความ ซึ่งเป็นสิ่งที่ถูกส่งผ่าน โปรโตคอลสบู่ ถูกกำหนดไว้จริงในเอกสาร WSDL
เอกสาร WSDL จะบอกแอปพลิเคชันไคลเอ็นต์ว่าข้อความ SOAP ประเภทใดบ้างที่บริการเว็บส่งและยอมรับ
กล่าวอีกนัยหนึ่ง WSDL ก็เหมือนกับโปสการ์ดที่มีที่อยู่ของสถานที่ใดสถานที่หนึ่ง ที่อยู่ดังกล่าวให้รายละเอียดของบุคคลที่ส่งโปสการ์ด ดังนั้น ในลักษณะเดียวกัน ไฟล์ WSDL ก็เป็นโปสการ์ดที่มีที่อยู่ของเว็บเซอร์วิสที่สามารถส่งมอบฟังก์ชันการทำงานทั้งหมดที่ไคลเอนต์ต้องการ
<!-- WSDL definition structure --> <definitions name="Guru99Service" targetNamespace=http://example.org/math/ xmlns=http://schemas.xmlsoap.org/wsdl/> <!-- abstract definitions --> <types> ... <message> ... <portType> ... <!-- concrete definitions --> <binding> ... <service> ... </definition>
ด้านล่างนี้เป็นแผนภาพโครงสร้างของไฟล์ WSDL
องค์ประกอบ WSDL
ไฟล์ WSDL ประกอบด้วยส่วนหลักดังต่อไปนี้
- เหตุการณ์ แท็กนี้ใช้เพื่อกำหนดประเภทข้อมูลที่ซับซ้อนทั้งหมด ซึ่งจะใช้ในข้อความที่แลกเปลี่ยนระหว่างแอปพลิเคชันไคลเอนต์และเว็บเซอร์วิส ซึ่งถือเป็นประเด็นสำคัญของแอปพลิเคชันไคลเอนต์ เนื่องจากหากเว็บเซอร์วิสทำงานกับประเภทข้อมูลที่ซับซ้อน แอปพลิเคชันไคลเอนต์ก็ควรทราบวิธีประมวลผลประเภทข้อมูลที่ซับซ้อนนั้น ประเภทข้อมูล เช่น float, numbers และ string ล้วนเป็นประเภทข้อมูลที่เรียบง่าย แต่ก็อาจมีประเภทข้อมูลที่มีโครงสร้างซึ่งจัดทำโดยเว็บเซอร์วิสก็ได้
ตัวอย่างเช่น อาจมีประเภทข้อมูลที่เรียกว่า EmployeeDataType ซึ่งอาจมีองค์ประกอบ 2 รายการที่เรียกว่า "EmployeeName" ของประเภทสตริงและ "EmployeeID" ของประเภทตัวเลขหรือจำนวนเต็ม เมื่อนำมารวมกันแล้ว ทั้งสององค์ประกอบจะสร้างโครงสร้างข้อมูลซึ่งจะกลายเป็นประเภทข้อมูลที่ซับซ้อน - เหตุการณ์ แท็กนี้ใช้เพื่อกำหนดข้อความที่แลกเปลี่ยนระหว่างแอปพลิเคชันไคลเอนต์และเว็บเซิร์ฟเวอร์ ข้อความเหล่านี้จะอธิบายการดำเนินการอินพุตและเอาต์พุตที่เว็บเซอร์วิสสามารถดำเนินการได้ ตัวอย่างของข้อความอาจเป็นข้อความที่ยอมรับรหัสพนักงานของพนักงาน และข้อความเอาต์พุตอาจเป็นชื่อของพนักงานตามรหัสพนักงานที่ให้มา
- เหตุการณ์ แท็กนี้ใช้เพื่อห่อหุ้มข้อความอินพุตและเอาต์พุตทั้งหมดเป็นการดำเนินการเชิงตรรกะหนึ่งเดียว ดังนั้นอาจมีการดำเนินการที่เรียกว่า "GetEmployee" ซึ่งรวมข้อความอินพุตของการยอมรับ EmployeeID จากแอปพลิเคชันไคลเอนต์แล้วส่ง EmployeeName เป็นข้อความเอาต์พุต
- เหตุการณ์ แท็กนี้ใช้เพื่อผูกการทำงานกับประเภทพอร์ตเฉพาะ เพื่อให้เมื่อแอปพลิเคชันไคลเอนต์เรียกใช้ประเภทพอร์ตที่เกี่ยวข้อง ก็จะสามารถเข้าถึงการทำงานที่ผูกกับประเภทพอร์ตนี้ได้ ประเภทพอร์ตก็เหมือนกับอินเทอร์เฟซ ดังนั้น หากแอปพลิเคชันไคลเอนต์ต้องการใช้บริการเว็บ ก็จะต้องใช้ข้อมูลการผูกเพื่อให้แน่ใจว่าสามารถเชื่อมต่อกับอินเทอร์เฟซที่บริการเว็บนั้นจัดเตรียมไว้ได้
- เหตุการณ์ tag คือชื่อที่กำหนดให้กับบริการบนเว็บ ในตอนแรก เมื่อแอปพลิเคชันไคลเอ็นต์ทำการเรียกไปยังบริการบนเว็บ จะดำเนินการโดยการเรียกชื่อของบริการบนเว็บ ตัวอย่างเช่น บริการเว็บสามารถระบุที่อยู่เช่น http://localhost/Guru99/Tutorial.asmx - แท็กบริการจะมี URL ที่กำหนดเป็น http://localhost/Guru99/Tutorial.asmxซึ่งจริงๆ แล้วจะบอกแอปพลิเคชันไคลเอนต์ว่ามีบริการเว็บที่ตำแหน่งนี้
ทำไมต้อง WSDL
บริการเว็บเป็นองค์ประกอบสำคัญในการสร้างเว็บแอปพลิเคชันสมัยใหม่ วัตถุประสงค์หลักของพวกเขาคือการอนุญาตให้หลายแอปพลิเคชันที่สร้างขึ้นจากภาษาการเขียนโปรแกรมที่หลากหลายสามารถพูดคุยกันได้ ตัวอย่างเช่น เราสามารถให้แอปพลิเคชันเว็บ .Net พูดคุยกับ Java แอปพลิเคชันผ่านบริการบนเว็บ
บริการเว็บมีคุณลักษณะสำคัญดังต่อไปนี้
- มันถูกสร้างขึ้นโดยใช้ภาษาการเขียนโปรแกรม XML เทคโนโลยีสมัยใหม่เกือบทั้งหมด เช่น .Net และ Java มีคำสั่งที่เกี่ยวข้องซึ่งมีความสามารถในการทำงานกับ XML ดังนั้น XML จึงถูกใช้เป็นภาษาที่เหมาะสมที่สุดสำหรับการสร้างบริการเว็บ
- บริการเว็บสื่อสารผ่าน HTTP HTTP เป็นโปรโตคอลที่ใช้โดยแอปพลิเคชันบนเว็บทั้งหมด ดังนั้นจึงสมเหตุสมผลที่จะให้แน่ใจว่าบริการบนเว็บสามารถทำงานผ่านโปรโตคอล HTTP ได้เช่นกัน
- บริการเว็บสอดคล้องกับข้อกำหนดภาษาเฉพาะ ข้อกำหนดนี้กำหนดโดย W3C ซึ่งเป็นหน่วยงานกำกับดูแลมาตรฐานเว็บทั้งหมด
- บริการบนเว็บมีภาษาคำอธิบายที่เรียกว่า WSDL ซึ่งใช้เพื่ออธิบายบริการเว็บ
ไฟล์ WSDL เขียนด้วย XML เก่าธรรมดา สาเหตุที่เป็นไฟล์ XML ก็เพราะว่าภาษาโปรแกรมใดๆ ก็สามารถอ่านไฟล์ได้
ดังนั้นหากแอปพลิเคชันไคลเอนต์เขียนด้วย .Net ก็จะเข้าใจไฟล์ XML ในทำนองเดียวกันหากแอปพลิเคชันไคลเอนต์ถูกเขียนในรูปแบบ Java ภาษาการเขียนโปรแกรมก็สามารถตีความไฟล์ WSDL ได้
ไฟล์ WSDL คือสิ่งที่เชื่อมโยงทุกอย่างเข้าด้วยกัน จากแผนภาพด้านบน คุณจะเห็นว่าคุณสามารถสร้างบริการเว็บในภาษา .Net ได้
นี่คือจุดที่ใช้บริการ หากคุณไม่มีไฟล์ WSDL และต้องการไฟล์ Java หากต้องการใช้บริการเว็บ คุณจะต้องใช้ความพยายามในการเขียนโค้ดอย่างมากเพื่อให้บรรลุเป้าหมายนี้
แต่ขณะนี้ด้วยไฟล์ WSDL ซึ่งอยู่ในรูปแบบ XML ซึ่งสามารถเข้าใจได้ด้วยภาษาโปรแกรมใดๆ ก็ตาม คุณจึงสามารถมี Java คลาสใช้บริการเว็บ .Net ดังนั้นปริมาณความพยายามในการเขียนโค้ดจึงลดลงอย่างมาก
ส่วนข้อความ WSDL
WSDL ประกอบด้วยส่วนที่เรียกว่า “ข้อความ” ซึ่งแสดงโดย ธาตุ.
โดยทั่วไปองค์ประกอบนี้ใช้เพื่ออธิบายข้อมูลที่ได้รับการแลกเปลี่ยนระหว่างบริการเว็บและแอปพลิเคชันไคลเอนต์
แต่ละบริการของเว็บจะมีข้อความ 2 ประเภทเสมอ
- หนึ่งคือสำหรับการป้อนข้อมูลของบริการเว็บ และอีกอันหนึ่งสำหรับผลลัพธ์ของบริการบนเว็บ
- อินพุตใช้เพื่ออธิบายพารามิเตอร์ที่บริการเว็บยอมรับ นี่เป็นส่วนสำคัญของแอปพลิเคชันไคลเอนต์เพื่อที่จะทราบค่าที่จะส่งเป็นพารามิเตอร์ไปยังบริการเว็บ
- ข้อความประเภทอื่นคือข้อความเอาท์พุตที่บอกว่าบริการเว็บให้ผลลัพธ์อะไรบ้าง
แต่ละข้อความก็จะมี องค์ประกอบที่ใช้อธิบายพารามิเตอร์ที่ใช้โดยข้อความอินพุตและเอาต์พุต
ด้านล่างนี้คือตัวอย่างง่ายๆ ของข้อความสำหรับบริการบนเว็บ ฟังก์ชันการทำงานของบริการเว็บคือการระบุชื่อของ "บทช่วยสอน" เมื่อส่ง "รหัสบทช่วยสอน" เป็นพารามิเตอร์ไปยังบริการเว็บ
- ดังที่เราเห็นได้ว่าบริการบนเว็บมี 2 ข้อความ ข้อความหนึ่งสำหรับอินพุตและอีกข้อความหนึ่งสำหรับเอาต์พุต
- ข้อความอินพุตเรียกว่า TutorialNameRequest ซึ่งมีพารามิเตอร์หนึ่งตัวที่เรียกว่า TutorialID พารามิเตอร์นี้เป็นหมายเลขประเภทซึ่งระบุโดยประเภท xsd:number
- ข้อความเอาต์พุตเรียกว่า TutorialNameResponse ซึ่งมีพารามิเตอร์หนึ่งตัวที่เรียกว่า TutorialName พารามิเตอร์นี้เป็นประเภทสตริงซึ่งระบุโดยประเภท xsd:string
การผูกประเภทพอร์ต
พอร์ตใช้ใน WSDL เพื่อกำหนดการดำเนินการสมบูรณ์หนึ่งอย่างซึ่งนำเสนอโดยบริการเว็บ
ในหัวข้อก่อนหน้านี้ เราได้เห็นว่าเว็บเซอร์วิสของเรามีข้อความ 2 ข้อความ ข้อความหนึ่งสำหรับอินพุตที่เรียกว่า "TutorialNameRequest" และอีกข้อความสำหรับเอาท์พุตที่เรียกว่า "TutorialNameResponse" เมื่อนำฟอร์มข้อความอินพุตและเอาท์พุตมารวมกันจะเรียกว่าการดำเนินการสมบูรณ์ครั้งเดียว
WSDL ให้องค์ประกอบที่เรียกว่า ซึ่งใช้ในการกำหนดการดำเนินการต่างๆ ที่ให้บริการโดยเว็บเซอร์วิส
ดังนั้นในตัวอย่างข้างต้นเราสามารถสังเกตได้ดังต่อไปนี้:
- ชื่อของประเภทพอร์ตที่รวมการทำงานไว้จะถูกระบุไว้เป็น “Tutorial_PortType”
- การดำเนินการนี้ได้รับชื่อว่า “บทช่วยสอน” ดังนั้นการดำเนินการของเราจึงให้ชื่อบทช่วยสอนโดยพื้นฐานแล้ว หากมีการระบุ TutorialID เป็นพารามิเตอร์อินพุต
- ถัดไปคือข้อความ 2 ข้อความของเรา ข้อความหนึ่งสำหรับอินพุต และอีกข้อความสำหรับเอาท์พุต ซึ่งประกอบเป็นการดำเนินการของเรา
นอกจากนี้ยังมี องค์ประกอบก็ยังมี องค์ประกอบที่ใช้ในการกำหนดวิธีการถ่ายโอนข้อความ
- ตัวอย่างข้างต้นแสดงให้เห็นว่าการผูกมัดประกอบด้วยชื่อการผูกมัดซึ่งในกรณีของเราเรียกว่า “TutorialSoapBinding” การผูกมัดในแง่ง่ายๆ คือข้อมูลที่แอปพลิเคชันไคลเอนต์ใช้ในการผูกมัดตัวเองกับเว็บเซอร์วิส เมื่อผูกมัดกับเว็บเซอร์วิสแล้ว แอปพลิเคชันจะสามารถเรียกใช้การดำเนินการต่างๆ ที่เว็บเซอร์วิสเปิดเผยได้
- เลเยอร์การขนส่งจะได้รับเป็น http:// ซึ่งหมายความว่าข้อความที่จะถ่ายโอนผ่านโปรโตคอล HTTP
การสร้างไฟล์ WSDL
ไฟล์ WSDL จะถูกสร้างขึ้นทุกครั้งที่มีการสร้างบริการเว็บในภาษาการเขียนโปรแกรมใดๆ
เนื่องจากไฟล์ WSDL ค่อนข้างซับซ้อนเกินกว่าจะสร้างขึ้นมาใหม่ได้ โปรแกรมแก้ไขทั้งหมด เช่น Visual Studio สำหรับ .Net และ Eclipse เป็นเวลา Java สร้างไฟล์ WSDL โดยอัตโนมัติ
ด้านล่างนี้เป็นตัวอย่างไฟล์ WSDL ที่สร้างขึ้นใน Visual Studio
<?xml version="1.0"?> <definitions name="Tutorial" targetNamespace=http://Guru99.com/Tutorial.wsdl xmlns:tns=http://Guru99.com/Tutorial.wsdl xmlns:xsd1=http://Guru99.com/Tutorial.xsd xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/ xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <schema targetNamespace=http://Guru99.com/Tutorial.xsd xmlns="http://www.w3.org/2000/10/XMLSchema"> <element name="TutorialNameRequest"> <complexType> <all> <element name="TutorialName" type="string"/> </all> </complexType> </element> <element name="TutorialIDRequest"> <complexType> <all> <element name="TutorialID" type="number"/> </all> </complexType> </element> </schema> </types> <message name="GetTutorialNameInput"> <part name="body" element="xsd1:TutorialIDRequest"/> </message> <message name="GetTutorialNameOutput"> <part name="body" element="xsd1:TutorialNameRequest"/> </message> <portType name="TutorialPortType"> <operation name="GetTutorialName"> <input message="tns:GetTutorialNameInput"/> <output message="tns:GetTutorialNameOutput"/> </operation> </portType> <binding name="TutorialSoapBinding" type="tns:TutorialPortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetTutorialName"> <soap:operation soapAction="http://Guru99.com/GetTutorialName"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="TutorialService"> <documentation>TutorialService</documentation> <port name="TutorialPort" binding="tns:TutorialSoapBinding"> <soap:address location="http://Guru99.com/Tutorial"/> </port> </service> </definitions>
ไฟล์ WSDL ข้างต้นดูน่ากลัวมากสำหรับผู้ใช้ เราจะกล่าวถึงรายละเอียดส่วนต่างๆ ในบทช่วยสอนต่อๆ ไป แต่สำหรับตอนนี้ เรามาดูสรุปกันว่าแต่ละส่วนของไฟล์ WSDL ทำหน้าที่อะไรจริง ๆ
การเผยแพร่ตัวอย่างบริการเว็บ
ตอนนี้เรามาดูตัวอย่างว่าเราสามารถเผยแพร่เว็บเซอร์วิสและใช้งานมันโดยใช้ Visual Studio ได้อย่างไร
ในตัวอย่างนี้ เราจะสร้างบริการเว็บด้วย WebMethod เดียว วิธีนี้จะยอมรับพารามิเตอร์จำนวนเต็มที่เรียกว่า "TutorialID" วิธีการเว็บจะส่งกลับสตริงที่เรียกว่า "บริการเว็บ"
จากนั้นเราจะสร้างแอปพลิเคชันที่ใช้คอนโซลซึ่งจะใช้บริการเว็บนี้และเรียกวิธีการเว็บของเราตามนั้น
มาดูขั้นตอนที่จำเป็นในการดำเนินการตามตัวอย่างนี้
ขั้นตอน 1) ขั้นตอนแรกคือการสร้างบริการเว็บของคุณ ขั้นตอนโดยละเอียดของวิธีการ Asp.Net มีการอธิบายโครงการเว็บและบริการเว็บแล้ว ที่นี่; โปรดทำตามขั้นตอนเดียวกันเพื่อสร้างโครงการและบริการเว็บตามลำดับ ส่วนสำคัญคือการป้อนโค้ดด้านล่างในไฟล์บริการบนเว็บ
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; } } }
คำอธิบายรหัส:
- ที่นี่เรากำลังสร้าง WebMethod ที่เรียกว่า "Guru99WebService" ในวิธีการเว็บนี้ เราจะรวมพารามิเตอร์จำนวนเต็มซึ่งจะต้องส่งทุกครั้งที่เรียกใช้วิธีการเว็บนี้
- ต่อไป เราจะกำหนดตัวแปรที่เรียกว่า “TutorialName” ซึ่งจะเก็บค่าสตริงของ “Web Services” นี่คือค่าที่จะถูกส่งกลับเมื่อมีการเรียกใช้บริการเว็บ
ขั้นตอน 2) เมื่อเรากำหนดไฟล์บริการเว็บแล้ว ขั้นตอนต่อไปคือการสร้างโครงการไคลเอนต์ซึ่งจะใช้บริการเว็บนี้
มาสร้างแอปพลิเคชันคอนโซลแบบง่ายซึ่งจะเรียกบริการเว็บนี้ เรียกใช้ "Guru99WebService" จากนั้นแสดงผลลัพธ์ของวิธีเว็บในหน้าจอบันทึกคอนโซล ทำตามขั้นตอนด้านล่างเพื่อสร้างแอปพลิเคชันคอนโซล
คลิกขวาที่ไฟล์โซลูชัน Visual Studio และเลือกตัวเลือก เพิ่ม-> โปรเจ็กต์ใหม่
ขั้นตอนที่ 3) ในขั้นตอนนี้
- ตรวจสอบให้แน่ใจว่าได้เลือก Visual ก่อน C# Windows ตัวเลือก. จากนั้นเลือกตัวเลือกในการสร้างแอปพลิเคชันคอนโซล
- ตั้งชื่อโครงการของคุณซึ่งในกรณีของเราเรียกว่า "DemoApplication"
หลังจากคุณคลิกปุ่มตกลงในหน้าจอข้างต้น คุณจะสามารถดูโครงการใน Solution Explorer ใน Visual Studio ได้
ขั้นตอน 4) ในขั้นตอนนี้ คุณจะต้องตั้งค่าแอปพลิเคชัน DemoApplication Console เป็นโปรเจ็กต์เริ่มต้น ซึ่งทำขึ้นเพื่อให้แน่ใจว่าแอปพลิเคชันนี้จะเปิดใช้งานก่อนเมื่อรันโปรเจ็กต์ Visual Studio ทั้งหมด แอปพลิเคชันคอนโซลนี้จะเรียกใช้บริการเว็บซึ่งจะถูกเปิดใช้งานโดย Visual Studio โดยอัตโนมัติ
เพื่อทำตามขั้นตอนนี้ให้คลิกขวาที่โครงการ DemoApplication และเลือกตัวเลือก “Set as StartUp Project”
ขั้นตอน 5) ขั้นตอนต่อไปคือการเพิ่มการอ้างอิงบริการของ “Guru99Webservice” ของเราไปยังแอปพลิเคชันคอนโซลของเรา การทำเช่นนี้เพื่อให้ DemoApplication สามารถอ้างอิงบริการบนเว็บและวิธีการเว็บทั้งหมดในบริการเว็บได้
ในการดำเนินการนี้ ให้คลิกขวาที่ไฟล์โครงการ DemoApplication และเลือกตัวเลือกเมนู เพิ่ม -> การอ้างอิงบริการ
ขั้นตอน 6) ในขั้นตอนนี้ เราจะระบุค่าต่างๆ ที่จำเป็นในการเพิ่มการอ้างอิงบริการของเรา
- ก่อนอื่นเราต้องเลือกตัวเลือกการค้นพบของเรา ตัวเลือกนี้จะรับไฟล์ WSDL สำหรับบริการเว็บ TutorialService ของเราโดยอัตโนมัติ
- ต่อไป เราควรตั้งชื่อสำหรับการอ้างอิงบริการของเรา ในกรณีของเรา เราจะตั้งชื่อให้ว่า Guru99Webservice
- จากนั้นเราต้องขยายตัวเลือก TutorialService.asmx เพื่อให้เราสามารถดูเมธอด 'GetTutorialService' ทางด้านขวาได้ ที่นี่ TutorialService.asmx คือชื่อไฟล์ Visual Studio .Net ของเราซึ่งมีโค้ดสำหรับเว็บเซอร์วิสของเรา
- จากนั้นเราจะเห็นวิธีการเว็บของเราซึ่งเรามีในบริการเว็บของเราที่เรียกว่า "GetTutorialService"
เมื่อเราคลิกที่ปุ่ม 'ตกลง' รหัสที่จำเป็นทั้งหมดเพื่อเข้าถึงบริการเว็บนี้จะถูกเพิ่มลงในแอปพลิเคชัน DemoApplication Console ของเราดังที่แสดงด้านล่าง
ภาพหน้าจอแสดงให้เห็นว่าเพิ่ม “Guru99Webservice” ลงในแอปพลิเคชันคอนโซลของเราสำเร็จแล้ว
ขั้นตอน 7) ขั้นตอนต่อไปคือการเพิ่มโค้ดลงในแอปพลิเคชันคอนโซลของเราเพื่อเข้าถึงวิธีการทางเว็บในบริการเว็บของเรา เปิดไฟล์โค้ด Program.cs ที่มาพร้อมกับแอปพลิเคชันคอนโซลโดยอัตโนมัติและเพิ่มโค้ดด้านล่าง
namespace DemoApplication { class Program { static void Main(string[ ] args) { var client = new Guru99Webservice.Guru99WebserviceSoapClient(); Console.WriteLine(client.GetTutorialService(l)); Console.ReadKey(); } } }
คำอธิบายรหัส:-
- ส่วนแรกคือการเลือกไฟล์ Program.cs ซึ่งเป็นไฟล์หลักที่สร้างโดย Visual Studio เมื่อสร้างแอปพลิเคชันคอนโซล ไฟล์นี้จะถูกเรียกใช้เมื่อเรียกใช้แอปพลิเคชันคอนโซล (ในกรณีของเราคือแอปพลิเคชันสาธิต)
- จากนั้นเราจะสร้างตัวแปรชื่อ “ไคลเอนต์” ซึ่งจะถูกตั้งค่าเป็นอินสแตนซ์ของการอ้างอิงบริการของเราซึ่งสร้างขึ้นในขั้นตอนก่อนหน้า ในกรณีของเรา การอ้างอิงบริการคือ 'Guru99Webservice.Guru99WebserviveSoapClient()'
- จากนั้นเราจะเรียก Webmethod ของเราว่า 'GetTutorialService' ในบริการเว็บ TutorialService โปรดจำไว้ว่าเมธอด GetTutorialService' ของเรายอมรับพารามิเตอร์จำนวนเต็ม ดังนั้นเราจึงส่งพารามิเตอร์จำนวนเต็มไปยังวิธีการของเว็บ
- บรรทัดสุดท้ายนี้มีไว้เพื่อให้แน่ใจว่าหน้าจอบันทึกของคอนโซลยังคงทำงานอยู่ เพื่อให้เราสามารถดูผลลัพธ์ได้ คำสั่งนี้จะรอการป้อนข้อมูลบางส่วนจากผู้ใช้
เอาท์พุต
เมื่อทำตามขั้นตอนทั้งหมดข้างต้นแล้ว และรัน DemoApplication ผลลัพธ์ด้านล่างจะปรากฏขึ้น
จากเอาต์พุต เราจะเห็นได้ชัดเจนว่า DemoApplication เรียกใช้บริการเว็บของเรา และสตริงที่ส่งคืนโดยบริการเว็บจะแสดงอยู่ในบันทึกคอนโซลของเรา
สรุป
- WSDL รูปแบบเต็มคือบริการทางเว็บ Descriptภาษาไอออน
- เอกสาร WSDL คือเอกสารที่ใช้อธิบายบริการเว็บ นี่เป็นกุญแจสำคัญสำหรับแอปพลิเคชันไคลเอ็นต์ในการทราบว่าบริการเว็บอยู่ที่ใด นอกจากนี้ยังช่วยให้แอปพลิเคชันไคลเอนต์เข้าใจวิธีการที่มีอยู่ในบริการเว็บ
- ไฟล์ WSDL ช่วยให้บริการเว็บใช้งานได้ง่ายมากในภาษาโปรแกรมเดียวและเรียกจากภาษาโปรแกรมอื่น
- เอกสาร WSDL โดยทั่วไปประกอบด้วยข้อความ สำหรับวิธีการบนเว็บแต่ละวิธีจะมีข้อความ 2 ข้อความ ข้อความหนึ่งสำหรับอินพุต และอีกข้อความสำหรับเอาท์พุต เมื่อนำมารวมกันแล้วจะกลายเป็นการดำเนินการ
- บริการเว็บ Descriptโดยปกติไฟล์ ion Language (ย่อมาจาก WSDL) จะถูกสร้างขึ้นในตัวแก้ไขซึ่งใช้สำหรับภาษาการเขียนโปรแกรมที่เกี่ยวข้อง
- เราได้เห็นแล้วว่าเราสามารถใช้บริการเว็บใน Visual Studio ได้อย่างไร ซึ่งสามารถทำได้โดยการสร้างโปรเจ็กต์อื่นซึ่งเป็นแอปพลิเคชันคอนโซล จากนั้นโดยการเพิ่มการอ้างอิงบริการ เราจึงสามารถเข้าถึงวิธีการทางเว็บในบริการเว็บของเราได้