gpt4 book ai didi

spring - 如何返回我的自定义 json 文件而不是生成 Spring Boot 的默认 json 文件?

转载 作者:行者123 更新时间:2023-12-01 15:03:24 25 4
gpt4 key购买 nike

我有一个用于授权的休息 Controller :

@RestController
class AuthController {

@PostMapping("/sign-up")
fun signUp(@RequestBody signUpRequest: SignUpRequest): ResponseEntity<String> {
some code here..
}
}
signUp方法获取 SignUpRequest模型作为请求体。 SignUpRequest模型是:
enum class Role {
@JsonProperty("Student")
STUDENT,
@JsonProperty("Tutor")
TUTOR
}

data class SignUpRequest(
val role: Role,
val email: String,
val password: String
)

当我做 /sign-up使用 JSON 发布请求:
{
"role": "asdf",
"email": "",
"password": ""
}

它返回一个由 spring boot 生成的答案:
{
"timestamp": "2020-02-12T05:45:42.387+0000",
"status": 400,
"error": "Bad Request",
"message": "JSON parse error: Cannot deserialize value of type `foo.bar.xyz.model.Role` from String \"asdf\": not one of the values accepted for Enum class: [Student, Tutor]; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `foo.bar.xyz.model.Role` from String \"asdf\": not one of the values accepted for Enum class: [Student, Tutor]\n at [Source: (PushbackInputStream); line: 3, column: 10] (through reference chain: foo.bar.xyz.model.SignUpRequest[\"role\"])",
"path": "/sign-up"
}

问题是:如何返回我的自定义 JSON 而不是默认生成的 JSON?

我想返回我的自定义 JSON,例如:
{
"result": "Invalid user data are given",
"errors": [
{
"fieldName": "ROLE",
"text": "Given role does not exist"
},
{
"fieldName": "EMAIL",
"text": "EMAIL is empty"
}
]
}

最佳答案

我建议您创建 ErrorContrller 来生成自定义 json 映射作为响应。然后当您在注册方法中捕获错误时,调用 ErrorContrllers 方法。
您可以从这里找到信息 link

关于spring - 如何返回我的自定义 json 文件而不是生成 Spring Boot 的默认 json 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60182705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com