WSDL Tutorial: Web Services Description Language with Example

Τι είναι το WSDL;

Γλώσσα περιγραφής υπηρεσιών Ιστού (WSDL) είναι ένα αρχείο που βασίζεται σε XML που βασικά λέει στην εφαρμογή πελάτη τι κάνει η υπηρεσία web. Το αρχείο WSDL χρησιμοποιείται για να περιγράψει με λίγα λόγια τι κάνει η υπηρεσία Ιστού και δίνει στον πελάτη όλες τις πληροφορίες που απαιτούνται για να συνδεθεί στην υπηρεσία Ιστού και να χρησιμοποιήσει όλες τις λειτουργίες που παρέχονται από την υπηρεσία Ιστού.

Σε αυτό το σεμινάριο, θα εστιάσουμε στο τελευταίο σημείο που είναι το πιο σημαντικό μέρος των υπηρεσιών web, και αυτό είναι η WSDL ή η γλώσσα περιγραφής των υπηρεσιών Ιστού.

Το αρχείο WSDL χρησιμοποιείται για να περιγράψει με λίγα λόγια τι κάνει η υπηρεσία Ιστού και δίνει στον πελάτη όλες τις πληροφορίες που απαιτούνται για να συνδεθεί στην υπηρεσία Ιστού και να χρησιμοποιήσει όλες τις λειτουργίες που παρέχονται από την υπηρεσία Ιστού.

Δομή ενός εγγράφου WSDL

Ένα έγγραφο WSDL χρησιμοποιείται για την περιγραφή μιας υπηρεσίας Ιστού. Αυτή η περιγραφή απαιτείται, ώστε οι εφαρμογές-πελάτες να είναι σε θέση να κατανοήσουν τι κάνει στην πραγματικότητα η υπηρεσία web.

  • Το αρχείο WSDL περιέχει τη θέση της υπηρεσίας web και
  • Οι μέθοδοι που εκτίθενται από την υπηρεσία web.

Το ίδιο το αρχείο WSDL μπορεί να φαίνεται πολύ complex σε οποιονδήποτε χρήστη, αλλά περιέχει όλες τις απαραίτητες πληροφορίες που θα απαιτούσε κάθε εφαρμογή πελάτη για να χρησιμοποιήσει τη σχετική υπηρεσία web.

Παρακάτω είναι η γενική δομή ενός αρχείου WSDL

  • Ορισμός
  • TargetNamespace
  • Τύποι Δεδομένων
  • Μηνύματα
  • Porttype
  • Δέσμευση
  • υπηρεσία

Ένα βασικό πράγμα που πρέπει να σημειωθεί εδώ είναι ότι ο ορισμός των μηνυμάτων, που είναι αυτό που περνάει από το Πρωτόκολλο SOAP στην πραγματικότητα ορίζεται στο έγγραφο WSDL.

Το έγγραφο WSDL στην πραγματικότητα λέει σε μια εφαρμογή πελάτη ποιοι είναι οι τύποι μηνυμάτων SOAP που αποστέλλονται και γίνονται αποδεκτά από την υπηρεσία Web.

Με άλλα λόγια, το WSDL είναι ακριβώς όπως μια ταχυδρομική κάρτα που έχει τη διεύθυνση μιας συγκεκριμένης τοποθεσίας. Η διεύθυνση παρέχει το details του ατόμου που παρέδωσε την ταχυδρομική κάρτα. Ως εκ τούτου, με τον ίδιο τρόπο, το αρχείο WSDL είναι η ταχυδρομική κάρτα, η οποία έχει τη διεύθυνση της υπηρεσίας web που μπορεί να προσφέρει όλη τη λειτουργικότητα που θέλει ο πελάτης.

