SpringBoot4中api版本控制

前言

Springboot4版本已经于这个11月发布了正式版本,更新了一堆新属性,其中有一个是api版本控制

api版本控制

Springboot4支持在请求注解中加上version

typescript 复制代码
@Slf4j
@RestController
public class IndexController {


    @GetMapping(version = "1")
    public String hello() {
        log.info("hello");
        return "hello";
    }

    @GetMapping(version = "2")
    public void sayHello() {
        log.info("sayHello======================");
    }


    @GetMapping("/test")
    public void sayHello1() {
        log.info("sayHello======================");
        User user = User.builder().id(1L).name("aaa").build();
        log.error(JsonMapper.builder().build().writeValueAsString(user));
    }

}

单独启动会报错

需要加个配置

typescript 复制代码
@Configuration
public class ApiVersionConfig implements WebMvcConfigurer {

    // 配置版本策略
    @Override
    public void configureApiVersioning(ApiVersionConfigurer configurer) {
        configurer.setVersionRequired(false)
                .useQueryParam("version");
    }
}

这样就能访问

ini 复制代码
http://ip:端口/?version=1

输出结果为

ini 复制代码
http://ip:端口/?version=2

总结

通过 API 版本控制,你可以对API进行更改,而不会破坏与现有客户端的兼容性

相关推荐
nnerddboy1 小时前
Rust教程04:引用、借用与切片
开发语言·后端·rust
Rain的Java大神之路1 小时前
线上接口负载满了如何解决
java·数据库·redis·后端·缓存·面试·架构
weixin_431600443 小时前
NestJS 入门(7):生命周期钩子——构造函数和 `OnModuleInit` 差在哪?
前端·后端·学习·node.js·nest.js
小强库计算机毕业设计3 小时前
基于 Spring Boot + Vue3 的校园管理系统
java·spring boot·后端·项目实战·管理系统·技术分享·校园管理系统实战
canonical_entropy3 小时前
关于《Mission Driver:Loop Engineering 的一种通用参考实现》的补充说明
后端·agent·ai编程
__zRainy__3 小时前
Node系列 · Node基础:Node.js 概述
后端·node.js
星火10244 小时前
【LangChain4j系列06】ChatMemory 对话记忆管理
人工智能·后端
netCode4 小时前
Git一文带你理解如何使用
后端
睡觉时不困4424 小时前
12.LangChain 1.0+ 第二篇:Prompt、结构化输出与 LCEL 组件组合.发布清单
后端
SomeB1oody4 小时前
【RustyML入门】2.13. 孤立森林
开发语言·后端·机器学习·rust·教程