บทช่วยสอน 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

องค์ประกอบ WSDL

ไฟล์ WSDL ประกอบด้วยส่วนหลักดังต่อไปนี้

  1. เหตุการณ์ แท็กนี้ใช้เพื่อกำหนดประเภทข้อมูลที่ซับซ้อนทั้งหมด ซึ่งจะใช้ในข้อความที่แลกเปลี่ยนระหว่างแอปพลิเคชันไคลเอนต์และเว็บเซอร์วิส ซึ่งถือเป็นประเด็นสำคัญของแอปพลิเคชันไคลเอนต์ เนื่องจากหากเว็บเซอร์วิสทำงานกับประเภทข้อมูลที่ซับซ้อน แอปพลิเคชันไคลเอนต์ก็ควรทราบวิธีประมวลผลประเภทข้อมูลที่ซับซ้อนนั้น ประเภทข้อมูล เช่น float, numbers และ string ล้วนเป็นประเภทข้อมูลที่เรียบง่าย แต่ก็อาจมีประเภทข้อมูลที่มีโครงสร้างซึ่งจัดทำโดยเว็บเซอร์วิสก็ได้
    ตัวอย่างเช่น อาจมีประเภทข้อมูลที่เรียกว่า EmployeeDataType ซึ่งอาจมีองค์ประกอบ 2 รายการที่เรียกว่า "EmployeeName" ของประเภทสตริงและ "EmployeeID" ของประเภทตัวเลขหรือจำนวนเต็ม เมื่อนำมารวมกันแล้ว ทั้งสององค์ประกอบจะสร้างโครงสร้างข้อมูลซึ่งจะกลายเป็นประเภทข้อมูลที่ซับซ้อน
  2. เหตุการณ์ แท็กนี้ใช้เพื่อกำหนดข้อความที่แลกเปลี่ยนระหว่างแอปพลิเคชันไคลเอนต์และเว็บเซิร์ฟเวอร์ ข้อความเหล่านี้จะอธิบายการดำเนินการอินพุตและเอาต์พุตที่เว็บเซอร์วิสสามารถดำเนินการได้ ตัวอย่างของข้อความอาจเป็นข้อความที่ยอมรับรหัสพนักงานของพนักงาน และข้อความเอาต์พุตอาจเป็นชื่อของพนักงานตามรหัสพนักงานที่ให้มา
  3. เหตุการณ์ แท็กนี้ใช้เพื่อห่อหุ้มข้อความอินพุตและเอาต์พุตทั้งหมดเป็นการดำเนินการเชิงตรรกะหนึ่งเดียว ดังนั้นอาจมีการดำเนินการที่เรียกว่า "GetEmployee" ซึ่งรวมข้อความอินพุตของการยอมรับ EmployeeID จากแอปพลิเคชันไคลเอนต์แล้วส่ง EmployeeName เป็นข้อความเอาต์พุต
  4. เหตุการณ์ แท็กนี้ใช้เพื่อผูกการทำงานกับประเภทพอร์ตเฉพาะ เพื่อให้เมื่อแอปพลิเคชันไคลเอนต์เรียกใช้ประเภทพอร์ตที่เกี่ยวข้อง ก็จะสามารถเข้าถึงการทำงานที่ผูกกับประเภทพอร์ตนี้ได้ ประเภทพอร์ตก็เหมือนกับอินเทอร์เฟซ ดังนั้น หากแอปพลิเคชันไคลเอนต์ต้องการใช้บริการเว็บ ก็จะต้องใช้ข้อมูลการผูกเพื่อให้แน่ใจว่าสามารถเชื่อมต่อกับอินเทอร์เฟซที่บริการเว็บนั้นจัดเตรียมไว้ได้
  5. เหตุการณ์ 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

ไฟล์ WSDL คือสิ่งที่เชื่อมโยงทุกอย่างเข้าด้วยกัน จากแผนภาพด้านบน คุณจะเห็นว่าคุณสามารถสร้างบริการเว็บในภาษา .Net ได้

นี่คือจุดที่ใช้บริการ หากคุณไม่มีไฟล์ WSDL และต้องการไฟล์ Java หากต้องการใช้บริการเว็บ คุณจะต้องใช้ความพยายามในการเขียนโค้ดอย่างมากเพื่อให้บรรลุเป้าหมายนี้

แต่ขณะนี้ด้วยไฟล์ WSDL ซึ่งอยู่ในรูปแบบ XML ซึ่งสามารถเข้าใจได้ด้วยภาษาโปรแกรมใดๆ ก็ตาม คุณจึงสามารถมี Java คลาสใช้บริการเว็บ .Net ดังนั้นปริมาณความพยายามในการเขียนโค้ดจึงลดลงอย่างมาก

