NET Web API如何处理状态码?

问题描述 投票:0回答:1

我是.NET Web API的新手。 但是我不知道返回状态码时的最佳做法是什么。 我已经按照有关创建支持crud操作的Web api的教程进行了操作 ,以很好地了解它们的工作原理。

我有一个规范,其中对每个请求的响应都将返回状态码以及其他数据,我可以根据需要更改规范,但是如果能很好地返回状态码并返回所有请求的数据,则无法解决。仅自行返回数据。

例如,如果我未通过身份验证就向GetAllCarManufacturers发送请求, GetAllCarManufacturers返回的自定义statusCode1 (表示未通过身份验证),并message "User is not authenticated." 。 但是,如果我验证我想发回statusCode0 (表示成功)和所有的汽车制造商。 这似乎与本教程的组织方式背道而驰,因为仅将汽车制造商退回而没有任何其他数据。 这使我相信传递statusCode并不是正确的事情。

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

// Setting the HTTPStatusCode example.
throw new HttpResponseException(HttpStatusCode.NotFound);
asp.net-web-api
1个回答
1
投票

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

HTTP状态代码是HTTP规范的一部分,可以在此处找到

使用HTTP状态代码有很多好处。 一种是HTTP状态代码是标头,因此客户端不必查看响应的内容即可了解发生了什么。

因此,如果HTTP客户端希望从您的界面获得RESTful体验,则返回自定义状态代码(例如0或1)对于HTTP客户端不是很有用。

© www.soinside.com 2019 - 2024. All rights reserved.