Метрики с неправильными тегами при использовании кода Swagger/OpenAPI с RestTemplateJAVA

Программисты JAVA общаются здесь
Anonymous
Метрики с неправильными тегами при использовании кода Swagger/OpenAPI с RestTemplate

Сообщение Anonymous »

Моя команда генерирует некоторый код Java с использованием RestTemplate из спецификации OpenAPI, используя для этого плагины maven. Мы использовали как swagger-codegen-maven-plugin, так и openapi-generator-maven-plugin, которые, похоже, генерируют примерно один и тот же код.
Когда Когда дело доходит до сбора показателей из этих RestTemplate с помощью Micrometer, я обнаружил, что URI не шаблонизированы в тегах. Например, при использовании конечной точки REST, такой как /customers/{cid}, я бы хотел, чтобы метрика Micrometer была помечена тегом uri=/customers/{cid}. Однако вместо этого мы обнаруживаем, что метрика помечена тегами uri=/customers/customer1, uri=/customers/customer2 и т. д. Это фактически делает этот тег для нас бесполезным.
Обратите внимание на этот вопрос: если RestTemplate разрешено самому создавать шаблоны, то метрика будет помечена так, как я хочу.
Однако, сгенерированный код всегда выглядит так:

Код: Выделить всё

String path = UriComponentsBuilder.fromPath("/customers/{cid}").buildAndExpand(uriVariables).toUriString();
т. е. шаблон создается перед RestTemplate, и, таким образом, метрики помечаются полностью детализированным URI.
Наша конфигурация плагинов выглядит следующим образом. При использовании версии openapi-generator она также выглядит аналогично. Я пробовал поиграться с некоторыми параметрами конфигурации, но безрезультатно.

Код: Выделить всё

            
io.swagger
swagger-codegen-maven-plugin



generate


${project.basedir}/src/main/resources/my-spec.yml
java
false
false

true
${my.groupId}.model
${my.groupId}.api
${my.groupId}
${my.groupId}
api
false
true
java8-instant

resttemplate




Я просмотрел свойства конфигурации плагина swagger-codegen и плагина openapi-generator и не нашел ничего, что могло бы помочь с этим. Кто-нибудь знает способ исправить/улучшить это поведение?
РЕДАКТИРОВАТЬ: после более детального изучения версия кода openapi-generator-maven-plugin похоже, делает что-то, что я ожидал бы использовать RestTemplate для шаблонов URL-адресов. Однако в RestTemplateExchangeTagsProvider urlTemplate по-прежнему имеет значение null.

Подробнее здесь: https://stackoverflow.com/questions/768 ... sttemplate

Вернуться в «JAVA»