ส่วนข้อความ WSDL

WSDL ประกอบด้วยส่วนที่เรียกว่า “ข้อความ” ซึ่งแสดงโดย ธาตุ.

โดยทั่วไปองค์ประกอบนี้ใช้เพื่ออธิบายข้อมูลที่ได้รับการแลกเปลี่ยนระหว่างบริการเว็บและแอปพลิเคชันไคลเอนต์

แต่ละบริการของเว็บจะมีข้อความ 2 ประเภทเสมอ

  • หนึ่งคือสำหรับการป้อนข้อมูลของบริการเว็บ และอีกอันหนึ่งสำหรับผลลัพธ์ของบริการบนเว็บ
  • อินพุตใช้เพื่ออธิบายพารามิเตอร์ที่บริการเว็บยอมรับ นี่เป็นส่วนสำคัญของแอปพลิเคชันไคลเอนต์เพื่อที่จะทราบค่าที่จะส่งเป็นพารามิเตอร์ไปยังบริการเว็บ
  • ข้อความประเภทอื่นคือข้อความเอาท์พุตที่บอกว่าบริการเว็บให้ผลลัพธ์อะไรบ้าง

แต่ละข้อความก็จะมี องค์ประกอบที่ใช้อธิบายพารามิเตอร์ที่ใช้โดยข้อความอินพุตและเอาต์พุต

ด้านล่างนี้คือตัวอย่างง่ายๆ ของข้อความสำหรับบริการบนเว็บ ฟังก์ชันการทำงานของบริการเว็บคือการระบุชื่อของ "บทช่วยสอน" เมื่อส่ง "รหัสบทช่วยสอน" เป็นพารามิเตอร์ไปยังบริการเว็บ

ส่วนข้อความ WSDL

  1. ดังที่เราเห็นได้ว่าบริการบนเว็บมี 2 ข้อความ ข้อความหนึ่งสำหรับอินพุตและอีกข้อความหนึ่งสำหรับเอาต์พุต
  2. ข้อความอินพุตเรียกว่า TutorialNameRequest ซึ่งมีพารามิเตอร์หนึ่งตัวที่เรียกว่า TutorialID พารามิเตอร์นี้เป็นหมายเลขประเภทซึ่งระบุโดยประเภท xsd:number
  3. ข้อความเอาต์พุตเรียกว่า TutorialNameResponse ซึ่งมีพารามิเตอร์หนึ่งตัวที่เรียกว่า TutorialName พารามิเตอร์นี้เป็นประเภทสตริงซึ่งระบุโดยประเภท xsd:string

การผูกประเภทพอร์ต

พอร์ตใช้ใน WSDL เพื่อกำหนดการดำเนินการสมบูรณ์หนึ่งอย่างซึ่งนำเสนอโดยบริการเว็บ

ในหัวข้อก่อนหน้านี้ เราได้เห็นว่าเว็บเซอร์วิสของเรามีข้อความ 2 ข้อความ ข้อความหนึ่งสำหรับอินพุตที่เรียกว่า "TutorialNameRequest" และอีกข้อความสำหรับเอาท์พุตที่เรียกว่า "TutorialNameResponse" เมื่อนำฟอร์มข้อความอินพุตและเอาท์พุตมารวมกันจะเรียกว่าการดำเนินการสมบูรณ์ครั้งเดียว

WSDL ให้องค์ประกอบที่เรียกว่า ซึ่งใช้ในการกำหนดการดำเนินการต่างๆ ที่ให้บริการโดยเว็บเซอร์วิส

การผูกประเภทพอร์ต

ดังนั้นในตัวอย่างข้างต้นเราสามารถสังเกตได้ดังต่อไปนี้:

  1. ชื่อของประเภทพอร์ตที่รวมการทำงานไว้จะถูกระบุไว้เป็น “Tutorial_PortType”
  2. การดำเนินการนี้ได้รับชื่อว่า “บทช่วยสอน” ดังนั้นการดำเนินการของเราจึงให้ชื่อบทช่วยสอนโดยพื้นฐานแล้ว หากมีการระบุ TutorialID เป็นพารามิเตอร์อินพุต
  3. ถัดไปคือข้อความ 2 ข้อความของเรา ข้อความหนึ่งสำหรับอินพุต และอีกข้อความสำหรับเอาท์พุต ซึ่งประกอบเป็นการดำเนินการของเรา

นอกจากนี้ยังมี องค์ประกอบก็ยังมี องค์ประกอบที่ใช้ในการกำหนดวิธีการถ่ายโอนข้อความ

