如何使用.NET Web API处理状态代码?

时间:2013-12-19 15:38:11

标签: asp.net-web-api

我是.NET web api的新手。但我无法弄清楚返回状态代码时应该采用的最佳做法。我已经按照creating a web api that supports crud operations上的教程来了解它是如何工作的。

我有一个规范,其中对每个请求的响应返回状态代码以及其他数据,如果需要我可以更改规范但是如果返回状态代码并且还返回所有请求的数据或仅返回它自己的数据。

例如,如果我在未经过身份验证的情况下向GetAllCarManufacturers发出请求,则会返回自statusCode1(表示未经过身份验证)和message {{ 1}}。但如果我通过身份验证,我想发回"User is not authenticated." statusCode(表示成功)和所有汽车制造商。这似乎违反了教程的组织方式,因为只有汽车制造商在没有任何其他数据的情况下被送回。这让我相信传递一个statusCode是不正确的事情。

我在示例crud演示中看到抛出了HttpResponseExceptions,它将HttpStatusCode设置为某个值(请参阅下面的代码)。我应该使用它而不是返回我自己的状态代码吗?但后来我担心的是它没有足够的不同状态代码来匹配我的自定义方案。

0

1 个答案:

答案 0 :(得分:1)

.NET Web API为支持REST接口的服务器的HTTP调用设置了约定。因此,如果遵循约定,则应返回HTTP状态代码,以指示服务器处理请求时发生的情况。

HTTP状态代码是HTTP规范的一部分,可以是found here

使用HTTP状态代码有很多好处。一个是HTTP状态代码是一个标题,因此客户端不必查看响应的内容以找出发生的情况。

因此,返回自定义状态代码(比如0或1)对HTTP客户端来说并不是非常有用,如果他们期望从您的界面获得RESTful体验。