rest - 【HTTP响应码】一个REST API是否只响应一个成功码?
问题描述
背景:我将 Java 与 Spring 引导框架一起使用。我有一个 REST API,其输入参数是一个 int 标志,当标志为 0 时,API 将给出响应“200”,当标志为 1 时,响应为“204”
[编辑] 现在,我可以给出“200”的响应。但我不知道如何通过使用 REST API 的条件来返回“200”和“204”。
问题:REST API 可以返回不同的成功代码吗?如果可以,我该怎么做?
谢谢。
解决方案
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] 做出反应。
推荐阅读
- pyspark - 在 Spark 数据帧中执行 MapReduce
- java - 在 javafx 项目中播放音乐的方法不会导致音乐播放
- python - 可以用什么代替嵌套循环来加速
- c# - C#嵌套类与没有多态性的子类之间的区别
- java - 谁能确定我在处理这个 API 请求时做错了什么?
- php - Laravel Nova:修改内容并删除图像时从磁盘中删除图像
- java - 如何在 Java Android 中用自己的对象编写 if 语句?
- regex - 正则表达式匹配特定 N 位数字序列中的数字
- amazon-web-services - 谁能告诉我如何在 AWS AMPLIFY 中添加 50 多个子域?
- python - 具有身份相等性的 Dict 或 WeakKeyDictionary -- 包装不可散列的对象以检查身份