在Spring Boot中创建一个能够处理不同请求结构(JSON)的REST API(单端点)是完全可行的。这通常涉及到使用Spring MVC的注解来定义控制器和处理方法,以及使用Java的泛型和自定义验证逻辑来处理不同的请求体。
以下是一个简单的示例,展示如何在Spring Boot中创建一个能够处理不同JSON请求结构的REST API端点。
public class RequestA {
private String fieldA;
// getters and setters
}
public class RequestB {
private int fieldB;
// getters and setters
}
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api")
public class MyController {
@PostMapping("/handle")
public String handleRequest(@RequestBody Object requestBody) {
if (requestBody instanceof RequestA) {
// 处理RequestA类型的请求
} else if (requestBody instanceof RequestB) {
// 处理RequestB类型的请求
}
return "Success";
}
}
为了更严格地验证请求体,可以使用Spring的@Valid
注解和自定义验证器。
import javax.validation.Valid;
@PostMapping("/handle")
public String handleRequest(@Valid @RequestBody Object requestBody) {
// 处理请求
}
@Valid
注解进行验证,但请求体不符合验证规则,同样会抛出异常。可以通过捕获这些异常并返回适当的错误响应来解决。请注意,上述示例代码仅用于演示目的,实际应用中可能需要更复杂的逻辑和错误处理。
领取专属 10元无门槛券
手把手带您无忧上云