#java #spring-boot #swagger #openapi
#java #весенняя загрузка #развязность #openapi
Вопрос:
Просто интересно, есть ли способ, которым я могу использовать свою пользовательскую аннотацию в спецификации openapi.
Сценарий-
Пользовательский объект — мне нужно иметь проверку notnull между именем пользователя или электронной почтой. любой из них должен быть предоставлен в запросе
Для этого я могу создать пользовательскую аннотацию в коде, что-то вроде @ValidateUserNameAndEmail
, но не нахожу способа применить это в спецификации openapi и включить ее как другую аннотацию в сгенерированный код.
Ответ №1:
Я использую последнюю версию (6.2.1) openapi-generator-maven-plugin
, и для меня работает следующее.
User:
type: object
x-class-extra-annotation: "@org.example.ValidateUsernameAndEmail"
...
Плагин генерирует следующий класс:
@Schema(name = "User ")
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2022-11-24T14:51:09.277810200 01:00[Europe/Prague]")
@org.example.ValidateUsernameAndEmail
public class User {
...
}
Вы также можете определить аннотацию на уровне поля с помощью x-field-extra-annotation
, если это необходимо.
Ответ №2:
Я не думаю, что это возможно. Вы можете использовать аннотации проверки, предоставляемые openapi, такие как @NotNull