java - 如何在 Spring Boot 中有条件地返回自定义响应正文和状态?

标签 java spring-boot

我有一个 Spring Boot 应用程序和此处理程序方法:

@PostMapping("/{id}")
public User create(@PathVariable("id") Long id, @RequestBody User user) {
    if (id > 0 && id < 10) {
        String fullName = user.getFirstName() + " " + user.getLastName();
        user.setId(id);
        user.setFullName(fullName);
    } else {
        //Return 401 ?
    }
    
    return userService.save(user);
}

如何返回 401 错误?

响应 JSON 应如下所示:

{
    "msg": "empty",
    "status" : "401"
}

最佳答案

您可以使用 ResponseEntity 来做到这一点.

您需要将方法返回类型更改为 ResponseEntity<?> ,并将方法主体更改为:

if (id > 0 && id < 10) {
    String fullName = user.getFirstName() + " " + user.getLastName();
    user.setId(id);
    user.setFullName(fullName);
    return new ResponseEntity<>(userService.save(user), HttpStatus.OK);
}

return new ResponseEntity<>(yourJsonObject, HttpStatus.UNAUTHORIZED);

Java Spring rest return unauthorized json

关于java - 如何在 Spring Boot 中有条件地返回自定义响应正文和状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68637684/

相关文章:

spring - 如何从 Spring Boot 中的公共(public)类中获取 session ?

java - 如何在java中将 double 值四舍五入到最接近的0.05

java - C++ 与托管中这些指针错误的后果

java - Spring Boot 中是否可以更改基于时间的日志级别

java - Springboot 为什么设置 spring-boot-starter-tomcat 为提供的

java - 引用 swagger-UI 的外部 URL

java - 在 Apache Spark (Java) 中按多个值对 JavaRDD 元组进行排序

Java : autoboxing of an Object array of integers, 从 LinkedList.toArray() 转换为 int

java - 如何在运行时设置 java.net.preferIPv4Stack=true?

java - 来自多个文件的Spring数据多个数据源