【发布时间】:2021-08-16 15:43:21
【问题描述】:
如果我们有一个搜索 GET REST API 端点,它为当前登录的客户返回一个或零个结果,我想知道正确的响应状态代码是什么,例如:
api/subscriptions?productId=1
根据规范,客户可以订阅一次,也可以不订阅产品。
据我所知,根据惯例,无论结果是否存在,这都应该是200 结果(与返回对象列表的搜索端点的逻辑相同)。我认为在这里返回404 是不正确的,因为这个结果只是可能存在的资源?
我知道这种查询甚至可能看起来不合常规,因为它的目的不仅是获取订阅,而且是检查它是否存在。
我的想法是将响应模型包装在一个对象结果中,状态码为200:
public class ActiveSubscriptionModel
{
public bool HasActiveSubscription { get; set; }
public SubscriptionModel Subscription { get; set; }
}
【问题讨论】:
-
204 没有合适的内容。状态代码可能有点主观。
标签: c# api rest asp.net-web-api http-status