首页 > 解决方案 > 【HTTP响应码】一个REST API是否只响应一个成功码?

问题描述

背景:我将 Java 与 Spring 引导框架一起使用。我有一个 REST API,其输入参数是一个 int 标志,当标志为 0 时,API 将给出响应“200”,当标志为 1 时,响应为“204”

[编辑] 现在,我可以给出“200”的响应。但我不知道如何通过使用 REST API 的条件来返回“200”和“204”。

问题:REST API 可以返回不同的成功代码吗?如果可以,我该怎么做?

谢谢。

标签: rest

解决方案


Spring Boot 允许您通过编辑/创建 @RestControllers 来自定义 HTTP 响应:

@RestController
public class DoStuffController {
    @RequestMapping(value = "/do-stuff", method = RequestMethod.POST)
    public void doStuff(@RequestParam int flag, HttpServletResponse response) {
       if(flag == 0){
          response.setStatus(HttpStatus.OK);
       } else {
          response.setStatus(HttpStatus.SC_NO_CONTENT);
       }
    }
}

以上内容未经测试 - 但应通过返回 HTTP 200 或 204 对 POST /do-stuff?flag=[0|1] 做出反应。


推荐阅读