Ich habe gerade angefangen, ServiceStack zu verwenden, um eine API-Beispiele zu implementieren und ging durch eine Reihe von Beispielen, einige Beispiele geben HttpResult aus dem Dienst und andere zurück ResponseDTO, welche wird bevorzugt?Service Stack - Return HttpResult oder ResponseDTO
5
A
Antwort
6
Es wird empfohlen, nur das Antwort-DTO zurückzugeben, was im Grunde bedeutet, dass Sie mit dem Standardverhalten zufrieden sind und Ihr Dienst den Antworttext unverändert in den angeforderten Inhaltstyp zurückgibt. Das HttpResult ist für den Fall, dass Ihr Dienst zusätzliche HTTP-Anpassungen zusätzlich zur Antwort hinzufügen muss (z. B. zusätzliche HTTP-Header) - aber es ändert nicht das Kabelformat des HTTP-Antwortkörpers (es sei denn, Sie ändern den Inhalt -Type, der das ändert, auf was die Antwort serialisiert wird).
Obwohl die HttpResult nur ein Weg ist, um die Antwort anpassen, hier sind ein paar andere:
public class HelloService : Service
{
public object Get(Hello request)
{
//1. Returning a custom Response Status and Description with Response DTO body:
var responseDto = ...;
return new HttpResult(responseDto, HttpStatusCode.Conflict) {
StatusDescription = "Computer says no",
};
//2. Throw or return a HttpError:
throw new HttpError(System.Net.HttpStatusCode.Conflict, "SomeErrorCode");
//3. Modify the Request's IHttpResponse
base.Response.StatusCode = (int)HttpStatusCode.Redirect;
base.Response.AddHeader("Location", "http://path/to/new/uri");
}
//4. Using a Request or Response Filter
[AddHeader(ContentType = "text/plain")]
public string Get(Hello request)
{
return "Hello, {0}!".Fmt(request.Name);
}
}
Siehe Customize HTTP Responses Wiki für weitere Informationen.
Verwandte Themen
- 1. Service Stack inject Objekt
- 2. C++ return reference/stack memory
- 3. SSL auf Service-Stack
- 4. Service-Stack-Unterstützung für WIF
- 5. callback() oder return callback()
- 6. Angular Service Definition: Service oder Fabrik
- 7. Lokaler Service oder Remote-Service?
- 8. Return Aufgabe oder warten und ConfigureAwait (false)
- 9. Filter Return True oder False
- 10. Service Stack Redis erneut verbinden nach Redis Server Neustart
- 11. Leistungsproblem, Stack, Heap oder Prototypmuster?
- 12. Return
- 13. überprüfen Service läuft oder nicht
- 14. Mehrere Versionen von REST-Web-Service - Implementierungsfehler
- 15. Service-Stack-Sitzung nach dem Hochladen der Datei verloren
- 16. PHP-Soap-Service evenlope <return> Element
- 17. Datenbank-Return-Records als Objekt oder Array?
- 18. Java private Methode 'return' oder 'set value'
- 19. SET NOCOUNT AUS oder RETURN @@ ROWCOUNT?
- 20. return false oder e.preventdefault funktioniert nicht
- 21. Starten des JVM-REST-Service, welchen Stack soll ich verwenden?
- 22. seltsame Verhalten mit f # Klasse mit redis Service Stack lib
- 23. Java Primitive Datentyp auf Stack oder Heap?
- 24. Ist Stack in CPU oder RAM?
- 25. Schieben mov oder lea zu stack
- 26. Ist es auf dem Stack oder Heap?
- 27. C Array Instanziierung - Stack- oder Heap-Zuordnung?
- 28. Warteschlange oder Stack mit Standardwerten initialisieren?
- 29. ArrayList oder Array-Stack in Android
- 30. Warum std :: stack oder std :: queue?
Danke für die schnelle Antwort –