ServiceStack Request DTO Design
Das API-Design von ServiceStack unterscheidet sich erheblich von WCF- und Web-API-Ansätzen. Der Schwerpunkt liegt auf nachrichtenbasierten Diensten, bei denen die gesamte Abfrage im Request DTO und nicht in den Signaturen der Servermethode erfasst wird.
Kombinieren von RPC-Aufrufen
ServiceStack ermöglicht mehrere RPC-Aufrufe durch eine einzige Remote-Nachrichten- und Service-Implementierung erfüllt werden. Beispielsweise kann ein einzelner Dienst die Suche nach Kunden anhand der ID, des Benutzernamens oder der E-Mail-Adresse übernehmen.
Nachrichtenbasiertes vs. RPC-Design
In ServiceStack stellt das Request-DTO dar den Kern der Anfrage und erfasst alle relevanten Informationen. Dies unterscheidet sich von RPC-Diensten wie WCF und Web API, bei denen Methodenparameter die Anforderung angeben.
Aufrufsemantik und Antworttypen trennen
Dienste werden basierend auf der Aufrufsemantik gruppiert ( Filtern vs. Kombinieren) und Antworttypen (einzeln vs. mehrfach). Dies ermöglicht ein sauberes und konsistentes API-Design.
Unterscheidung von Serviceoperationen von Typen
Serviceoperationen (Anfrage-DTOs) sind Aktionen (Verben), während DTO-Typen, die sie zurückgeben, es sind Entitäten (Substantive). Halten Sie sie getrennt, um die Übersichtlichkeit zu gewährleisten.
Zurückgeben allgemeiner Antworten
Die neue API von ServiceStack macht eine ResponseStatus-Eigenschaft in Antworten überflüssig. Generische ErrorResponse-DTOs werden bei Bedarf ausgelöst.
Beibehaltung einer konsistenten Nomenklatur
Reservieren Sie das Verb „Get“ für Dienste, die eindeutige Felder abfragen. Verwenden Sie „Suchen“ oder „Suchen“ für Dienste, die mehrere Ergebnisse filtern und zurückgeben.
Selbstbeschreibende Serviceverträge
Verwenden Sie beschreibende Feldnamen in Ihren Anfrage-DTOs Ihre API ist selbstdokumentierender.
Service Implementierung
Dienste können zur Autorisierung mit [Authentifizieren] annotiert werden. Fluent Validation kann zur Eingabevalidierung verwendet werden, indem Validatoren im AppHost registriert werden.
Fehlerbehandlung und Validierung
Ausnahmen oder Fluent Validation können zur Fehlerbehandlung verwendet werden. Validatoren sind nicht-invasiv und können in einem mehrschichtigen Ansatz hinzugefügt werden, ohne die Service-Implementierung oder DTO-Klassen zu ändern.
Das obige ist der detaillierte Inhalt vonWie unterscheidet sich das Request-DTO-Design von ServiceStack von WCF- und Web-API-Ansätzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!