You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置API使其返回响应状态码而非新增行数据?

如何让POST请求仅返回状态码而无响应体内容

要实现POST请求完成后只返回状态码(如200、500、404)、不返回新增数据的响应体,核心是在后端处理请求的代码中,不输出实体数据,直接返回对应状态码的空响应。以下是几种主流后端技术栈的实现示例:

ASP.NET Core

在控制器的Action方法中,避免返回带实体对象的Ok(实体),改用无参数的Ok()或指定状态码的StatusCode()方法:

[HttpPost("api/Abc")]
public IActionResult CreateAbc([FromBody] AbcModel model)
{
    try
    {
        // 执行数据新增逻辑
        _abcRepository.Add(model);
        // 仅返回200状态码,无响应体
        return Ok();
    }
    catch (Exception ex)
    {
        // 记录错误日志
        return StatusCode(500);
    }
}
// 若需返回404(比如关联资源不存在)
// return NotFound();

Spring Boot

将接口方法的返回类型设为ResponseEntity<Void>,通过build()方法构建空响应体的状态码响应:

@PostMapping("/api/Abc")
public ResponseEntity<Void> createAbc(@RequestBody AbcModel model) {
    try {
        abcService.save(model);
        // 返回200状态码,无响应体
        return ResponseEntity.status(HttpStatus.OK).build();
    } catch (ResourceNotFoundException e) {
        return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
    } catch (Exception e) {
        // 日志记录
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
    }
}

Node.js (Express)

使用res.sendStatus()直接发送指定状态码,该方法会自动生成空响应体;或用res.status(code).end()手动终止响应:

app.post('/api/Abc', async (req, res) => {
    try {
        // 执行数据插入操作
        await AbcModel.create(req.body);
        // 发送200状态码,无响应体
        res.sendStatus(200);
    } catch (err) {
        if (err.name === 'ResourceNotFoundError') {
            res.sendStatus(404);
        } else {
            res.sendStatus(500);
        }
    }
});

通用说明

不管使用哪种技术栈,只要确保响应终止时不输出任何实体内容,Postman就能收到仅含状态码的响应,响应体区域会显示为空。

内容的提问来源于stack exchange,提问作者hakuna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 22:10:49