java - 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 文件本身的单个配置中读取。
解决方案
根据文档,您可以在级别的注释上使用headers
参数: RequestMapping 文档@RequestMapping
@RestController
在类型级别和方法级别都支持!在类型级别使用时,所有方法级别的映射都继承此标头限制(即在处理程序方法被解析之前检查类型级别的限制)。
推荐阅读
- javascript - 如何使用数组和函数计算 Javascript 中的平均值?
- powershell - Powershell:SendGrid - 使用特定结构发送给多个收件人
- ms-word - 根据受众类型以编程方式高效地更改 Word 文档的文本
- ios - 如何检测用户何时终止应用程序 - Swift
- python - pydrive 不接受来自我的 Google Cloud 帐户的 client_secret.json
- javascript - 使用 Hapi、axios 和 Cheerio 时 JSON 输出中的编码错误
- c# - ASP.NET Core API:添加自定义路由令牌解析器
- http - 有没有办法让 wget 完全模仿浏览器?
- node.js - Node js在后台使用ram
- reactjs - 带有react-draft-wysiwyg的多级formik表单不显示内容