Мне наконец-то удалось сгенерировать Angular клиента, используя этого урока , используя openapi-generator-maven-plugin
.
Мне пришлось сделать несколько адаптаций, например, используя различные зависимости
<!-- Spring Docs (Swagger) -->
<!-- TODO After version upgrades check https://github.com/springdoc/springdoc-openapi/issues/133 -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-core</artifactId>
<version>1.1.49</version>
<exclusions>
<exclusion>
<groupId>io.github.classgraph</groupId>
<artifactId>classgraph</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.1.49</version>
</dependency>
<dependency>
<groupId>io.github.classgraph</groupId>
<artifactId>classgraph</artifactId>
<version>4.8.44</version>
</dependency>
, а также пришлось добавить еще несколько аргументов, например, для драйвера базы данных и т. Д. c.:
<profile>
<id>angular</id>
<build>
<plugins>
<!-- Code Generation -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>reserve-tomcat-port</id>
<goals>
<goal>reserve-network-port</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<portNames>
<portName>tomcat.http.port</portName>
</portNames>
</configuration>
</execution>
</executions>
</plugin>
<!-- Spring Boot Maven plugin -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>pre-integration-test</id>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>post-integration-test</id>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
<configuration>
<addResources>true</addResources>
<arguments>
<!--suppress MavenModelInspection -->
<argument>--server.port=${tomcat.http.port}</argument>
<argument>--spring.profiles.active=angular</argument>
</arguments>
<environmentVariables>
<JDBC_DATABASE_URL>jdbc:postgresql://localhost/mydatabase</JDBC_DATABASE_URL>
<JDBC_DATABASE_USERNAME>postgres</JDBC_DATABASE_USERNAME>
<JDBC_DATABASE_PASSWORD>root</JDBC_DATABASE_PASSWORD>
</environmentVariables>
</configuration>
</plugin>
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>4.2.2</version>
<executions>
<execution>
<id>angular-client-code-generation</id>
<phase>integration-test</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<!--suppress MavenModelInspection -->
<inputSpec>http://localhost:${tomcat.http.port}/v3/api-docs</inputSpec>
<output>${project.build.directory}/generated-sources/angular-client</output>
<generatorName>typescript-angular</generatorName>
<!--
Use this option to dump the configuration help for the specified generator
instead of generating sources:
<configHelp>true</configHelp>
-->
<configOptions>
<!--
Put generator-specific parameters here, e.g. for typescript-angular:
<apiModulePrefix>Backend</apiModulePrefix>
-->
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
Но теперь, после того как код сгенерирован, я не могу следовать инструкции, опубликованные в (сгенерированном) файле README.md:
@
Сборка
Чтобы установить необходимые зависимости и создать источники машинописного текста, выполните:
npm install
npm run build
публикация
Сначала соберите пакет, затем запустите npm publish
потребление
Перейдите в папку вашего проекта потребления и выполните одну из следующих команд .
опубликовано:
npm install @ --save
...
Причина: нет пакета. json и, следовательно, также нет сценария "сборки", который мог бы быть выполнен в первую очередь.
Поэтому мне интересно что-то упущено или что я должен сделать, чтобы использовать сгенерированный код в моих Angular клиентах.