Ho appena iniziato a utilizzare ServiceStack per implementare un campione API e ho analizzato molti esempi, alcuni esempi restituiscono HttpResult dal servizio e altri restituiscono ResponseDTO, quale è il preferito?Service Stack - Restituisce HttpResult o ResponseDTO
5
A
risposta
6
Restituire solo la risposta DTO è preferibile, in pratica significa che si è soddisfatti del comportamento predefinito e il servizio restituirà il corpo della risposta così com'è, serializzato nel tipo di contenuto richiesto.
HttpResult si riferisce a quando il servizio deve aggiungere ulteriori personalizzazioni HTTP oltre alla risposta (ad esempio intestazioni HTTP aggiuntive), ma non modifica il formato filo del corpo della risposta HTTP (a meno che non si modifichi il contenuto -Tipo che cambierà la serializzazione della risposta).
Anche se il HttpResult è solo un modo per personalizzare la risposta, qui ci sono pochi altri:
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);
}
}
Vedi l'Customize HTTP Responses wiki per maggiori informazioni.
Problemi correlati
- 1. Swagger con Service Stack non funzionante
- 2. Service stack e Mocking, qualsiasi tutorial?
- 3. Errore durante la scrittura delle intestazioni quando si restituisce FileInfo HttpResult
- 4. Service o Thread o AsyncTask
- 5. TokenStorage a volte restituisce null in Service
- 6. Rest Web service che restituisce un 404
- 7. Restituisce qualcosa che è allocato nello stack
- 8. Go - Restituisce un puntatore nello stack
- 9. Service Broker o SqlDependency in SqlLocalDb?
- 10. Tutorial o esempi di Google Guava Service?
- 11. Access grailsApplication o Service in groovy class
- 12. È nello stack o heap?
- 13. Service Fabric - Stateful Service Persistence
- 14. Blocco iOS senza errore o Stack Trace
- 15. Stack o coda della cronologia degli allarmi?
- 16. Istanziazione array C - Assegnazione stack o heap?
- 17. Web Service: singola stringa parametro o tipo complesso Parametri
- 18. Verificare le precondizioni nel livello Controller o Service
- 19. Validazione e in Service Layer o Business Objects?
- 20. MediaPlayer in thread separati utilizzando Service o IntentService
- 21. I metodi Service Layer dovrebbero prevedere istanze o id?
- 22. Quando si utilizza il Local Service Service Locator?
- 23. BlackBerry 10 Background Service
- 24. AngularJS: controller vs service
- 25. OAuth Simple Service Provider
- 26. onKeyEvent & Accessibility Service
- 27. BroadcastReceiver vs Service
- 28. py2exe windows service problem
- 29. Angular2: Central Session Service?
- 30. Sublime Text 2 Service
Grazie per la risposta rapida –