gpt4 book ai didi

servicestack - 服务堆栈 - 返回 HttpResult 或 ResponseDTO

转载 作者:行者123 更新时间:2023-12-04 18:43:30 26 4
gpt4 key购买 nike

刚开始用ServiceStack实现一个API示例,经历了很多例子,有的从服务返回HttpResult,有的返回ResponseDTO,哪个更好?

最佳答案

只返回响应 DTO 是首选,这基本上意味着您对默认行为感到满意,您的服务将按原样返回响应正文,序列化为请求的内容类型。

HttpResult 用于当您的服务除了响应之外还需要添加额外的 HTTP 自定义(例如额外的 HTTP header )时 - 但它不会更改 HTTP 响应正文的线格式(除非您更改 Content-Type更改响应序列化的内容)。

尽管 HttpResult 只是自定义 Response 的一种方式,但还有其他一些方式:

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维基了解更多信息。

关于servicestack - 服务堆栈 - 返回 HttpResult 或 ResponseDTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19465264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com