Οδηγός WSDL: Υπηρεσίες Ιστού Description Language με Παράδειγμα

Τι είναι το WSDL;

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

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

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

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

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

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

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

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

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

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

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

Με άλλα λόγια, το WSDL είναι ακριβώς όπως μια ταχυδρομική κάρτα που έχει τη διεύθυνση μιας συγκεκριμένης τοποθεσίας. Η διεύθυνση παρέχει τα στοιχεία του ατόμου που παρέδωσε την ταχυδρομική κάρτα. Ως εκ τούτου, με τον ίδιο τρόπο, το αρχείο 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 περιέχει τα ακόλουθα κύρια μέρη

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

Γιατί WSDL

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

Μια υπηρεσία web έχει τα ακόλουθα βασικά χαρακτηριστικά

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

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

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

Χρειάζεστε WSDL

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

Εδώ λοιπόν υλοποιείται η υπηρεσία. Εάν δεν είχατε το αρχείο WSDL και θέλατε α Java class για να καταναλώσετε την υπηρεσία 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 για να ορίσουν μια πλήρη λειτουργία που προσφέρεται από την υπηρεσία web.

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

Το WSDL παρέχει ένα στοιχείο που ονομάζεται που χρησιμοποιείται για τον καθορισμό των λειτουργιών που παρέχονται από την υπηρεσία Web.

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

Έτσι στο παραπάνω παράδειγμά μας μπορούμε να σημειώσουμε τα εξής:

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

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

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

  1. Το παραπάνω παράδειγμα δείχνει ότι το δέσιμο αποτελείται από ένα δεσμευτικό όνομα το οποίο στην περίπτωσή μας δίνεται ως "TutorialSoapBinding". Δεσμευτική με απλά λόγια είναι οι πληροφορίες που χρησιμοποιεί η εφαρμογή πελάτη για να συνδεθεί πραγματικά με την υπηρεσία 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, θα εμφανιστεί η παρακάτω έξοδος.

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

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

Σύνοψη

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