Closed newmen closed 3 years ago
Отличная работа!
@zlumyo нужно ревью :)
Я генерю модель с помощью swagger-codegen-maven-plugin, может пригодится
<plugin> <groupId>io.swagger.codegen.v3</groupId> <artifactId>swagger-codegen-maven-plugin</artifactId> <version>3.0.20</version> <executions> <execution> <goals> <goal>generate</goal> </goals> </execution> </executions> <configuration> <inputSpec>https://tinkoffcreditsystems.github.io/invest-openapi/swagger-ui/swagger.yaml</inputSpec> <language>spring</language> <library>spring-boot</library> <configOptions> <sourceFolder>src/gen/java/main</sourceFolder> <interfaceOnly>true</interfaceOnly> <java8>true</java8> <dateLibrary>java8</dateLibrary> </configOptions> <modelPackage>ru.tinkoff.invest.openapi.model</modelPackage> <apiPackage>ru.tinkoff.invest.openapi.api</apiPackage> <generateApis>false</generateApis> <generateApiTests>false</generateApiTests> <generateApiDocumentation>false</generateApiDocumentation> <generateModels>true</generateModels> <generateModelTests>false</generateModelTests> <generateModelDocumentation>true</generateModelDocumentation> <generateSupportingFiles>false</generateSupportingFiles> </configuration> </plugin> </plugins>
Позволю себе внести изменения в ПР: сделаю генерацию по swagger, чтобы не беспокоиться об актуальном состоянии json-схемы.
Этот ПР я редактировать не могу - открыл #121 . Там реализована генерация по swagger.
В ишуе #93 я уже выразил своё негодование о том, что у вас классы моделей захардкожены, вместо того, чтобы генерить их на лету, на основании схемы. В порыве поправить этот недочёт посылаю свой ПР.
Следует отметить, что уже после того как этот код был написан, я обнаружил таки у вас описанную схему API, на сваггере. Сваггер штука годная, так что даже не знаю стоит ли мой ПР заносить вам. :)
В целом, написаная мною схема вполне реюзаема и для других ЯП, если её вынести в отдельный репо, и повыгашивать проперти, начинающиеся с "java...". Что касается классов для стриминга, то схемы для них я не написал, поскольку у вас там навороты с сериалазией/десериализацией. Возможно такое тоже можно генерировать на лету, но я пока не пробовал.