การผูกประเภทพอร์ต

  1. ตัวอย่างข้างต้นแสดงให้เห็นว่าการผูกมัดประกอบด้วยชื่อการผูกมัดซึ่งในกรณีของเราเรียกว่า “TutorialSoapBinding” การผูกมัดในแง่ง่ายๆ คือข้อมูลที่แอปพลิเคชันไคลเอนต์ใช้ในการผูกมัดตัวเองกับเว็บเซอร์วิส เมื่อผูกมัดกับเว็บเซอร์วิสแล้ว แอปพลิเคชันจะสามารถเรียกใช้การดำเนินการต่างๆ ที่เว็บเซอร์วิสเปิดเผยได้
  2. เลเยอร์การขนส่งจะได้รับเป็น 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;
		}
	}
}

คำอธิบายรหัส:

  1. ที่นี่เรากำลังสร้าง WebMethod ที่เรียกว่า "Guru99WebService" ในวิธีการเว็บนี้ เราจะรวมพารามิเตอร์จำนวนเต็มซึ่งจะต้องส่งทุกครั้งที่เรียกใช้วิธีการเว็บนี้
  2. ต่อไป เราจะกำหนดตัวแปรที่เรียกว่า “TutorialName” ซึ่งจะเก็บค่าสตริงของ “Web Services” นี่คือค่าที่จะถูกส่งกลับเมื่อมีการเรียกใช้บริการเว็บ

ขั้นตอน 2) เมื่อเรากำหนดไฟล์บริการเว็บแล้ว ขั้นตอนต่อไปคือการสร้างโครงการไคลเอนต์ซึ่งจะใช้บริการเว็บนี้

มาสร้างแอปพลิเคชันคอนโซลแบบง่ายซึ่งจะเรียกบริการเว็บนี้ เรียกใช้ "Guru99WebService" จากนั้นแสดงผลลัพธ์ของวิธีเว็บในหน้าจอบันทึกคอนโซล ทำตามขั้นตอนด้านล่างเพื่อสร้างแอปพลิเคชันคอนโซล

คลิกขวาที่ไฟล์โซลูชัน Visual Studio และเลือกตัวเลือก เพิ่ม-> โปรเจ็กต์ใหม่

การเผยแพร่ตัวอย่างบริการเว็บ

ขั้นตอนที่ 3) ในขั้นตอนนี้

  1. ตรวจสอบให้แน่ใจว่าได้เลือก Visual ก่อน C# Windows ตัวเลือก. จากนั้นเลือกตัวเลือกในการสร้างแอปพลิเคชันคอนโซล
  2. ตั้งชื่อโครงการของคุณซึ่งในกรณีของเราเรียกว่า "DemoApplication"

การเผยแพร่ตัวอย่างบริการเว็บ

หลังจากคุณคลิกปุ่มตกลงในหน้าจอข้างต้น คุณจะสามารถดูโครงการใน Solution Explorer ใน Visual Studio ได้

การเผยแพร่ตัวอย่างบริการเว็บ

ขั้นตอน 4) ในขั้นตอนนี้ คุณจะต้องตั้งค่าแอปพลิเคชัน DemoApplication Console เป็นโปรเจ็กต์เริ่มต้น ซึ่งทำขึ้นเพื่อให้แน่ใจว่าแอปพลิเคชันนี้จะเปิดใช้งานก่อนเมื่อรันโปรเจ็กต์ Visual Studio ทั้งหมด แอปพลิเคชันคอนโซลนี้จะเรียกใช้บริการเว็บซึ่งจะถูกเปิดใช้งานโดย Visual Studio โดยอัตโนมัติ

เพื่อทำตามขั้นตอนนี้ให้คลิกขวาที่โครงการ DemoApplication และเลือกตัวเลือก “Set as StartUp Project”

การเผยแพร่ตัวอย่างบริการเว็บ

ขั้นตอน 5) ขั้นตอนต่อไปคือการเพิ่มการอ้างอิงบริการของ “Guru99Webservice” ของเราไปยังแอปพลิเคชันคอนโซลของเรา การทำเช่นนี้เพื่อให้ DemoApplication สามารถอ้างอิงบริการบนเว็บและวิธีการเว็บทั้งหมดในบริการเว็บได้

ในการดำเนินการนี้ ให้คลิกขวาที่ไฟล์โครงการ DemoApplication และเลือกตัวเลือกเมนู เพิ่ม -> การอ้างอิงบริการ

การเผยแพร่ตัวอย่างบริการเว็บ