<!-- 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 περιέχει το ακόλουθοwing κύρια μέρη

  1. Η Η ετικέτα χρησιμοποιείται για τον ορισμό όλων των complex τύπους δεδομένων, που θα χρησιμοποιηθούν στο μήνυμα που ανταλλάσσεται μεταξύ της εφαρμογής πελάτη και της υπηρεσίας Ιστού. Αυτή είναι μια σημαντική πτυχή της εφαρμογής πελάτη, γιατί εάν η υπηρεσία web λειτουργεί με μια complex τύπο δεδομένων, τότε η εφαρμογή πελάτη θα πρέπει να γνωρίζει πώς να επεξεργάζεται το complex Τύπος δεδομένων. Τύποι δεδομένων όπως float, numbers, και οι συμβολοσειρές είναι όλοι απλοί τύποι δεδομένων, αλλά θα μπορούσαν να υπάρχουν δομημένοι τύποι δεδομένων που μπορεί να παρέχονται από την υπηρεσία Ιστού.
    Για παράδειγμα, θα μπορούσε να υπάρχει ένας τύπος δεδομένων που ονομάζεται EmployeeDataType που θα μπορούσε να έχει 2 στοιχεία που ονομάζονται "EmployeeName" συμβολοσειράς τύπου και "EmployeeID" αριθμού τύπου ή ακέραιου αριθμού. Μαζί σχηματίζουν μια δομή δεδομένων η οποία στη συνέχεια γίνεται complex τύπου δεδομένων.
  2. Η Η ετικέτα χρησιμοποιείται για να ορίσει το μήνυμα που ανταλλάσσεται μεταξύ της εφαρμογής πελάτη και του διακομιστή web. Αυτά τα μηνύματα θα εξηγήσουν την είσοδο και την έξοδο operaλειτουργίες που μπορούν να εκτελεστούν από την υπηρεσία web. Ένα παράδειγμα μηνύματος μπορεί να είναι ένα μήνυμα που δέχεται το EmployeeID ενός υπαλλήλου και το μήνυμα εξόδου μπορεί να είναι το όνομα του υπαλλήλου με βάση το EmpoyeeID που παρέχεται.
  3. Η Η ετικέτα χρησιμοποιείται για να ενσωματώσει κάθε μήνυμα εισόδου και εξόδου σε ένα λογικό operation. Θα μπορούσε λοιπόν να υπάρξει ένα operaπου ονομάζεται "GetEmployee" που συνδυάζει το μήνυμα εισόδου της αποδοχής του EmployeeID από μια εφαρμογή πελάτη και στη συνέχεια αποστολή του EmployeeName ως μήνυμα εξόδου.
  4. Η η ετικέτα χρησιμοποιείται για τη σύνδεση του operaστον συγκεκριμένο τύπο θύρας. Αυτό συμβαίνει ώστε όταν η εφαρμογή-πελάτης καλεί τον σχετικό τύπο θύρας, θα μπορεί στη συνέχεια να έχει πρόσβαση στη θύρα operaπου συνδέονται με αυτόν τον τύπο θύρας. Οι τύποι θυρών είναι ακριβώς όπως οι διεπαφές. Επομένως, εάν μια εφαρμογή πελάτη χρειάζεται να χρησιμοποιήσει μια υπηρεσία Ιστού, πρέπει να χρησιμοποιήσει τις δεσμευτικές πληροφορίες για να διασφαλίσει ότι μπορεί να συνδεθεί στη διεπαφή που παρέχεται από αυτήν την υπηρεσία Ιστού.
  5. Η Η ετικέτα είναι ένα όνομα που δίνεται στην ίδια την υπηρεσία web. Αρχικά, όταν μια εφαρμογή πελάτη πραγματοποιεί μια κλήση στην υπηρεσία Ιστού, θα το κάνει καλώντας το όνομα της υπηρεσίας Ιστού. Για παράδειγμα, μια υπηρεσία Ιστού μπορεί να βρίσκεται σε μια διεύθυνση όπως π.χ http://localhost/Guru99/Tutorial.asmx . Η ετικέτα υπηρεσίας θα έχει στην πραγματικότητα τη διεύθυνση URL που ορίζεται ως http://localhost/Guru99/Tutorial.asmx, το οποίο στην πραγματικότητα θα πει στην εφαρμογή πελάτη ότι υπάρχει διαθέσιμη μια υπηρεσία web σε αυτήν την τοποθεσία.

