首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用ServiceStack返回具有特定状态代码的自定义DTO的选项有哪些?

使用ServiceStack返回具有特定状态代码的自定义DTO的选项有哪些?
EN

Stack Overflow用户
提问于 2017-04-05 04:37:15
回答 1查看 923关注 0票数 2

我们使用ServiceStack来构建web。在这种情况下,我希望能够从API端点返回一个400 (BadRequest)的响应,并提供一些额外的数据来指示错误的具体原因。

我所知道的返回特定状态代码的两种方法是:

  1. 抛出一个异常。
  2. 返回HttpResult的一个实例。

我宁愿不返回HttpResult的实例。这将要求我使方法返回类型更通用(当前返回类型是特定的响应DTO),还有其他原因(与我们使用ServiceStack有关),这是有问题的。

抛出异常的情况很奇怪。根据响应的形式,即使在异常情况下,ServiceStack也使用自定义DTO (而文档确认了这一点)。HttpError异常类具有一个Response属性,该属性对应于用于发出响应的DTO,但将Response属性设置为自定义DTO的实例并不具有预期效果。它只影响响应DTO上的ResponseStatus属性的值。DTO上的其他属性未初始化,就好像ServiceStack生成了响应DTO的新实例并使用它(但是从提供的DTO设置其ResponseStatus属性)。

我说的都是对的吗?是否还有另一种没有我前面提到的缺点的选择来形成响应?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-05 06:54:31

如果要用附加元数据来修饰响应,请在HttpResult中返回响应--这就是类的全部用途。直接返回的响应DTO的HTTP响应体与包装在HttpResult中的HTTP响应体没有明显的区别。

或者,您可以直接修改base.Response,查看定制HTTP响应上的文档。

抛出异常只返回HTTP错误响应。ServiceStack具有隐式结构化错误处理,其中它捕获从任何响应DTO提取的ResponseStatus中的错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43231413

