5
APIサンプルを実装するためにServiceStackを使い始めたばかりで、多くの例があります。サービスからHttpResultを返す例もあれば、ResponseDTOを返す例もあります。サービススタック - HttpResultまたはResponseDTOを返す
APIサンプルを実装するためにServiceStackを使い始めたばかりで、多くの例があります。サービスからHttpResultを返す例もあれば、ResponseDTOを返す例もあります。サービススタック - HttpResultまたはResponseDTOを返す
応答DTOだけを返すことは、基本的にはデフォルトの動作に満足していることを意味し、サービスは応答本体をそのまま返し、要求されたContent-Typeにシリアル化されます。
HttpResultは、レスポンス(HTTPヘッダーなど)に加えて追加のHTTPカスタマイズを追加する必要がある場合に使用しますが、HTTPレスポンス本体のワイヤ形式は変更しません-Typeは、応答がシリアライズされる内容を変更します)。
HttpResultはここで、レスポンスをカスタマイズするただ一つの方法ですが、いくつかの他、次のとおりです。
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);
}
}
は、詳細はCustomize HTTP Responses Wikiを参照してください。
迅速な対応をありがとう –