Γιατί WSDL

Μια υπηρεσία Ιστού είναι ένα σημαντικό συστατικό για τη δημιουργία σύγχρονων διαδικτυακών εφαρμογών. Ο κύριος σκοπός τους είναι να επιτρέπουν σε πολλαπλές εφαρμογές που είναι χτισμένες σε διάφορες γλώσσες προγραμματισμού να συνομιλούν μεταξύ τους. Για παράδειγμα, μπορούμε να έχουμε μια εφαρμογή web .Net συνομιλεί με a Java εφαρμογή μέσω μιας υπηρεσίας Web.

Μια διαδικτυακή υπηρεσία έχει το εξήςwing βασικά χαρακτηριστικά

  • Είναι κατασκευασμένο χρησιμοποιώντας τη γλώσσα προγραμματισμού XML. Σχεδόν όλες οι σύγχρονες τεχνολογίες όπως το .Net και η Java έχουν αντίστοιχες εντολές που έχουν τη δυνατότητα να λειτουργούν με XML. Ως εκ τούτου, η XML ελήφθη ως η καταλληλότερη γλώσσα για τη δημιουργία υπηρεσιών Ιστού.
  • Οι υπηρεσίες Ιστού επικοινωνούν μέσω HTTP. Το HTTP είναι ένα πρωτόκολλο που χρησιμοποιείται από όλες τις εφαρμογές που βασίζονται στο web. Ως εκ τούτου, ήταν απλώς λογικό να διασφαλιστεί ότι οι υπηρεσίες Ιστού είχαν επίσης τη δυνατότητα να λειτουργούν μέσω του πρωτοκόλλου HTTP.
  • Οι υπηρεσίες Ιστού συμμορφώνονται με μια συγκεκριμένη προδιαγραφή γλώσσας. Αυτή η προδιαγραφή έχει οριστεί από το W3C, το οποίο είναι το διοικητικό όργανο για όλα τα πρότυπα Ιστού.
  • Οι υπηρεσίες Ιστού έχουν μια γλώσσα περιγραφής γνωστή ως WSDL, η οποία χρησιμοποιείται για την περιγραφή της υπηρεσίας Ιστού.

Το αρχείο WSDL είναι γραμμένο σε απλή παλιά XML. Ο λόγος που είναι σε XML είναι ότι το αρχείο μπορεί να διαβαστεί από οποιαδήποτε γλώσσα προγραμματισμού.

Έτσι, εάν η εφαρμογή πελάτη ήταν γραμμένη σε .Net, θα κατανοούσε το αρχείο XML. Ομοίως, εάν η εφαρμογή πελάτη ήταν γραμμένη στη γλώσσα προγραμματισμού Java, τότε θα μπορούσε επίσης να ερμηνεύσει το αρχείο WSDL.

Χρειάζεστε WSDL

Το αρχείο WSDL είναι αυτό που ενώνει τα πάντα. Από το παραπάνω διάγραμμα, μπορείτε να δείτε ότι μπορείτε να δημιουργήσετε μια υπηρεσία web στη γλώσσα .Net.

Εδώ λοιπόν υλοποιείται η υπηρεσία. Εάν δεν είχατε το αρχείο WSDL και θέλατε μια κλάση Java για να καταναλώσει την υπηρεσία web, θα χρειαστείτε πολλή προσπάθεια κωδικοποίησης για να το πετύχετε.

Αλλά τώρα με το αρχείο WSDL που είναι σε XML, το οποίο μπορεί να γίνει κατανοητό από οποιαδήποτε γλώσσα προγραμματισμού, μπορείτε πλέον εύκολα να βάλετε μια τάξη Java να καταναλώσει την υπηρεσία web .Net. Ως εκ τούτου, το ποσό της προσπάθειας κωδικοποίησης μειώνεται σημαντικά.

Μέρος μηνυμάτων WSDL

Το WSDL αποτελείται από μια ενότητα που ονομάζεται "μηνύματα" που συμβολίζεται με το στοιχείο.