复制
相关文章
面试题13(一个具有生命的线程有哪些状态)
考点:考察求职者对线程的理解 出现频率:★★★ 【面试题解析】线程的状态表示线程在某时间段内进行的活动和将要进行的任务程有创建、就绪、运行、阻塞、死亡5种状态。一个具有生命的线程,总是处于以下5状态之一。 1.创建状态 实例化 Thread对象,但没有调用 start()方法时的状态。 例如: ThreadTest tt = new ThreadTest (); 或者 Thread t = new thread ( tt); 此时虽然创建了 Thread对象,但是它们暂时不能通过 isAlive ( )测
Java学习
2018/04/18
6300
常见的HTTP状态码有哪些
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。
葆宁
2019/04/18
1.1K0
常见的HTTP状态码有哪些?
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。
葆宁
2022/05/06
7110
使用 ServiceStack 构建跨平台 Web 服务
本文主要来自MSDN杂志《Building Cross-Platform Web Services with ServiceStack》,Windows Communication Foundation (WCF) 是一个相当优秀的服务框架,当我们讨论跨平台的服务的时候,虽然WCF对WebService的支持还行,在面对一些高级应用的不太好,微软重新发展了ASP.NET WebAPI框架,关于这两个框架的讨论可以看我另外一篇文章《WCF和ASP.NET Web API在应用上的选择》 。在讨论跨平台的Web
张善友
2018/01/29
1.7K0
DTO返回JSON时,不展示某字段;DTO返回JSON时,更改某展示字段的key
//DTO返回JSON时,不展示某字段 @JsonIgnore private String addresses; //DTO返回JSON时,更改某展示字段的key @JsonProperty(value = "addresses") public final CalendarVideoAddressDTO getAddressesJSON() { if (addresses != null) { return JSONObject.pars
qubianzhong
2019/04/22
2.3K0
多线程有哪些状态?
多线程有六种状态:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED。
用户9919783
2023/02/28
5260
多线程有哪些状态?
Java 线程状态有哪些?
1. 线程 start 方法执行后,并不表示该线程运行了,而是进入就绪状态,意思是随时准备运行,但是真正何时运行,是由操作系统决定的,代码并不能控制,
水货程序员
2018/11/13
1.5K0
使用ServiceStack构建Web服务
提到构建WebService服务,大家肯定第一个想到的是使用WCF,因为简单快捷嘛。首先要说明的是,本人对WCF不太了解,但是想快速建立一个WebService,于是看到了MSDN上的这一篇文章 Building Cross-Platform Web Services with ServiceStack,所以这里简要介绍一下如何使用ServiceStack快速建立一个WebService服务。 当然,在开始之前,首先要说明一下ServiceStack是个什么东西。 在国内用ServiceStack的似乎很少
庞小明
2018/03/07
1.7K0
使用ServiceStack构建Web服务
哪里有自动的应用性能监控?具有哪些特点?
如果想要实现企业应用程序的正常运行,必须要对应用程序进行一定的性能监控,这样才能保证应用程序在后续的使用过程中,出现故障的概率大大降低,那么哪里有自动的应用性能监控呢?自动的应用性能监控具有哪些特点?
用户8715145
2021/12/01
1.4K0
常见的HTTP状态码有哪些「建议收藏」
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说常见的HTTP状态码有哪些「建议收藏」,希望能够帮助大家进步!!!
Java架构师必看
2022/09/18
1.1K0
常见的HTTP状态码有哪些「建议收藏」
常见http状态码有哪些(常用的http响应状态码)
HTTP状态码(HTTP Status Code)是一种表示网页服务器响应状态的三位数字编码。通过这些数字,可以简化状态的表达。状态码有十种,其中首位数字为1-5。根据这5个数字,状态码可以分为5类。1XX表示请求正在处理;2XX表示请求已经成功处理;3XX表示重定向;4xx表示请求错误;5xx表示服务器错误。
全栈程序员站长
2022/07/25
1.2K0
java枚举自定义返回状态码
2.设计枚举类,实现上述接口,定义了具体的异常信息和状态码,当有新的状态码时,只需要添加一条对应的信息即可
用户7886150
2021/04/22
2.4K0
画图工具有哪些功能?画图工具可以打开的文件类型有哪些?
以前人们如果想要画画的话,必须要有画笔和画板的,而如今随着互联网行业的发展,在电脑或者手机等设备上面也可以画画了,不过画画需要使用一些工具,比如一般电脑系统中自带的画图工具,画图工具的使用方式非常简单,大家可以通过鼠标和键盘控制画笔,可以画出各种各样的图案,对于人们日常生活的帮助是比较大的,而且还有一些特殊的画图工具拥有更为方便的功能,可以轻易画出很多复杂的图画。那么画图工具有哪些功能?画图工具可以打开的文件类型有哪些?下面小编就为大家来详细介绍一下。
用户8739405
2021/07/09
6.5K0
面试突击33:线程池有哪些状态?状态是如何转换的?
在 Java 中,线程池的状态和线程的状态是完全不同的,线程有 6 种状态:NEW:初始化状态、RUNNABLE:可运行/运行状态、BLOCKED:阻塞状态、WAITING:无时限等待状态、TIMED_WAITING:有时限等待状态和 TERMINATED:终止状态。而线程池的状态有以下 5 种:
磊哥
2022/05/09
2.5K0
面试突击33:线程池有哪些状态?状态是如何转换的?
干掉 “重复代码” 的技巧有哪些
软件工程师和码农最大的区别就是平时写代码时习惯问题,码农很喜欢写重复代码而软件工程师会利用各种技巧去干掉重复的冗余代码。
每周聚焦
2023/01/03
4410
面试突击53:常见的 HTTP 状态码有哪些?
HTTP 状态码是服务器端返回给客户端的响应状态码,根据(HTTP)状态码我们就能知道服务器端想要给客户端表达的具体含义,比如 200 就表示请求访问成功,500 就表示服务器端程序出错等。 HTTP 状态码可分为 5 大类:
磊哥
2022/06/02
6140
React自定义hook之useMountedRef返回组件的挂载状态
useRef 返回一个可变的 ref 对象,其 .current 属性被初始化为传入的参数(initialValue)。返回的 ref 对象在组件的整个生命周期内保持不变。
henu_Newxc03
2022/05/19
9570
http返回错误状态_状态码返回0
代码里面我刚刚开始的时候使用的是HttpPost发的请求,另外一边呢,刚刚开始的时候只有一个get请求在那等着呢。
全栈程序员站长
2022/11/01
2.5K0
http返回错误状态_状态码返回0
点击加载更多

相似问题

具有继承的ServiceStack DTO

20

ServiceStack自定义ErrorResponse DTO

11

如何用JSON在TimeZoneInfo中返回具有ServiceStack属性的DTO

21

ServiceStack DTO组件

10

具有可变数量属性的ServiceStack请求DTO

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文