Можно ли с помощью Swagger генерировать Java Records?

Swagger, также известный как OpenAPI, является инструментом для описания и документирования RESTful API. С его помощью разработчики могут создавать и поддерживать спецификацию API, которая определяет функциональность, форматы данных, параметры запросов и другие аспекты API.

Java Records, введенные в Java 14, представляют новую возможность для определения неизменяемых данных с удобным и лаконичным синтаксисом. Они предоставляют автоматическую генерацию конструктора, сеттеров и геттеров, а также реализацию методов equals(), hashCode() и toString(). Они предоставляют улучшенный способ описания простых POJO-классов.

При использовании Swagger для генерации серверного кода Java, обычно создается интерфейс, который определяет контракты API с помощью аннотаций Swagger, таких как @Api, @ApiOperation, @ApiParam и т. д. Затем Swagger генерирует классы реализации этого интерфейса, обеспечивающие все необходимые функции, такие как обработка запросов и валидация параметров.

Однако на данный момент Swagger Codegen не поддерживает автоматическую генерацию Java Records. Это связано с тем, что Java Records были введены в версии Java 14, а Swagger Codegen может быть актуализирован с некоторой задержкой относительно новых версий Java.

Тем не менее, это не означает, что нельзя использовать Java Records в проекте, использующем Swagger. Вы все равно можете использовать Java Records в своих моделях данных (POJO), но вы должны будете самостоятельно создать эти классы.

Как альтернативу Swagger Codegen для генерации серверного кода Java, вы можете воспользоваться другими инструментами, такими как Spring Boot или Java EE, которые также предоставляют возможности для генерации кода из описания API, созданного в Swagger. Эти инструменты позволяют вам использовать Java Records вместе с Swagger для разработки RESTful API.

Более того, Swagger может генерировать клиентский код Java, который может быть использован для вызовов API. В этом случае, хотя Swagger Codegen пока не поддерживает генерацию Java Records, вы все равно можете использовать их в своем клиентском коде ручным образом.

В целом, Swagger является мощным инструментом для описания и документирования API, но его возможности по автоматической генерации Java Records ограничены в настоящее время. Однако это не мешает применять Java Records в своих проектах, использующих Swagger, и сочетать их с другими инструментами для генерации и поддержки кода.