Αυτό το στοιχείο χρησιμοποιείται βασικά για να περιγράψει τα δεδομένα που ανταλλάσσονται μεταξύ της υπηρεσίας web και της εφαρμογής πελάτη.

Κάθε υπηρεσία Ιστού θα έχει πάντα 2 τύπους μηνυμάτων,

  • Το ένα είναι για την είσοδο της υπηρεσίας Ιστού και το άλλο για την έξοδο της υπηρεσίας Ιστού.
  • Η είσοδος χρησιμοποιείται για να περιγράψει τις παραμέτρους που γίνονται αποδεκτές από την υπηρεσία web. Αυτή είναι μια σημαντική πτυχή της εφαρμογής πελάτη, ώστε να γνωρίζει τις τιμές που πρέπει να αποστέλλονται ως παράμετροι στην υπηρεσία web.
  • Ο άλλος τύπος μηνύματος είναι το μήνυμα εξόδου που λέει ποια αποτελέσματα παρέχονται από την υπηρεσία Ιστού.

Κάθε μήνυμα, με τη σειρά του, θα έχει ένα στοιχείο που χρησιμοποιείται για να περιγράψει την παράμετρο που χρησιμοποιείται από το μήνυμα εισόδου και εξόδου.

Παρακάτω είναι ένα απλό παράδειγμα, του πώς φαίνεται ένα μήνυμα για μια υπηρεσία web. Η λειτουργικότητα της υπηρεσίας Ιστού είναι να παρέχει το όνομα ενός "Εκμάθησης" μόλις υποβληθεί ένα "Αναγνωριστικό εκμάθησης" ως παράμετρος στην υπηρεσία Ιστού.

Μέρος μηνυμάτων WSDL

  1. Όπως μπορούμε να δούμε η υπηρεσία web έχει 2 μηνύματα, το ένα για την είσοδο και το άλλο για την έξοδο.
  2. Το μήνυμα εισαγωγής είναι γνωστό ως TutorialNameRequest που έχει μια παράμετρο που ονομάζεται TutorialID. Αυτή η παράμετρος είναι του τύπου αριθμός που καθορίζεται από τον τύπο xsd:number
  3. Το μήνυμα εξόδου είναι γνωστό ως TutorialNameResponse που έχει μια παράμετρο που ονομάζεται TutorialName. Αυτή η παράμετρος είναι του τύπου string που καθορίζεται από τον τύπο xsd:string

Δέσμευση τύπου θύρας

Οι θύρες χρησιμοποιούνται στο WSDL για να ορίσουν μία πλήρη operaπου προσφέρεται από την υπηρεσία web.

Στο προηγούμενο θέμα, είδαμε ότι η υπηρεσία ιστού μας παρείχε 2 μηνύματα, το ένα για την είσοδο που ονομάζεται "TutorialNameRequest" και το άλλο για την έξοδο που ονομάζεται "TutorialNameResponse". Μαζί η φόρμα μηνύματος εισόδου και εξόδου είναι γνωστή ως μία ολοκληρωμένη operaσία.

Το WSDL παρέχει ένα στοιχείο που ονομάζεται που χρησιμοποιείται για τον ορισμό του operaπου παρέχονται από την υπηρεσία Ιστού.

Δέσμευση τύπου θύρας

Έτσι στο παραπάνω παράδειγμά μας μπορούμε να σημειώσουμε το ακόλουθοwing:

  1. Το όνομα της θύρας Τύπος που ενσωματώνει το operaΗ ένδειξη δίνεται ως "Tutorial_PortType".
  2. Η operaΤο ίδιο το όνομα έχει το όνομα "Tutorial". Οπότε το δικό μας operaΤο tion παρέχει βασικά ένα TutorialName εάν το TutorialID δίνεται ως παράμετρος εισόδου.
  3. Ακολουθούν τα 2 μηνύματά μας, το ένα για την είσοδο και το άλλο για την έξοδο που σχηματίζει το δικό μας operaσμού

Επιπρόσθετα με στοιχείο, υπάρχει και το στοιχείο που χρησιμοποιείται για τον καθορισμό του τρόπου μεταφοράς των μηνυμάτων.

