asp.net-web-api – 返回Web API中的错误
|
我正在使用ASP.NET Web API开发一个全新的REST API.来自WCF背景,我觉得为我的API创建“错误合同”. 在这种情况下,我不是在向客户端返回未处理的异常.相反,我专注于客户端不当使用API的错误,特别是那些客户端可以自动创建这些错误并重新提交请求的错误. 我发现的大多数例子都是返回一个字符串,通常是通过抛出一个HttpResponseException,或者至少做一些事情,使得构建一个更加自动化的信息错误字符串的过程:Return custom error objects in Web API 我正在考虑创建一个HttpResponseException,传递一个HttpResponseMessage,其内容设置为我的特定错误合同类型. 尽管如此,我的API也在大量使用自动模型验证,并且这些模型验证错误返回到完全不同的结构. 那么我应该强制我的“错误”与模型验证响应相同的格式?这里最好的做法是什么? 最后,我的API将公开json,xml和协议缓冲区的格式化选项.因此,我真的需要确保我的策略与格式化器无关. 解决方法我写了一篇关于Web API如何处理错误的博文:http://blogs.msdn.com/b/youssefm/archive/2012/06/28/error-handling-in-asp-net-webapi.aspx 它应该有助于回答你的问题.本质上,您有两个选择: >定义你自己的类的错误响应.在这种情况下,您希望确保您的类可以序列化为XML,JSON等.然后可以使用Request.CreateResponse(statusCode,myErrorInstance)发回您的自定义错误.您可能还需要一种将无效模型状态转换为特定错误类型的方法.>使用Web API的错误响应类型:HttpError. HttpError本质上是一个字典< string,object>您可以在HttpError中添加自己的密钥和值.优点很多 – 您的错误会像Web API错误一样,您知道它与所有格式化程序一起使用,您可以避免必须从异常和无效模型状态定义转换的工作.使用HttpError最简单的方法是调用Request.CreateErrorResponse(). (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 实体框架Web配置文件
- asp.net页面中的静态变量
- 验证 – ASP.Net MVC3电子邮件/电话数据注释不起作用
- asp.net-mvc – MVC区域 – 非区域路线解析为区域
- asp.net – 如何在捕获httpwebrequest超时后关闭底层连接
- asp.net-mvc – 使用linq2sql在c#mvc中不显示所选项的多选列
- asp.net-mvc – 使用Visual Studio 2013 Preview调试ASP.NE
- asp.net-mvc – 将WebForm视图引擎标记转换为Razor视图引擎
- Asp.Net,DropDownList,AutoPostBack和Google Chrome
- 编辑并在ASP.NET Web项目中继续
- asp.net-mvc-3 – ASP.NET MVC 3 MSChart错误:此
- asp.net-mvc – 使用Razor视图引擎 – 如何格式化
- 如何使用ASP.NET身份实现多租户用户登录
- 在ASP.net中使用image404和azurereader2
- asp.net-mvc – 在MVC应用程序中ExtensionlessUr
- asp.net – URL重写 – web.config错误
- 实体框架 – 实体框架核心更新许多对许多
- asp.net – MvcHtmlString.ToHtmlString()不编码
- asp.net-mvc – 模型单元测试能否真正独立,如何[
- 一个ASP.Net页面中的多个reCAPTCHA
