首页 > 解决方案 > Rest api 标头基础版本信息保存在 YAML 文件中

问题描述

我已经实现了基于标头的 rest Api 版本控制,如下面代码所示,在我的 Spring Boot 应用程序中的一个控制器中,但为此我必须在方法名称上方注释相同的内容,如下所示,我已将标头添加为 X -API-版本=1

@GetMapping(value = "/{id}" ,  headers = "X-API-VERSION=1")
    public ResponseEntity<DomainDTO> retrieveDomainById(@PathVariable Integer id) throws ResourceNotFoundException {

        try {
            logger.info("inside domain controller");
            return ResponseEntity.ok(domainService.findById(id));
        } catch (ResourceNotFoundException e) {
            //log.error(e.getMessage());
            throw e;
        }

但我的问题是我可以在其余控制器级别本身添加相同的内容,这样我就不必为每个方法手动添加它,还请让我知道我可以将它自己的标题的值保留在 yaml 文件中那个特定的控制器,以便配置如果需要更改,那么在这种情况下,它将从来自 YAML 文件本身的单个配置中读取。

标签: javarestspring-boot

解决方案


根据文档,您可以在级别的注释上使用headers参数: RequestMapping 文档@RequestMapping@RestController

在类型级别和方法级别都支持!在类型级别使用时,所有方法级别的映射都继承此标头限制(即在处理程序方法被解析之前检查类型级别的限制)。


推荐阅读