Δέσμευση τύπου θύρας

  1. Το παραπάνω παράδειγμα δείχνει ότι το δέσιμο αποτελείται από ένα δεσμευτικό όνομα το οποίο στην περίπτωσή μας δίνεται ως "TutorialSoapBinding". Δεσμευτικό με απλά λόγια είναι οι πληροφορίες που χρησιμοποιεί η εφαρμογή πελάτη για να συνδεθεί πραγματικά με την υπηρεσία Ιστού. Μόλις συνδεθεί στην υπηρεσία Ιστού, τότε έχει τη δυνατότητα να καλέσει τις διάφορες operaστοιχεία που εκτίθενται από την υπηρεσία web.
  2. Το επίπεδο μεταφοράς δίνεται ως http:// που σημαίνει ότι τα μηνύματα που θα μεταφερθούν μέσω του πρωτοκόλλου HTTP.

Δημιουργία αρχείου WSDL

Το αρχείο WSDL δημιουργείται κάθε φορά που δημιουργείται μια υπηρεσία web σε οποιαδήποτε γλώσσα προγραμματισμού.

Δεδομένου ότι το αρχείο 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

Δημοσίευση του παραδείγματος υπηρεσίας Web

Ας δούμε τώρα ένα παράδειγμα για το πώς μπορούμε να δημοσιεύσουμε μια υπηρεσία web και να την καταναλώσουμε χρησιμοποιώντας Visual Studio.

Σε αυτό το παράδειγμα, θα δημιουργήσουμε μια υπηρεσία web με μία μέθοδο Web. Αυτή η μέθοδος δέχεται μια παράμετρο Integer που ονομάζεται "TutorialID". Στη συνέχεια, η μέθοδος Web θα επιστρέψει μια συμβολοσειρά που ονομάζεται "Υπηρεσίες Ιστού".

Στη συνέχεια, θα δημιουργήσουμε μια εφαρμογή βασισμένη στην κονσόλα, η οποία θα καταναλώσει αυτήν την υπηρεσία web και θα καλέσει τη μέθοδο web μας ανάλογα.

Ας δούμε τα βήματα που απαιτούνται για την εκτέλεση αυτού του παραδείγματος.

Βήμα 1) Το πρώτο βήμα είναι να δημιουργήσετε την υπηρεσία Ιστού σας. Τα λεπτομερή βήματα για το πώς το Asp.Net έχει επεξηγηθεί το web project και έχει δημιουργηθεί μια υπηρεσία web εδώ; Ακολουθήστε τα ίδια βήματα για να δημιουργήσετε το έργο και την υπηρεσία web ανάλογα. Το βασικό μέρος είναι να εισαγάγετε τον παρακάτω κώδικα στο αρχείο υπηρεσιών Web.

Δημοσίευση του παραδείγματος υπηρεσίας 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;
		}
	}
}

Επεξήγηση κώδικα:

  1. Εδώ δημιουργούμε μια μέθοδο Web που ονομάζεται "Guru99WebService". Σε αυτήν τη μέθοδο web, συμπεριλαμβάνουμε μια ακέραια παράμετρο που πρέπει να μεταβιβάζεται κάθε φορά που καλείται αυτή η μέθοδος web.
  2. Στη συνέχεια, ορίζουμε μια μεταβλητή που ονομάζεται "TutorialName" η οποία θα διατηρεί την τιμή συμβολοσειράς "Υπηρεσίες Ιστού". Αυτή είναι η τιμή που θα επιστραφεί όταν καλείται η υπηρεσία web.

Βήμα 2) Αφού ορίσουμε το αρχείο υπηρεσιών web, το επόμενο βήμα είναι να δημιουργήσουμε ένα έργο πελάτη που θα καταναλώσει αυτήν την υπηρεσία web.

