Τι είναι το WSDL; Σημασία & Παράδειγμα
⚡ Έξυπνη Σύνοψη
WSDL (Υπηρεσίες Ιστού Descript(Ion Language) είναι ένα αρχείο που βασίζεται σε XML και ενημερώνει μια εφαρμογή-πελάτης για το τι κάνει μια διαδικτυακή υπηρεσία και πώς να την καλέσει. Αυτός ο πόρος εξηγεί τη δομή, τα στοιχεία, τα μηνύματα, τους τύπους θυρών, τις συνδέσεις και ένα παράδειγμα δημοσίευσης της WSDL.
Τι είναι το WSDL;
Υπηρεσίες Διαδικτύου Description Language (WSDL) είναι ένα αρχείο που βασίζεται σε XML που βασικά λέει στην εφαρμογή πελάτη τι κάνει η υπηρεσία web. Το αρχείο WSDL χρησιμοποιείται για να περιγράψει με λίγα λόγια τι κάνει η υπηρεσία Ιστού και δίνει στον πελάτη όλες τις πληροφορίες που απαιτούνται για να συνδεθεί στην υπηρεσία Ιστού και να χρησιμοποιήσει όλες τις λειτουργίες που παρέχονται από την υπηρεσία Ιστού.
Σε αυτό το σεμινάριο, θα επικεντρωθούμε στο πιο σημαντικό μέρος των διαδικτυακών υπηρεσιών, και αυτό είναι το WSDL ή οι Διαδικτυακές Υπηρεσίες. DescriptΓλώσσα ιόντων. Λειτουργεί ως το contracμεταξύ της διαδικτυακής υπηρεσίας και οποιουδήποτε πελάτη που θέλει να την καταναλώσει.
Δομή ενός εγγράφου WSDL
Ένα έγγραφο WSDL χρησιμοποιείται για την περιγραφή μιας διαδικτυακής υπηρεσίας. Αυτή η περιγραφή είναι απαραίτητη ώστε οι εφαρμογές-πελάτες να είναι σε θέση να κατανοήσουν τι πραγματικά κάνει η διαδικτυακή υπηρεσία.
- Το αρχείο WSDL περιέχει την τοποθεσία της διαδικτυακής υπηρεσίας και
- Οι μέθοδοι που εκτίθενται από την υπηρεσία web.
Το ίδιο το αρχείο WSDL μπορεί να φαίνεται πολύ περίπλοκο σε οποιονδήποτε χρήστη, αλλά περιέχει όλες τις απαραίτητες πληροφορίες που θα απαιτούσε οποιαδήποτε εφαρμογή-πελάτης για να χρησιμοποιήσει τη σχετική διαδικτυακή υπηρεσία. Παρακάτω είναι η γενική δομή ενός αρχείου WSDL:
- Ορισμός
- TargetΟ χώρος ονομάτων
- Τύποι Δεδομένων
- Μηνύματα
- Porttype
- Δέσμευση
- Υπηρεσία
Ένα βασικό πράγμα που πρέπει να σημειωθεί εδώ είναι ότι ο ορισμός των μηνυμάτων, που είναι αυτό που μεταδίδεται από το Πρωτόκολλο SOAP, ορίζεται στην πραγματικότητα στο έγγραφο WSDL. Το έγγραφο WSDL λέει σε μια εφαρμογή-πελάτη ποιοι είναι οι τύποι μηνυμάτων SOAP που αποστέλλονται και γίνονται δεκτά από την υπηρεσία Web.
Με άλλα λόγια, το 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 περιέχει τα ακόλουθα κύρια μέρη:
- The Η ετικέτα χρησιμοποιείται για τον ορισμό όλων των σύνθετων τύπων δεδομένων που θα χρησιμοποιηθούν στο μήνυμα που ανταλλάσσεται μεταξύ της εφαρμογής-πελάτη και της διαδικτυακής υπηρεσίας. Αυτό είναι σημαντικό επειδή εάν η διαδικτυακή υπηρεσία λειτουργεί με έναν σύνθετο τύπο δεδομένων, τότε η εφαρμογή-πελάτης θα πρέπει να γνωρίζει πώς να τον επεξεργαστεί. Οι τύποι δεδομένων όπως ο αριθμός κινητής τηλεφωνίας, οι αριθμοί και οι συμβολοσειρές είναι όλοι απλοί τύποι δεδομένων, αλλά θα μπορούσαν να υπάρχουν δομημένοι τύποι δεδομένων που παρέχονται από την διαδικτυακή υπηρεσία. Για παράδειγμα, θα μπορούσε να υπάρχει ένας τύπος δεδομένων που ονομάζεται ΤύποςΔεδομένωνΕργαζομένου, ο οποίος θα μπορούσε να έχει 2 στοιχεία που ονομάζονται "ΌνομαΕργαζομένου" τύπου συμβολοσειράς και "ΚωδικόςΕργαζομένου" τύπου αριθμού ή ακέραιου. Μαζί σχηματίζουν έναν σύνθετο τύπο δεδομένων.
- The Η ετικέτα χρησιμοποιείται για τον ορισμό του μηνύματος που ανταλλάσσεται μεταξύ της εφαρμογής-πελάτη και του διακομιστή ιστού. Αυτά τα μηνύματα εξηγούν τις λειτουργίες εισόδου και εξόδου που μπορούν να εκτελεστούν από την υπηρεσία ιστού. Ένα παράδειγμα μηνύματος μπορεί να είναι ένα μήνυμα που δέχεται το EmployeeID ενός υπαλλήλου και το μήνυμα εξόδου μπορεί να είναι το όνομα του υπαλλήλου με βάση το EmployeeID που παρέχεται.
- The Η ετικέτα χρησιμοποιείται για την ενσωμάτωση κάθε μηνύματος εισόδου και εξόδου σε μία λογική λειτουργία. Θα μπορούσε λοιπόν να υπάρξει μια λειτουργία που ονομάζεται "GetEmployee" που συνδυάζει το μήνυμα εισόδου της αποδοχής του EmployeeID από μια εφαρμογή πελάτη και στη συνέχεια αποστολή του EmployeeName ως το μήνυμα εξόδου.
- The Η ετικέτα χρησιμοποιείται για τη σύνδεση της λειτουργίας σε έναν συγκεκριμένο τύπο θύρας. Αυτό γίνεται έτσι ώστε όταν η εφαρμογή-πελάτης καλεί τον σχετικό τύπο θύρας, να μπορεί να έχει πρόσβαση στις λειτουργίες που είναι συνδεδεμένες με αυτήν. Οι τύποι θύρας είναι ακριβώς όπως οι διεπαφές. Έτσι, εάν μια εφαρμογή-πελάτης χρειάζεται να χρησιμοποιήσει μια υπηρεσία web, πρέπει να χρησιμοποιήσει τις πληροφορίες σύνδεσης για να διασφαλίσει ότι μπορεί να συνδεθεί στη διεπαφή που παρέχεται από αυτήν την υπηρεσία web.
- The Η ετικέτα είναι ένα όνομα που δίνεται στην ίδια την υπηρεσία web. Αρχικά, όταν μια εφαρμογή-πελάτης κάνει μια κλήση στην υπηρεσία web, θα το κάνει καλώντας το όνομα της υπηρεσίας web. Για παράδειγμα, μια υπηρεσία web μπορεί να βρίσκεται σε μια διεύθυνση όπως http://localhost/Guru99/Tutorial.asmx. Η ετικέτα υπηρεσίας θα έχει την URL ορισμένο, το οποίο ενημερώνει την εφαρμογή-πελάτης ότι μια υπηρεσία web είναι διαθέσιμη σε αυτήν την τοποθεσία.
Γιατί WSDL
Μια διαδικτυακή υπηρεσία είναι ένα σημαντικό στοιχείο στην κατασκευή σύγχρονων διαδικτυακών εφαρμογών. Ο κύριος σκοπός της είναι να επιτρέπει σε πολλαπλές εφαρμογές που βασίζονται σε διάφορες γλώσσες προγραμματισμού να επικοινωνούν μεταξύ τους. Για παράδειγμα, μπορούμε να έχουμε μια διαδικτυακή εφαρμογή .Net να επικοινωνεί με έναν Java εφαρμογή μέσω μιας υπηρεσίας Web.
Μια διαδικτυακή υπηρεσία έχει τα ακόλουθα βασικά χαρακτηριστικά:
- Είναι κατασκευασμένο με τη χρήση της γλώσσας προγραμματισμού XML. Σχεδόν όλες οι σύγχρονες τεχνολογίες όπως το .Net και το Java έχουν αντίστοιχες εντολές που έχουν τη δυνατότητα να δουλεύουν με XML. Ως εκ τούτου, η XML ελήφθη ως η καταλληλότερη γλώσσα για τη δημιουργία υπηρεσιών Ιστού.
- Οι υπηρεσίες ιστού επικοινωνούν μέσω HTTP. Το HTTP είναι ένα πρωτόκολλο που χρησιμοποιείται από όλες τις εφαρμογές ιστού. Επομένως, ήταν λογικό να διασφαλιστεί ότι οι υπηρεσίες ιστού θα είχαν επίσης τη δυνατότητα να λειτουργούν μέσω του πρωτοκόλλου HTTP.
- Οι υπηρεσίες Ιστού συμμορφώνονται με μια συγκεκριμένη προδιαγραφή γλώσσας. Αυτή η προδιαγραφή έχει οριστεί από το W3C, το οποίο είναι το διοικητικό όργανο για όλα τα πρότυπα Ιστού.
- Οι υπηρεσίες Ιστού έχουν μια γλώσσα περιγραφής γνωστή ως WSDL, η οποία χρησιμοποιείται για την περιγραφή της υπηρεσίας Ιστού.
Το αρχείο WSDL είναι γραμμένο σε απλή XML. Ο λόγος που είναι σε XML είναι για να μπορεί να διαβαστεί από οποιαδήποτε γλώσσα προγραμματισμού. Έτσι, εάν η εφαρμογή-πελάτης ήταν γραμμένη σε .Net, θα καταλάβαινε το αρχείο XML. Ομοίως, εάν η εφαρμογή-πελάτης ήταν γραμμένη σε Java γλώσσα προγραμματισμού, τότε θα είναι επίσης σε θέση να ερμηνεύσει το αρχείο WSDL.
Το αρχείο WSDL είναι αυτό που συνδέει τα πάντα μεταξύ τους. Από το παραπάνω διάγραμμα, μπορείτε να δείτε ότι μπορείτε να δημιουργήσετε μια διαδικτυακή υπηρεσία στη γλώσσα .Net. Εδώ λοιπόν υλοποιείται η υπηρεσία. Εάν δεν είχατε το αρχείο WSDL και θέλατε ένα Java κλάση για να καταναλώσετε την υπηρεσία ιστού, θα χρειαστείτε πολλή προσπάθεια κωδικοποίησης για να το πετύχετε αυτό. Αλλά τώρα με το αρχείο WSDL, το οποίο είναι σε XML και μπορεί να γίνει κατανοητό από οποιαδήποτε γλώσσα προγραμματισμού, μπορείτε εύκολα να έχετε ένα Java η τάξη καταναλώνει την υπηρεσία web .Net. Ως εκ τούτου, το ποσό της προσπάθειας κωδικοποίησης μειώνεται σημαντικά.
Μέρος μηνυμάτων WSDL
Το WSDL αποτελείται από μια ενότητα που ονομάζεται "μηνύματα" που συμβολίζεται με το στοιχείο. Αυτό το στοιχείο χρησιμοποιείται βασικά για να περιγράψει τα δεδομένα που ανταλλάσσονται μεταξύ της διαδικτυακής υπηρεσίας και της εφαρμογής-πελάτη.
Κάθε διαδικτυακή υπηρεσία θα έχει πάντα 2 τύπους μηνυμάτων:
- Το ένα είναι για την είσοδο της υπηρεσίας Ιστού και το άλλο για την έξοδο της υπηρεσίας Ιστού.
- Η είσοδος χρησιμοποιείται για να περιγράψει τις παραμέτρους που γίνονται αποδεκτές από την υπηρεσία web. Αυτή είναι μια σημαντική πτυχή της εφαρμογής πελάτη, ώστε να γνωρίζει τις τιμές που πρέπει να αποστέλλονται ως παράμετροι στην υπηρεσία web.
- Ο άλλος τύπος μηνύματος είναι το μήνυμα εξόδου που λέει ποια αποτελέσματα παρέχονται από την υπηρεσία Ιστού.
Κάθε μήνυμα, με τη σειρά του, θα έχει ένα στοιχείο που χρησιμοποιείται για να περιγράψει την παράμετρο που χρησιμοποιείται από το μήνυμα εισόδου και εξόδου.
Παρακάτω είναι ένα απλό παράδειγμα του πώς μοιάζει ένα μήνυμα για μια διαδικτυακή υπηρεσία. Η λειτουργικότητα της διαδικτυακής υπηρεσίας είναι να παρέχει το όνομα ενός "Tutorial" μόλις υποβληθεί ένα "Tutorial ID" ως παράμετρος στην διαδικτυακή υπηρεσία.
- Όπως μπορούμε να δούμε, η διαδικτυακή υπηρεσία έχει 2 μηνύματα, ένα για την είσοδο και το άλλο για την έξοδο.
- Το μήνυμα εισόδου είναι γνωστό ως TutorialNameRequest, το οποίο έχει μία παράμετρο που ονομάζεται TutorialID. Αυτή η παράμετρος είναι του τύπου number, ο οποίος καθορίζεται από τον τύπο xsd:number.
- Το μήνυμα εξόδου είναι γνωστό ως TutorialNameResponse, το οποίο έχει μία παράμετρο που ονομάζεται TutorialName. Αυτή η παράμετρος είναι του τύπου string, ο οποίος καθορίζεται από τον τύπο xsd:string.
Δέσμευση τύπου θύρας
Οι θύρες χρησιμοποιούνται στο WSDL για να ορίσουν μία πλήρη λειτουργία που προσφέρεται από την υπηρεσία web. Στο προηγούμενο θέμα, είδαμε ότι η υπηρεσία web παρείχε 2 μηνύματα, ένα για την είσοδο που ονομάζεται "TutorialNameRequest" και το άλλο για την έξοδο που ονομάζεται "TutorialNameResponse". Μαζί, το μήνυμα εισόδου και εξόδου σχηματίζουν αυτό που είναι γνωστό ως μία πλήρης λειτουργία.
Το WSDL παρέχει ένα στοιχείο που ονομάζεται που χρησιμοποιείται για τον καθορισμό των λειτουργιών που παρέχονται από την υπηρεσία Web.
Έτσι στο παραπάνω παράδειγμά μας μπορούμε να σημειώσουμε τα εξής:
- Το όνομα του τύπου θύρας που ενσωματώνει τη λειτουργία δίνεται ως "Tutorial_PortType".
- Η ίδια η λειτουργία ονομάζεται «Tutorial». Έτσι, η λειτουργία μας ουσιαστικά παρέχει ένα TutorialName εάν το TutorialID δίνεται ως παράμετρος εισόδου.
- Στη συνέχεια, ακολουθούν τα 2 μηνύματά μας, το ένα για την είσοδο και το άλλο για την έξοδο, τα οποία αποτελούν τη λειτουργία μας.
Επιπρόσθετα με στοιχείο, υπάρχει και το στοιχείο που χρησιμοποιείται για τον καθορισμό του τρόπου μεταφοράς των μηνυμάτων.
- Το παραπάνω παράδειγμα δείχνει ότι η σύνδεση αποτελείται από ένα όνομα σύνδεσης το οποίο στην περίπτωσή μας δίνεται ως "TutorialSoapBinding". Η σύνδεση, με απλά λόγια, είναι οι πληροφορίες που χρησιμοποιεί η εφαρμογή-πελάτης για να συνδεθεί στην υπηρεσία web. Μόλις συνδεθεί στην υπηρεσία web, έχει τη δυνατότητα να καλέσει τις διάφορες λειτουργίες που εκτίθενται από την υπηρεσία web.
- Το επίπεδο μεταφοράς δίνεται ως 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.
Δημοσίευση του παραδείγματος υπηρεσίας Web
Ας δούμε τώρα ένα παράδειγμα για το πώς μπορούμε να δημοσιεύσουμε μια διαδικτυακή υπηρεσία και να την καταναλώσουμε χρησιμοποιώντας το Visual Studio. Σε αυτό το παράδειγμα, θα δημιουργήσουμε μια διαδικτυακή υπηρεσία με μία WebMethod. Αυτή η μέθοδος θα δεχτεί μια ακέραια παράμετρο που ονομάζεται "TutorialID". Η μέθοδος Web θα επιστρέψει στη συνέχεια μια συμβολοσειρά που ονομάζεται "Web Services".
Στη συνέχεια, θα δημιουργήσουμε μια εφαρμογή που βασίζεται σε κονσόλα, η οποία θα καταναλώνει αυτήν την υπηρεσία ιστού και θα καλεί ανάλογα τη μέθοδο ιστού μας. Ας δούμε τα βήματα που απαιτούνται για την εκτέλεση αυτού του παραδείγματος.
Βήμα 1) Το πρώτο βήμα είναι να δημιουργήσετε την υπηρεσία Ιστού σας. Τα λεπτομερή βήματα για το πώς το Asp.Net έχουν εξηγηθεί τα αποτελέσματα του διαδικτυακού έργου και της διαδικτυακής υπηρεσίας που δημιουργούνται εδώΑκολουθήστε τα ίδια βήματα για να δημιουργήσετε το έργο και την υπηρεσία web ανάλογα. Το βασικό μέρος είναι να εισαγάγετε τον παρακάτω κώδικα στο αρχείο υπηρεσιών Web.
namespace webservic_asmx { [WebService(Name = "Guru99 Web service")] public class TutorialService : System.Web.Services.WebService { [WebMethod] public string GetTutorialService(int TutorialID) { string TutorialName = "Web Services"; return TutorialName; } } }
Code Επεξήγηση:
- Εδώ δημιουργούμε μια WebMethod που ονομάζεται "Guru99WebService.” Σε αυτήν τη μέθοδο web, συμπεριλαμβάνουμε μια ακέραια παράμετρο η οποία πρέπει να διαβιβάζεται κάθε φορά που καλείται αυτή η μέθοδος web.
- Στη συνέχεια, ορίζουμε μια μεταβλητή που ονομάζεται "TutorialName" η οποία θα διατηρεί την τιμή συμβολοσειράς "Υπηρεσίες Ιστού". Αυτή είναι η τιμή που θα επιστραφεί όταν καλείται η υπηρεσία web.
Βήμα 2) Αφού ορίσουμε το αρχείο υπηρεσιών ιστού, το επόμενο βήμα είναι να δημιουργήσουμε ένα έργο-πελάτης που θα καταναλώνει αυτήν την υπηρεσία ιστού. Ας δημιουργήσουμε μια απλή εφαρμογή κονσόλας που θα καλεί αυτήν την υπηρεσία ιστού, θα καλεί την εντολή "Guru99WebService" και, στη συνέχεια, εμφανίστε το αποτέλεσμα της μεθόδου web στην οθόνη καταγραφής της κονσόλας. Ακολουθήστε τα παρακάτω βήματα για να δημιουργήσετε μια εφαρμογή κονσόλας. Κάντε δεξί κλικ στο αρχείο λύσης του Visual Studio και επιλέξτε την επιλογή Προσθήκη->Νέο έργο.
Βήμα 3) Στο στάδιο αυτό,
- Βεβαιωθείτε ότι έχετε επιλέξει πρώτα το Visual C# Windows επιλογή. Στη συνέχεια, επιλέξτε τη δημιουργία μιας εφαρμογής κονσόλας.
- Δώστε ένα όνομα για το έργο σας που στην περίπτωσή μας έχει δοθεί ως "Εφαρμογή επίδειξης".
Αφού κάνετε κλικ στο κουμπί OK στην παραπάνω οθόνη, θα μπορείτε να δείτε το έργο στην Εξερεύνηση λύσεων στο Visual Studio.
Βήμα 4) Σε αυτό το βήμα, θα ορίσετε την εφαρμογή DemoApplication Console ως το έργο εκκίνησης. Αυτό γίνεται για να διασφαλιστεί ότι αυτή η εφαρμογή θα ξεκινήσει πρώτη όταν εκτελείται ολόκληρο το έργο του Visual Studio. Αυτή η εφαρμογή Console, με τη σειρά της, θα καλέσει την υπηρεσία web, η οποία θα ξεκινήσει αυτόματα από το Visual Studio. Για να ολοκληρώσετε αυτό το βήμα, κάντε δεξί κλικ στο έργο DemoApplication και επιλέξτε την επιλογή "Ορισμός ως Έργο Εκκίνησης".
Βήμα 5) Το επόμενο βήμα είναι να προσθέσουμε την αναφορά υπηρεσίας μας "Guru99Webservice" στην εφαρμογή κονσόλας μας. Αυτό γίνεται έτσι ώστε η DemoApplication να μπορεί να αναφέρει την υπηρεσία web και όλες τις μεθόδους web στην υπηρεσία web. Για να το κάνετε αυτό, κάντε δεξί κλικ στο αρχείο έργου DemoApplication και επιλέξτε την επιλογή μενού Προσθήκη->Αναφορά υπηρεσίας.
Βήμα 6) Σε αυτό το βήμα, θα παρέχουμε τις διαφορετικές τιμές που απαιτούνται για την προσθήκη της αναφοράς υπηρεσίας μας.
- Αρχικά, πρέπει να επιλέξουμε την επιλογή discover. Αυτή η επιλογή θα ανακτήσει αυτόματα το αρχείο WSDL για την διαδικτυακή υπηρεσία TutorialService.
- Στη συνέχεια, θα πρέπει να δώσουμε ένα όνομα για την αναφορά της υπηρεσίας μας. Στην περίπτωσή μας, της δίνουμε ένα όνομα Guru99Διαδικτυακή υπηρεσία.
- Στη συνέχεια, πρέπει να επεκτείνουμε την επιλογή TutorialService.asmx, ώστε να μπορούμε να δούμε τη μέθοδο "GetTutorialService" στη δεξιά πλευρά. Εδώ, το TutorialService.asmx είναι το όνομα του αρχείου Visual Studio .Net, το οποίο περιέχει τον κώδικα για την υπηρεσία web.
- Στη συνέχεια, θα δούμε τη μέθοδο Web που είχαμε στην υπηρεσία web μας, γνωστή ως "GetTutorialService".
Όταν κάνουμε κλικ στο κουμπί «OK», όλος ο απαιτούμενος κώδικας για την πρόσβαση σε αυτήν την υπηρεσία ιστού θα προστεθεί στην εφαρμογή DemoApplication Console, όπως φαίνεται παρακάτω. Το στιγμιότυπο οθόνης δείχνει ότι το «GuruΤο 99Webservice” προστέθηκε με επιτυχία στην εφαρμογή κονσόλας μας.
Βήμα 7) Το επόμενο βήμα είναι να προσθέσουμε τον κώδικα στην εφαρμογή κονσόλας μας για να αποκτήσουμε πρόσβαση στη μέθοδο web στην υπηρεσία web μας. Ανοίξτε το αρχείο κώδικα Program.cs που συνοδεύει αυτόματα την εφαρμογή κονσόλας και προσθέστε τον παρακάτω κώδικα.
namespace DemoApplication { class Program { static void Main(string[] args) { var client = new Guru99Webservice.Guru99WebserviceSoapClient(); Console.WriteLine(client.GetTutorialService(1)); Console.ReadKey(); } } }
Code Επεξήγηση:
- Το πρώτο μέρος είναι να επιλέξετε το αρχείο Program.cs. Αυτό είναι το κύριο αρχείο που δημιουργείται από το Visual Studio όταν δημιουργείται μια εφαρμογή κονσόλας. Αυτό το αρχείο εκτελείται όταν εκτελείται η εφαρμογή κονσόλας (στην περίπτωσή μας, το DemoApplication).
- Στη συνέχεια, δημιουργούμε μια μεταβλητή με το όνομα "client" η οποία θα οριστεί σε μια παρουσία της αναφοράς υπηρεσίας μας, η οποία δημιουργήθηκε σε προηγούμενο βήμα. Στην περίπτωσή μας, η αναφορά υπηρεσίας είναι 'Guru99Διαδικτυακή υπηρεσία.Guru99WebserviceSoapClient()'.
- Στη συνέχεια, καλούμε τη μέθοδο Web μας 'GetTutorialService' στην υπηρεσία web TutorialService. Να θυμάστε ότι η μέθοδος GetTutorialService δέχεται μια παράμετρο ακεραίου, επομένως απλώς μεταβιβάζουμε μια παράμετρο ακεραίου στη μέθοδο web.
- Αυτή η τελευταία γραμμή χρησιμεύει μόνο για να διασφαλιστεί ότι η οθόνη καταγραφής της κονσόλας παραμένει ενεργή, ώστε να μπορούμε να δούμε την έξοδο. Αυτή η εντολή θα περιμένει κάποια δεδομένα εισόδου από τον χρήστη.
Παραγωγή
Όταν ακολουθηθούν όλα τα παραπάνω βήματα και εκτελεστεί η εφαρμογή DemoApplication, θα εμφανιστεί το παρακάτω αποτέλεσμα.
Από την έξοδο, μπορούμε να δούμε ξεκάθαρα ότι η DemoApplication καλεί την υπηρεσία Web μας και ότι η συμβολοσειρά που επιστρέφεται από την υπηρεσία Web εμφανίζεται στο αρχείο καταγραφής της Κονσόλας.
















