Dynami c значения в тегах объекта swagger - PullRequest
0 голосов
/ 29 мая 2020

Я хочу предоставить значения из файла свойств в разделе тегов swagger для ex: tags = "$ {metri c .tags}", но не могу получить из файла свойств. для значений работает нормально value = "$ {metri c .value}".

1 Ответ

0 голосов
/ 03 июня 2020
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);

        }
...