Ας δημιουργήσουμε μια απλή εφαρμογή κονσόλας που θα καλεί αυτήν την υπηρεσία web, θα επικαλείται το "Guru99WebService" και στη συνέχεια θα εμφανίζει την έξοδο της μεθόδου web στην οθόνη καταγραφής της κονσόλας. Ακολουθήστε τα παρακάτω βήματα για να δημιουργήσετε μια εφαρμογή κονσόλας.

Κάντε δεξί κλικ στο Visual Studio αρχείο λύσης και επιλέξτε Προσθήκη->Νέο έργο

Δημοσίευση του παραδείγματος υπηρεσίας Web

Βήμα 3) Στο στάδιο αυτό,

  1. Βεβαιωθείτε ότι έχετε επιλέξει πρώτα το Visual C# Windows επιλογή. Στη συνέχεια, επιλέξτε τη δημιουργία μιας εφαρμογής κονσόλας.
  2. Δώστε ένα όνομα για το έργο σας που στην περίπτωσή μας έχει δοθεί ως "Εφαρμογή επίδειξης".

Δημοσίευση του παραδείγματος υπηρεσίας Web

Αφού κάνετε κλικ στο κουμπί OK στην παραπάνω οθόνη, θα μπορείτε να δείτε το έργο στην Εξερεύνηση λύσεων Visual Studio.

Δημοσίευση του παραδείγματος υπηρεσίας Web

Βήμα 4) Σε αυτό το βήμα, ορίζετε την εφαρμογή DemoApplication Console ως το έργο εκκίνησης. Αυτό γίνεται για να διασφαλιστεί ότι αυτή η εφαρμογή θα ξεκινήσει πρώτα όταν ολοκληρωθεί Visual Studio το έργο εκτελείται. Αυτή η εφαρμογή Κονσόλας, με τη σειρά της, θα καλέσει την υπηρεσία web η οποία θα εκκινηθεί αυτόματα από Visual Studio.

Για να ολοκληρώσετε αυτό το βήμα, κάντε δεξί κλικ στο έργο DemoApplication και επιλέξτε την επιλογή «Ορισμός ως Έργου εκκίνησης».

Δημοσίευση του παραδείγματος υπηρεσίας Web

Βήμα 5) Το επόμενο βήμα είναι να προσθέσουμε την αναφορά υπηρεσίας του "Guru99Webservice" στην εφαρμογή της κονσόλας μας. Αυτό γίνεται έτσι ώστε η εφαρμογή επίδειξης να μπορεί να αναφέρει την υπηρεσία web και όλες τις μεθόδους web στην υπηρεσία web.

Για να το κάνετε αυτό, κάντε δεξί κλικ στο αρχείο έργου DemoApplication και επιλέξτε την επιλογή μενού Προσθήκη->Αναφορά υπηρεσίας.

Δημοσίευση του παραδείγματος υπηρεσίας Web

Βήμα 6) Σε αυτό το βήμα, θα παρέχουμε τις διαφορετικές τιμές που απαιτούνται για την προσθήκη της αναφοράς υπηρεσίας μας

  1. Πρώτα πρέπει να επιλέξουμε την επιλογή ανακάλυψης. Αυτή η επιλογή θα παραλάβει αυτόματα το αρχείο WSDL για την υπηρεσία Web TutorialService.
  2. Στη συνέχεια, θα πρέπει να δώσουμε ένα όνομα για την αναφορά της υπηρεσίας μας. Στην περίπτωσή μας, του δίνουμε ένα όνομα Guru99Webservice.
  3. Στη συνέχεια, πρέπει να επεκταθούμε στην επιλογή TutorialService.asmx, ώστε να μπορούμε να δούμε τη μέθοδο «GetTutorialService» στη δεξιά πλευρά. Εδώ TutorialService.asmx είναι το όνομά μας Visual Studio Αρχείο .Net που περιέχει τον κώδικα για την υπηρεσία web μας.
  4. Στη συνέχεια θα δούμε τη μέθοδο Web που είχαμε στην υπηρεσία ιστού μας γνωστή ως "GetTutorialService"

Δημοσίευση του παραδείγματος υπηρεσίας Web

