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进行更改,而不会破坏与现有客户端的兼容性

相关推荐
GetcharZp11 小时前
抛弃低效SSH!这套Ansible+Web可视化神器,让你天天准点下班!
后端
weixin_4462608514 小时前
HACO:面向动态部署环境的对冲式智能计算可靠多智能体调度框架
后端·python·flask
ttwuai15 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
用户83562907805115 小时前
Python 实现 Excel 页面布局与打印设置自动化
后端·python
用户99314415798415 小时前
微服务框架中获取用户信息
后端
xuanWb16 小时前
手写一个 LLM API 网关:Anthropic 与 OpenAI 协议转换的完整实现
后端
苍何16 小时前
给 Codex 换皮肤这门生意,被我开源了
后端
用户83562907805116 小时前
Python 实现 Excel 命名范围(Named Range)的创建与管理
后端·python
程序员David16 小时前
我让 Claude 从架构文档一路干到代码,踩了三个坑才摸清边界
后端