ขั้นตอน 6) ในขั้นตอนนี้ เราจะระบุค่าต่างๆ ที่จำเป็นในการเพิ่มการอ้างอิงบริการของเรา

  1. ก่อนอื่นเราต้องเลือกตัวเลือกการค้นพบของเรา ตัวเลือกนี้จะรับไฟล์ WSDL สำหรับบริการเว็บ TutorialService ของเราโดยอัตโนมัติ
  2. ต่อไป เราควรตั้งชื่อสำหรับการอ้างอิงบริการของเรา ในกรณีของเรา เราจะตั้งชื่อให้ว่า Guru99Webservice
  3. จากนั้นเราต้องขยายตัวเลือก TutorialService.asmx เพื่อให้เราสามารถดูเมธอด 'GetTutorialService' ทางด้านขวาได้ ที่นี่ TutorialService.asmx คือชื่อไฟล์ Visual Studio .Net ของเราซึ่งมีโค้ดสำหรับเว็บเซอร์วิสของเรา
  4. จากนั้นเราจะเห็นวิธีการเว็บของเราซึ่งเรามีในบริการเว็บของเราที่เรียกว่า "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();
		}
	}
}

คำอธิบายรหัส:-

  1. ส่วนแรกคือการเลือกไฟล์ Program.cs ซึ่งเป็นไฟล์หลักที่สร้างโดย Visual Studio เมื่อสร้างแอปพลิเคชันคอนโซล ไฟล์นี้จะถูกเรียกใช้เมื่อเรียกใช้แอปพลิเคชันคอนโซล (ในกรณีของเราคือแอปพลิเคชันสาธิต)
  2. จากนั้นเราจะสร้างตัวแปรชื่อ “ไคลเอนต์” ซึ่งจะถูกตั้งค่าเป็นอินสแตนซ์ของการอ้างอิงบริการของเราซึ่งสร้างขึ้นในขั้นตอนก่อนหน้า ในกรณีของเรา การอ้างอิงบริการคือ 'Guru99Webservice.Guru99WebserviveSoapClient()'
  3. จากนั้นเราจะเรียก Webmethod ของเราว่า 'GetTutorialService' ในบริการเว็บ TutorialService โปรดจำไว้ว่าเมธอด GetTutorialService' ของเรายอมรับพารามิเตอร์จำนวนเต็ม ดังนั้นเราจึงส่งพารามิเตอร์จำนวนเต็มไปยังวิธีการของเว็บ
  4. บรรทัดสุดท้ายนี้มีไว้เพื่อให้แน่ใจว่าหน้าจอบันทึกของคอนโซลยังคงทำงานอยู่ เพื่อให้เราสามารถดูผลลัพธ์ได้ คำสั่งนี้จะรอการป้อนข้อมูลบางส่วนจากผู้ใช้

เอาท์พุต

เมื่อทำตามขั้นตอนทั้งหมดข้างต้นแล้ว และรัน DemoApplication ผลลัพธ์ด้านล่างจะปรากฏขึ้น

การเผยแพร่ตัวอย่างบริการเว็บ

จากเอาต์พุต เราจะเห็นได้ชัดเจนว่า DemoApplication เรียกใช้บริการเว็บของเรา และสตริงที่ส่งคืนโดยบริการเว็บจะแสดงอยู่ในบันทึกคอนโซลของเรา

สรุป

  • WSDL รูปแบบเต็มคือบริการทางเว็บ Descriptภาษาไอออน
  • เอกสาร WSDL คือเอกสารที่ใช้อธิบายบริการเว็บ นี่เป็นกุญแจสำคัญสำหรับแอปพลิเคชันไคลเอ็นต์ในการทราบว่าบริการเว็บอยู่ที่ใด นอกจากนี้ยังช่วยให้แอปพลิเคชันไคลเอนต์เข้าใจวิธีการที่มีอยู่ในบริการเว็บ
  • ไฟล์ WSDL ช่วยให้บริการเว็บใช้งานได้ง่ายมากในภาษาโปรแกรมเดียวและเรียกจากภาษาโปรแกรมอื่น
  • เอกสาร WSDL โดยทั่วไปประกอบด้วยข้อความ สำหรับวิธีการบนเว็บแต่ละวิธีจะมีข้อความ 2 ข้อความ ข้อความหนึ่งสำหรับอินพุต และอีกข้อความสำหรับเอาท์พุต เมื่อนำมารวมกันแล้วจะกลายเป็นการดำเนินการ
  • บริการเว็บ Descriptโดยปกติไฟล์ ion Language (ย่อมาจาก WSDL) จะถูกสร้างขึ้นในตัวแก้ไขซึ่งใช้สำหรับภาษาการเขียนโปรแกรมที่เกี่ยวข้อง
  • เราได้เห็นแล้วว่าเราสามารถใช้บริการเว็บใน Visual Studio ได้อย่างไร ซึ่งสามารถทำได้โดยการสร้างโปรเจ็กต์อื่นซึ่งเป็นแอปพลิเคชันคอนโซล จากนั้นโดยการเพิ่มการอ้างอิงบริการ เราจึงสามารถเข้าถึงวิธีการทางเว็บในบริการเว็บของเราได้