Όταν κάνουμε κλικ στο κουμπί 'OK', όλος ο απαιτούμενος κώδικας για πρόσβαση σε αυτήν την υπηρεσία web θα προστεθεί στην εφαρμογή DemoApplication Console όπως φαίνεται παρακάτω.

Το στιγμιότυπο οθόνης δείχνει ότι το "Guru99Webservice" προστέθηκε με επιτυχία στην εφαρμογή της κονσόλας μας.

Δημοσίευση του παραδείγματος υπηρεσίας Web

Βήμα 7) Το επόμενο βήμα είναι να προσθέσουμε τον κώδικα στην εφαρμογή της κονσόλας μας για πρόσβαση στη μέθοδο web στην υπηρεσία ιστού μας. Ανοίξτε το αρχείο κώδικα Program.cs που συνοδεύει αυτόματα την εφαρμογή της κονσόλας και προσθέστε τον παρακάτω κώδικα

Δημοσίευση του παραδείγματος υπηρεσίας Web

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. Στη συνέχεια ονομάζουμε τη μέθοδο Web "GetTutorialService" στην υπηρεσία Web TutorialService Να θυμάστε ότι η μέθοδος GetTutorialService δέχεται μια ακέραια παράμετρο, επομένως απλώς μεταβιβάζουμε μια ακέραια παράμετρο στη μέθοδο web.
  4. Αυτή η τελευταία γραμμή είναι απλώς για να διασφαλίσουμε ότι η οθόνη καταγραφής της κονσόλας παραμένει ενεργή, ώστε να μπορούμε να προβάλουμε την έξοδο. Αυτή η εντολή θα περιμένει απλώς κάποια είσοδο από τον χρήστη.

Παραγωγή

Όταν ακολουθηθούν όλα τα παραπάνω βήματα και εκτελεστεί η DemoApplication, η παρακάτω έξοδος θα εμφανίζεταιyed.

Δημοσίευση του παραδείγματος υπηρεσίας Web

Από την έξοδο, μπορούμε να δούμε ξεκάθαρα ότι η DemoApplication καλεί την υπηρεσία Web μας και ότι η συμβολοσειρά που επιστρέφεται από την υπηρεσία Web είναι displayed στο αρχείο καταγραφής της Κονσόλας μας.

Χαρακτηριστικά

  • Η πλήρης μορφή του WSDL είναι η Γλώσσα Περιγραφής Υπηρεσιών Ιστού
  • Ένα έγγραφο WSDL είναι ένα έγγραφο που χρησιμοποιείται για την περιγραφή μιας υπηρεσίας web. Αυτό είναι το κλειδί για κάθε εφαρμογή πελάτη να γνωρίζει πού βρίσκεται η υπηρεσία web. Επιτρέπει επίσης στην εφαρμογή πελάτη να κατανοήσει τις μεθόδους που είναι διαθέσιμες στην υπηρεσία web.
  • Το αρχείο WSDL διευκολύνει την εφαρμογή της υπηρεσίας web σε μία γλώσσα προγραμματισμού και την κλήση από διαφορετική γλώσσα προγραμματισμού.
  • Το έγγραφο WSDL συνήθως αποτελείται από ένα μήνυμα. Για κάθε μέθοδο web, υπάρχουν 2 μηνύματα, το ένα είναι για την είσοδο και το άλλο για την έξοδο. Μαζί σχηματίζουν ένα operaσία.
  • Τα αρχεία Γλώσσας Περιγραφής Υπηρεσιών Ιστού (που σημαίνει WSDL) δημιουργούνται συνήθως στον επεξεργαστή που χρησιμοποιείται για την αντίστοιχη γλώσσα προγραμματισμού.
  • Είδαμε πώς μπορούμε να καταναλώνουμε μια υπηρεσία web Visual Studio. Αυτό μπορεί να γίνει δημιουργώντας ένα άλλο έργο που είναι μια εφαρμογή κονσόλας. Στη συνέχεια, προσθέτοντας μια αναφορά υπηρεσίας, μπορούμε στη συνέχεια να αποκτήσουμε πρόσβαση στις μεθόδους web στην υπηρεσία ιστού μας.