实体具有无效状态的业务流程异常,REST API中返回什么http状态

实体具有无效状态的业务流程异常,REST API中返回什么http状态,rest,spring-mvc,Rest,Spring Mvc,假设我想在RESTful API中对流程建模,而Campaign只有在状态为DRAFT时才能激活 我可以定义MVC映射/campetings/{id}/activate和我可以拥有的内部方法 if (!campaign.isDraft()) { throw new InvalidStatusException(campaign.getStatus()); } 我应该映射到哪个HTTP状态InvalidStatusException 我的印象是,500间隔服务器错误是不可接受的看起来很合

假设我想在RESTful API中对流程建模,而
Campaign
只有在状态为
DRAFT
时才能激活

我可以定义MVC映射
/campetings/{id}/activate
和我可以拥有的内部方法

if (!campaign.isDraft()) {
    throw new InvalidStatusException(campaign.getStatus());
}
我应该映射到哪个HTTP状态
InvalidStatusException


我的印象是,500间隔服务器错误是不可接受的

看起来很合适。您也可以使用或。

因为违反了业务域规则(如果我理解正确-活动不能被激活两次),我认为将
403(禁止)
与人类可读的错误文本消息(如“活动必须是草稿”)结合使用应该是好的