Θέλω να δοκιμάσω τη διαφορά μεταξύ του ServiceStack Web και του ενσωματωμένου webapi της Microsoft και να δω ποια πλεονεκτήματα υπάρχουν, γι' αυτό προσπαθήστε να δημιουργήσετε μια εφαρμογή ServiceStack Web Service σήμερα
1: Δημιουργήστε ένα νέο κενό έργο ιστού .NET 4.5 και, στη συνέχεια, χρησιμοποιήστε την εντολή nuget για να εγκαταστήσετε το ServiceStack:
Η έκδοση .NET πρέπει να είναι μεγαλύτερη ή ίση με την έκδοση 4.5, το έργο 4.0 δεν θα εγκατασταθεί με επιτυχία! Όπως φαίνεται στο παρακάτω σχήμα.
2: Δημιουργήστε ένα νέο μοντέλο και φάκελο υπηρεσίας
Δημιουργήστε μια οντότητα αίτησης και απόκρισης με τον ακόλουθο κώδικα:
3: Δημιουργήστε μια διεπαφή υπηρεσίας στο φάκελο υπηρεσίας
4: Δημιουργήστε μια νέα παγκόσμια κλάση εφαρμογών με το όνομα Global.asax σε αυτό το έργο και ο κώδικας είναι ο εξής:
5: Τροποποιήστε τη διαμόρφωση web.config, προσθέστε έναν νέο κόμβο system.webServer και η πλήρης διαμόρφωση έχει ως εξής:
Μέχρι στιγμής η υπηρεσία μας έχει ολοκληρωθεί, τρέχοντας το πρόγραμμα μπορείτε να δείτε τη διεπαφή ως εξής,Το GetAllUserInfoRequest και το GetByAgeUserInfoRequest μπορούν να γίνουν κατανοητές ως πραγματικές μέθοδοι κλήσηςΟι παράμετροι που ορίζονται σε αυτό μπορούν να ερμηνευθούν ως οι παράμετροι αιτήματος της μεθόδου, όπως φαίνεται στο παρακάτω σχήμα:
Οι μέθοδοι εξυπηρέτησης στο ServiceStack ονομάζονται Any, Get και Post, οι οποίες υποστηρίζονται επίσης τύποι αιτημάτων από το ServiceStack.Οποιοδήποτε σημαίνει ότι η υπηρεσία μπορεί να κληθεί τόσο σε HTTP Get όσο και σε HTTP Post。 Αυτό ενισχύει και απλοποιεί την εφαρμογή των WebServices τύπου RESTFull. Απλώς προσθέστε αγάπη [Διαδρομή(...)] σε αυτές τις μεθόδους Ιδιότητες. Στο ServiceStack,Η διαφορά μεταξύ μεθόδων και μεθόδων διακρίνεται από τις παραμέτρους της υπηρεσίας και του αντικειμένου αιτήματος Request DTO, αντί να διαφοροποιείται με βάση το όνομα της μεθόδου όπως στο WCF. Αυτό σημαίνει ότιΈνα αντικείμενο αίτησης DTO δεν μπορεί να επαναχρησιμοποιηθεί σε πολλές υπηρεσίες στο ServiceStack。
Η προσθήκη της παραμέτρου format μετά την παράμετρο get request μπορεί να επιστρέψει τον τύπο απόκρισης, όπως: format=json, format=xml, κ.λπ., και φαίνεται ότι υποστηρίζεται και η μορφή jsonp.
Για παράδειγμα: http://localhost:52079//json/reply/GetAllUserInfoRequest?format=xml
Συνοψίζοντας, σε σύγκριση με το web API της Microsoft, το ServiceStack φαίνεται να μην έχει έννοια μεθόδου στον Ιστό, είναι μια διαφορετική οντότητα αιτήματος είναι μια μέθοδος, μπορεί να δημιουργήσει αυτόματα έγγραφα διεπαφής και η μορφή της απάντησης μπορεί να επιστραφεί μέσω της μορφής (αν και η Microsoft είναι επίσης δυνατή, αλλά φαίνεται πιο απλή από τη Microsoft)
Κωδικός: https://www.cnblogs.com/woxpp/p/5012947.html
https://msdn.microsoft.com/zh-cn/magazine/dn342871.aspx
https://github.com/ServiceStack/ServiceStack/wiki
Τέλος, επισυνάψτε τον πηγαίο κώδικα του έργου!
Τουρίστες, αν θέλετε να δείτε το κρυφό περιεχόμενο αυτής της ανάρτησης, παρακαλώ Απάντηση
|