【发布时间】:2013-12-19 23:48:21
【问题描述】:
我是 .NET Web api 的新手。但我无法弄清楚返回状态代码时的最佳做法应该是什么。我已经按照creating a web api that supports crud operations 上的教程了解了它是如何工作的。
我有一个规范,其中对每个请求的响应都会返回一个状态代码以及其他数据,如果需要,我可以更改规范,但我无法确定返回状态代码并返回所有请求的数据或仅自行返回数据。
例如,如果我在未经身份验证的情况下向 GetAllCarManufacturers 发出请求,我将返回 1 的自定义 statusCode(表示未经过身份验证)和 message "User is not authenticated."。但如果我通过了身份验证,我想发回statusCode 或0(表示成功)和所有汽车制造商。这似乎与本教程的组织方式背道而驰,因为只有汽车制造商在没有任何额外数据的情况下被送回。这让我相信传递 statusCode 不是正确的做法。
我在示例 crud 演示中看到抛出 HttpResponseExceptions 将 HttpStatusCode 设置为某个值(参见下面的代码)。我应该使用它而不是返回我自己的状态码吗?但我担心的是它没有足够的不同状态代码来匹配我的自定义场景。
// Setting the HTTPStatusCode example.
throw new HttpResponseException(HttpStatusCode.NotFound);
【问题讨论】:
-
如果您打算使用 HTTP,请不要发明自己的状态码。您必须使用 HTTP 定义的。如果您想提供更多详细信息,请查看类似 tools.ietf.org/html/draft-nottingham-http-problem-05 的内容
标签: asp.net-web-api