spring-boot - 招摇的标签对象中的动态值
问题描述
我想在 swagger 的标签部分提供属性文件中的值,例如: tags = "${metric.tags}" 但无法从属性文件中获取。对于值,它工作正常 value = "${metric.value}"。
解决方案
I have made plugin configuration in swagger configuration file and it started working as per my requirement.
@Bean
public TranslationOperationBuilderPlugin translationPlugin() {
return new TranslationOperationBuilderPlugin();
}
@Order(Ordered.LOWEST_PRECEDENCE)
public static class TranslationOperationBuilderPlugin implements OperationBuilderPlugin {
@Autowired
Environment environment;
@Override
public boolean supports(DocumentationType delimiter) {
return true;
}
@Override
public void apply(OperationContext context) {
String summary = context.operationBuilder().build().getSummary();
String notes = context.operationBuilder().build().getNotes();
Set<String>tags = context.operationBuilder().build().getTags();
Set<String>translatedTags= new HashSet<>();
for(String tag:tags) {
if(environment.getProperty(tag)!=null) {
translatedTags.add(environment.getProperty(tag));
}else {
translatedTags.add(tag);
}
}
ModelReference modelReference= context.operationBuilder().build().getResponseModel();
AllowableListValues allowableValues=(AllowableListValues) modelReference.getAllowableValues();
if(allowableValues!=null && allowableValues.getValues()!=null) {
List<String> translatedAllowables=new ArrayList<>();
for(String value:allowableValues.getValues()) {
if(environment.getProperty(value)!=null) {
translatedAllowables.add(environment.getProperty(value));
}else {
translatedAllowables.add(value);
}
}
allowableValues.getValues().removeAll(allowableValues.getValues());
allowableValues.getValues().addAll(translatedAllowables);
}
//String summaryTranslated = apiDescriptionPropertiesReader.getProperty(summary);
//String notesTranslated = apiDescriptionPropertiesReader.getProperty(notes);
//context.operationBuilder().summary(summaryTranslated);
//context.operationBuilder().notes(notesTranslated);
context.operationBuilder().tags(translatedTags);
}
推荐阅读
- c# - EntityFramework Core 中的数据库更新异常
- c# - 使用 Roslyn 分析器查找 DateTime.Now/Today/UtcNow 的所有用法
- php - 为具有多个参数的路由生成 URL 时结果不符合预期
- sql - 如何从另一个表中插入 Select Max
- matlab - MATLAB 函数 norm() 有什么作用?
- apache-kafka - SQS 和 Kafka 是一样的吗?
- laravel - 如何更改 laravel 通知用户模型接收器?
- c - 结构定义
- node.js - Node.js-TypeScript:异步调用外部 API 的最佳实践
- regex - 您能否让我知道如何在 splunk 中为 ABC1234 或 abc1234a 或 abc1234s 编写正则表达式?