forked from loafle/openapi-generator-original
Compare commits
109 Commits
8.0.x
...
devhl-labs
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
da9ef216a0 | ||
|
|
2bc0e5f745 | ||
|
|
2f54a2fb11 | ||
|
|
e914c4098b | ||
|
|
e4112c5aca | ||
|
|
f54b0e25a4 | ||
|
|
42d98e2526 | ||
|
|
f40f72cea8 | ||
|
|
8678ee8a1f | ||
|
|
fb1c2f3483 | ||
|
|
c733bb69a2 | ||
|
|
b228133a20 | ||
|
|
1776c000ed | ||
|
|
0643f526af | ||
|
|
5b96e85fd5 | ||
|
|
4ed8c70a92 | ||
|
|
abd19dd253 | ||
|
|
be618ec168 | ||
|
|
7510e6bbf8 | ||
|
|
1518237c25 | ||
|
|
4238f17322 | ||
|
|
dfc381c22f | ||
|
|
082382cc1e | ||
|
|
85763cdb08 | ||
|
|
e69fb86957 | ||
|
|
9579122945 | ||
|
|
d6780e7d43 | ||
|
|
4330b2f46d | ||
|
|
aae3ab3154 | ||
|
|
fe381e2199 | ||
|
|
f13a11b53c | ||
|
|
2b40a2c058 | ||
|
|
69cce249f6 | ||
|
|
7a7c8c19ab | ||
|
|
0f294a5129 | ||
|
|
ae069e6840 | ||
|
|
deb007b976 | ||
|
|
87704b28c0 | ||
|
|
b3f74c7c4f | ||
|
|
eda4547f15 | ||
|
|
cc98333d87 | ||
|
|
c2472b03b6 | ||
|
|
91da2fd240 | ||
|
|
6bdc452f92 | ||
|
|
fc8b7d92c8 | ||
|
|
df2b4210c9 | ||
|
|
fd62e3897b | ||
|
|
0a5c99739a | ||
|
|
bb831dad9a | ||
|
|
172fafe674 | ||
|
|
fbe6c11903 | ||
|
|
caeb83c845 | ||
|
|
ba1d7255d0 | ||
|
|
a6a75e3501 | ||
|
|
cd02426648 | ||
|
|
024bbb7784 | ||
|
|
be09f8a868 | ||
|
|
38ebf0bb4e | ||
|
|
05c10934ce | ||
|
|
daf52229e3 | ||
|
|
8f7354a2a2 | ||
|
|
2bf2d9bb56 | ||
|
|
b8001323f6 | ||
|
|
58dd0305ce | ||
|
|
d55525fbc4 | ||
|
|
8af3ff2828 | ||
|
|
e70a9564e0 | ||
|
|
d340e15f1a | ||
|
|
03d8c30183 | ||
|
|
2107e9ef8f | ||
|
|
fdd2dc9651 | ||
|
|
d1b9f9284a | ||
|
|
5166765724 | ||
|
|
ad8a7d2a3c | ||
|
|
6da3dc5c10 | ||
|
|
07baddfe12 | ||
|
|
ad7acc30eb | ||
|
|
4b493358a8 | ||
|
|
aea536027c | ||
|
|
908eddea0b | ||
|
|
539aab05a7 | ||
|
|
edc60db531 | ||
|
|
b803af5ddf | ||
|
|
f8a5051d9c | ||
|
|
eff3e6df53 | ||
|
|
ffd03b7e51 | ||
|
|
25936b4198 | ||
|
|
8f1d59fb0a | ||
|
|
af94bde2ce | ||
|
|
2c2d6905cb | ||
|
|
aa7c62abb7 | ||
|
|
aaeed0f5bd | ||
|
|
2bc4a16af3 | ||
|
|
4c163fe4b0 | ||
|
|
e0f12e9bf4 | ||
|
|
484b87f22a | ||
|
|
7f551bb9a0 | ||
|
|
4874a0bce7 | ||
|
|
4bf8e4a6ff | ||
|
|
28a902352c | ||
|
|
9a18fc1857 | ||
|
|
5d48d224d9 | ||
|
|
753502c255 | ||
|
|
16b28118cc | ||
|
|
d12cc0b63a | ||
|
|
f082a35d2e | ||
|
|
755b2efee4 | ||
|
|
2958107a6a | ||
|
|
42e8f762ac |
11
.github/CODEOWNERS
vendored
11
.github/CODEOWNERS
vendored
@@ -12,22 +12,11 @@ modules/openapi-generator-core/**/* @OpenAPITools/generator-core-team
|
||||
# No need for auto-generated subdirectories (reduces noise)
|
||||
docs/ @OpenAPITools/generator-core-team
|
||||
|
||||
## Individual interests
|
||||
.github/**/* @jimschubert
|
||||
scripts/**/* @jimschubert
|
||||
website/**/* @jimschubert
|
||||
bin/ci/**/* @jimschubert
|
||||
|
||||
## Build related
|
||||
CI/**/* @OpenAPITools/build
|
||||
.mvn/**/* @OpenAPITools/build
|
||||
bin/utils/**/* @OpenAPITools/build
|
||||
|
||||
## Module-specific
|
||||
modules/openapi-generator-cli/**/* @jimschubert
|
||||
modules/openapi-generator-gradle-plugin/**/* @jimschubert
|
||||
modules/openapi-generator-maven-plugin/**/* @jimschubert
|
||||
|
||||
# cpp-qt-client technical committee
|
||||
modules/openapi-generator/src/main/resources/cpp-qt-client/**/* @ravinikam
|
||||
samples/client/petstore/cpp-qt/**/* @ravinikam
|
||||
|
||||
11
.github/workflows/samples-cpp-qt-client.yaml
vendored
11
.github/workflows/samples-cpp-qt-client.yaml
vendored
@@ -3,10 +3,10 @@ name: Samples cpp qt client
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- "samples/client/petstore/cpp-qt/**"
|
||||
- "samples/client/petstore/cpp-qt*/**"
|
||||
pull_request:
|
||||
paths:
|
||||
- "samples/client/petstore/cpp-qt/**"
|
||||
- "samples/client/petstore/cpp-qt*/**"
|
||||
|
||||
env:
|
||||
GRADLE_VERSION: 6.9
|
||||
@@ -16,6 +16,9 @@ jobs:
|
||||
name: Build cpp qt client
|
||||
strategy:
|
||||
matrix:
|
||||
sample:
|
||||
- samples/client/petstore/cpp-qt
|
||||
- samples/client/petstore/cpp-qt-addDownloadProgress
|
||||
os:
|
||||
- ubuntu-latest
|
||||
- macOS-latest
|
||||
@@ -29,5 +32,5 @@ jobs:
|
||||
version: "6.7.1"
|
||||
target: "desktop"
|
||||
- name: Build
|
||||
working-directory: "samples/client/petstore/cpp-qt"
|
||||
run: cmake . && cmake --build .
|
||||
working-directory: ${{ matrix.sample }}
|
||||
run: cmake . && cmake --build . --verbose
|
||||
|
||||
@@ -10,7 +10,7 @@ on:
|
||||
paths:
|
||||
- samples/client/petstore/java/resttemplate-jakarta/**
|
||||
- samples/client/petstore/java/webclient-jakarta/**
|
||||
- samples/client/petstore/java/restclient-*/**
|
||||
- samples/client/petstore/java/restclient-*/**
|
||||
jobs:
|
||||
build:
|
||||
name: Build Java Client JDK17
|
||||
@@ -25,6 +25,7 @@ jobs:
|
||||
- samples/client/petstore/java/restclient
|
||||
- samples/client/petstore/java/restclient-nullable-arrays
|
||||
- samples/client/petstore/java/restclient-swagger2
|
||||
- samples/client/petstore/java/restclient-useSingleRequestParameter
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-java@v4
|
||||
|
||||
@@ -5,10 +5,12 @@ on:
|
||||
paths:
|
||||
- samples/client/petstore/java-helidon-client/v3/**
|
||||
- samples/server/petstore/java-helidon-server/v3/**
|
||||
- samples/server/others/java-helidon-server/v3/**
|
||||
pull_request:
|
||||
paths:
|
||||
- samples/client/petstore/java-helidon-client/v3/**
|
||||
- samples/server/petstore/java-helidon-server/v3/**
|
||||
- samples/server/others/java-helidon-server/v3/**
|
||||
jobs:
|
||||
build:
|
||||
name: Build Java Helidon
|
||||
@@ -21,6 +23,7 @@ jobs:
|
||||
- samples/client/petstore/java-helidon-client/v3/se
|
||||
- samples/server/petstore/java-helidon-server/v3/mp
|
||||
- samples/server/petstore/java-helidon-server/v3/se
|
||||
- samples/server/others/java-helidon-server/v3/mp-format-test
|
||||
version: [17]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
@@ -5,10 +5,12 @@ on:
|
||||
paths:
|
||||
- samples/client/petstore/java-helidon-client/v4/**
|
||||
- samples/server/petstore/java-helidon-server/v4/**
|
||||
- samples/server/others/java-helidon-server/v4/**
|
||||
pull_request:
|
||||
paths:
|
||||
- samples/client/petstore/java-helidon-client/v4/**
|
||||
- samples/server/petstore/java-helidon-server/v4/**
|
||||
- samples/server/others/java-helidon-server/v4/**
|
||||
jobs:
|
||||
build:
|
||||
name: Build Java Helidon
|
||||
@@ -18,7 +20,11 @@ jobs:
|
||||
matrix:
|
||||
sample:
|
||||
- samples/client/petstore/java-helidon-client/v4/mp
|
||||
- samples/client/petstore/java-helidon-client/v4/se
|
||||
- samples/server/petstore/java-helidon-server/v4/mp
|
||||
- samples/server/petstore/java-helidon-server/v4/se
|
||||
- samples/server/petstore/java-helidon-server/v4/se-uac
|
||||
- samples/server/others/java-helidon-server/v4/mp-format-test
|
||||
version: [21]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
6
.github/workflows/samples-jdk21.yaml
vendored
6
.github/workflows/samples-jdk21.yaml
vendored
@@ -4,14 +4,18 @@ on:
|
||||
paths:
|
||||
# clients
|
||||
- samples/client/petstore/java-helidon-client/v4/mp/**
|
||||
- samples/client/petstore/java-helidon-client/v4/se/**
|
||||
# servers
|
||||
- samples/server/petstore/java-helidon-server/v4/mp/**
|
||||
- samples/server/petstore/java-helidon-server/v4/se/**
|
||||
pull_request:
|
||||
paths:
|
||||
# clients
|
||||
- samples/client/petstore/java-helidon-client/v4/mp/**
|
||||
- samples/client/petstore/java-helidon-client/v4/se/**
|
||||
# servers
|
||||
- samples/server/petstore/java-helidon-server/v4/mp/**
|
||||
- samples/server/petstore/java-helidon-server/v4/se/**
|
||||
jobs:
|
||||
build:
|
||||
name: Build with JDK21
|
||||
@@ -22,8 +26,10 @@ jobs:
|
||||
sample:
|
||||
# clients
|
||||
- samples/client/petstore/java-helidon-client/v4/mp/
|
||||
- samples/client/petstore/java-helidon-client/v4/se/
|
||||
# servers
|
||||
- samples/server/petstore/java-helidon-server/v4/mp/
|
||||
- samples/server/petstore/java-helidon-server/v4/se/
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-java@v4
|
||||
|
||||
@@ -30,7 +30,6 @@ jobs:
|
||||
# server
|
||||
- samples/server/petstore/kotlin-springboot-3
|
||||
- samples/server/petstore/kotlin-springboot-delegate-nodefaults
|
||||
- samples/server/petstore/kotlin-springboot-request
|
||||
- samples/server/petstore/kotlin-springboot-request-cookie
|
||||
- samples/server/petstore/kotlin-server/javalin
|
||||
- samples/server/petstore/kotlin-server/javalin-6
|
||||
|
||||
@@ -3,11 +3,11 @@ name: Samples Kotlin WireMock
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- samples/server/petstore/kotlin-wiremock/**
|
||||
- samples/server/petstore/kotlin-wiremock*/**
|
||||
- samples/server/echo_api/kotlin-wiremock/**
|
||||
pull_request:
|
||||
paths:
|
||||
- samples/server/petstore/kotlin-wiremock/**
|
||||
- samples/server/petstore/kotlin-wiremock*/**
|
||||
- samples/server/echo_api/kotlin-wiremock/**
|
||||
|
||||
jobs:
|
||||
@@ -19,6 +19,7 @@ jobs:
|
||||
matrix:
|
||||
sample:
|
||||
- samples/server/petstore/kotlin-wiremock
|
||||
- samples/server/petstore/kotlin-wiremock-responses
|
||||
- samples/server/echo_api/kotlin-wiremock
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
2
.github/workflows/samples-rust.yaml
vendored
2
.github/workflows/samples-rust.yaml
vendored
@@ -34,4 +34,4 @@ jobs:
|
||||
toolchain: stable
|
||||
- name: Build
|
||||
working-directory: ${{ matrix.sample }}
|
||||
run: cargo build
|
||||
run: cargo build --all-targets --all-features
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,4 +1,5 @@
|
||||
.mvn/.gradle-enterprise/
|
||||
.mvn/.develocity/
|
||||
.scannerwork/
|
||||
.vscode
|
||||
*.iml
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
|
||||
<!-- Common gradle-enterprise.xml configuration for Maven shared between CI agents and developers building locally.
|
||||
<!-- Common develocity.xml configuration for Maven shared between CI agents and developers building locally.
|
||||
|
||||
The build cache credentials required for CI builds to write to the remote build cache are read from environment variables.
|
||||
Possibly, the credentials are configured in Jenkins via Credentials plugin (https://plugins.jenkins.io/credentials/) and
|
||||
@@ -9,24 +9,24 @@
|
||||
|
||||
Note: In the XML configuration below, you need to adjust
|
||||
|
||||
- the server url of your Gradle Enterprise server
|
||||
- the server url of your Develocity server
|
||||
- the name of the environment variable that reveals the build is running in a CI environment
|
||||
- the names of the environment variables holding the build cache credentials
|
||||
|
||||
to the specifics of your CI server settings. -->
|
||||
|
||||
<gradleEnterprise
|
||||
xmlns="https://www.gradle.com/gradle-enterprise-maven" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="https://www.gradle.com/gradle-enterprise-maven https://www.gradle.com/schema/gradle-enterprise-maven.xsd">
|
||||
<develocity
|
||||
xmlns="https://www.gradle.com/develocity-maven" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="https://www.gradle.com/develocity-maven https://www.gradle.com/schema/develocity-maven.xsd">
|
||||
<server>
|
||||
<url>https://ge.openapi-generator.tech/</url> <!-- adjust to your GE server -->
|
||||
<allowUntrusted>false</allowUntrusted> <!-- ensure a trusted certificate is configured -->
|
||||
<url>https://ge.openapi-generator.tech/</url>
|
||||
<allowUntrusted>false</allowUntrusted>
|
||||
</server>
|
||||
<buildScan>
|
||||
<captureGoalInputFiles>true</captureGoalInputFiles>
|
||||
<backgroundBuildScanUpload>#{isFalse(env['CI'])}</backgroundBuildScanUpload> <!-- adjust to your CI provider -->
|
||||
<publish>ALWAYS</publish>
|
||||
<publishIfAuthenticated>true</publishIfAuthenticated>
|
||||
<publishing>
|
||||
<onlyIf>authenticated</onlyIf>
|
||||
</publishing>
|
||||
<obfuscation>
|
||||
<!-- Use a redacted value.-->
|
||||
<ipAddresses>#{{'0.0.0.0'}}</ipAddresses>
|
||||
@@ -42,4 +42,4 @@
|
||||
<storeEnabled>#{isTrue(env['CI']) and isTrue(env['GRADLE_ENTERPRISE_ACCESS_KEY'])}</storeEnabled>
|
||||
</remote>
|
||||
</buildCache>
|
||||
</gradleEnterprise>
|
||||
</develocity>
|
||||
@@ -2,8 +2,8 @@
|
||||
<extensions>
|
||||
<extension>
|
||||
<groupId>com.gradle</groupId>
|
||||
<artifactId>gradle-enterprise-maven-extension</artifactId>
|
||||
<version>1.20.1</version>
|
||||
<artifactId>develocity-maven-extension</artifactId>
|
||||
<version>1.21.6</version>
|
||||
</extension>
|
||||
<extension>
|
||||
<groupId>com.gradle</groupId>
|
||||
|
||||
66
README.md
66
README.md
@@ -15,7 +15,7 @@
|
||||
|
||||
<div align="center">
|
||||
|
||||
[Master](https://github.com/OpenAPITools/openapi-generator/tree/master) (`7.8.0`):
|
||||
[Master](https://github.com/OpenAPITools/openapi-generator/tree/master) (`7.9.0`):
|
||||
[](https://app.travis-ci.com/github/OpenAPITools/openapi-generator/builds)
|
||||
[](https://circleci.com/gh/OpenAPITools/openapi-generator)
|
||||
[](https://ci.appveyor.com/project/WilliamCheng/openapi-generator)
|
||||
@@ -71,7 +71,7 @@ If you find OpenAPI Generator useful for work, please consider asking your compa
|
||||
[<img src="https://openapi-generator.tech/img/companies/designli.jpg" width="128" height="128">](https://designli.co?utm_source=openapi-generator&utm_medium=sponsorship&utm_campaign=oss-sponsorship)
|
||||
[<img src="https://openapi-generator.tech/img/companies/itm.png" width="128" height="128">](https://opensource.muenchen.de?utm_source=openapi-generator&utm_medium=sponsorship&utm_campaign=oss-sponsorship)
|
||||
[<img src="https://openapi-generator.tech/img/companies/kong.png" width="128" height="128">](https://konghq.com/products/kong-konnect?utm_medium=referral&utm_source=github&utm_campaign=platform&utm_content=openapi-generator)
|
||||
|
||||
[<img src="https://openapi-generator.tech/img/companies/route4me.png" width="128" height="128">](https://route4me.com/?utm_source=openapi-generator&utm_medium=sponsorship&utm_campaign=oss-sponsorship)
|
||||
|
||||
#### Thank you GoDaddy for sponsoring the domain names, Linode for sponsoring the VPS, Checkly for sponsoring the API monitoring and Gradle for sponsoring Develocity
|
||||
|
||||
@@ -128,8 +128,8 @@ The OpenAPI Specification has undergone 3 revisions since initial creation in 20
|
||||
|
||||
| OpenAPI Generator Version | Release Date | Notes |
|
||||
| --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------- |
|
||||
| 7.8.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/7.8.0-SNAPSHOT/) | 09.08.2024 | Minor release with breaking changes (with fallback) |
|
||||
| [7.7.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v7.7.0) (latest stable release) | 02.07.2024 | Minor release with breaking changes (with fallback) |
|
||||
| 7.9.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/7.9.0-SNAPSHOT/) | 23.09.2024 | Minor release with breaking changes (with fallback) |
|
||||
| [7.8.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v7.8.0) (latest stable release) | 19.08.2024 | Minor release with breaking changes (with fallback) |
|
||||
| [6.6.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v6.6.0) | 11.05.2023 | Minor release with breaking changes (with fallback) |
|
||||
| [5.4.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v5.4.0) | 31.01.2022 | Minor release with breaking changes (with fallback) |
|
||||
| [4.3.1](https://github.com/OpenAPITools/openapi-generator/releases/tag/v4.3.1) | 06.05.2020 | Patch release (enhancements, bug fixes, etc) |
|
||||
@@ -192,16 +192,16 @@ See the different versions of the [openapi-generator-cli](https://search.maven.o
|
||||
<!-- RELEASE_VERSION -->
|
||||
If you're looking for the latest stable version, you can grab it directly from Maven.org (Java 11 runtime at a minimum):
|
||||
|
||||
JAR location: `https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.7.0/openapi-generator-cli-7.7.0.jar`
|
||||
JAR location: `https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.8.0/openapi-generator-cli-7.8.0.jar`
|
||||
|
||||
For **Mac/Linux** users:
|
||||
```sh
|
||||
wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.7.0/openapi-generator-cli-7.7.0.jar -O openapi-generator-cli.jar
|
||||
wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.8.0/openapi-generator-cli-7.8.0.jar -O openapi-generator-cli.jar
|
||||
```
|
||||
|
||||
For **Windows** users, you will need to install [wget](http://gnuwin32.sourceforge.net/packages/wget.htm) or you can use Invoke-WebRequest in PowerShell (3.0+), e.g.
|
||||
```
|
||||
Invoke-WebRequest -OutFile openapi-generator-cli.jar https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.7.0/openapi-generator-cli-7.7.0.jar
|
||||
Invoke-WebRequest -OutFile openapi-generator-cli.jar https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.8.0/openapi-generator-cli-7.8.0.jar
|
||||
```
|
||||
|
||||
After downloading the JAR, run `java -jar openapi-generator-cli.jar help` to show the usage.
|
||||
@@ -436,7 +436,7 @@ openapi-generator-cli version
|
||||
To use a specific version of "openapi-generator-cli"
|
||||
|
||||
```sh
|
||||
openapi-generator-cli version-manager set 7.0.1
|
||||
openapi-generator-cli version-manager set 7.8.0
|
||||
```
|
||||
|
||||
Or install it as dev-dependency:
|
||||
@@ -445,6 +445,43 @@ Or install it as dev-dependency:
|
||||
npm install @openapitools/openapi-generator-cli -D
|
||||
```
|
||||
<!-- /RELEASE_VERSION -->
|
||||
|
||||
#### Use locally built JAR
|
||||
In order to use a locally built jar of the generator CLI, you can copy the jar from your local build (i.e. if you were to `build` this repository it would be in `~/openapi-generator/modules/openapi-generator-cli/target/openapi-generator-cli.jar`) into `./node_modules/@openapitools/openapi-generator-cli/versions/` and change the `version` in the `openapitools.json` file to the base name of the jar file.
|
||||
E.g.:
|
||||
```sh
|
||||
cd openapi-generator
|
||||
./mvnw clean package
|
||||
cp ./modules/openapi-generator-cli/target/openapi-generator-cli.jar /your/project/node_modules/@openapitools/openapi-generator-cli/versions/my-local-snapshot.jar
|
||||
```
|
||||
and then:
|
||||
```json
|
||||
{
|
||||
"$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json",
|
||||
"spaces": 2,
|
||||
"generator-cli": {
|
||||
"version": "my-local-snapshot",
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Use nightly `SNAPSHOT` build
|
||||
Change your `openapitools.json` to:
|
||||
|
||||
```json
|
||||
{
|
||||
"$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json",
|
||||
"spaces": 2,
|
||||
"generator-cli": {
|
||||
"version": "7.9.0-20240829.123431-22",
|
||||
"repository": {
|
||||
"downloadUrl": "https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/7.9.0-SNAPSHOT/openapi-generator-cli-${versionName}.jar"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
(example is with a snapshot of `7.9.0`, please change the `version` and `downloadUrl` accordingly)
|
||||
|
||||
## [2 - Getting Started](#table-of-contents)
|
||||
|
||||
To generate a PHP client for [petstore.yaml](https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml), please run the following
|
||||
@@ -460,7 +497,7 @@ java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generat
|
||||
(if you're on Windows, replace the last command with `java -jar modules\openapi-generator-cli\target\openapi-generator-cli.jar generate -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml -g php -o c:\temp\php_api_client`)
|
||||
|
||||
<!-- RELEASE_VERSION -->
|
||||
You can also download the JAR (latest release) directly from [maven.org](https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.0.1/openapi-generator-cli-7.0.1.jar)
|
||||
You can also download the JAR (latest release) directly from [maven.org](https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.8.0/openapi-generator-cli-7.8.0.jar)
|
||||
<!-- /RELEASE_VERSION -->
|
||||
|
||||
To get a list of **general** options available, please run `java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar help generate`
|
||||
@@ -576,9 +613,9 @@ Please refer to [online.md](docs/online.md) on how to run and use the `openapi-g
|
||||
|
||||
### [3.4 - License information on Generated Code](#table-of-contents)
|
||||
|
||||
The OpenAPI Generator project is intended as a benefit for users of the Open API Specification. The project itself has the [License](#license) as specified. In addition, please understand the following points:
|
||||
The OpenAPI Generator project is intended as a benefit for users of the Open API Specification. The project itself has the [License](#7---license) as specified. In addition, please understand the following points:
|
||||
|
||||
* The templates included with this project are subject to the [License](#license).
|
||||
* The templates included with this project are subject to the [License](#7---license).
|
||||
* Generated code is intentionally _not_ subject to the parent project license
|
||||
|
||||
When code is generated from this project, it shall be considered **AS IS** and owned by the user of the software. There are no warranties--expressed or implied--for generated code. You can do what you wish with it, and once generated, the code is your responsibility and subject to the licensing terms that you deem appropriate.
|
||||
@@ -632,6 +669,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
|
||||
- [codecentric AG](https://www.codecentric.de/)
|
||||
- [CoinAPI](https://www.coinapi.io/)
|
||||
- [Commencis](https://www.commencis.com/)
|
||||
- [ConfigCat](https://configcat.com/)
|
||||
- [cronn GmbH](https://www.cronn.de/)
|
||||
- [Crossover Health](https://crossoverhealth.com/)
|
||||
- [Cupix](https://www.cupix.com/)
|
||||
@@ -942,7 +980,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
|
||||
|
||||
What's the design philosophy or principle behind OpenAPI Generator?
|
||||
|
||||
We focus on developer experience. The generators should produce code, config, documentation, and more that are easily understandable and consumable by users. We focused on simple use cases to start with (bottom-up approach). Since then the project and the community have grown a lot: 300k weekly downloads via NPM CLI wrapper, 20M downloads via openapi-generator-cli docker image just to highlight a few. We've gradually supported more features (e.g. oneOf, anyOf introduced in OpenAPI 3.0) in various generators and we will continue this approach to deliver something based on our understanding of user demand and what they want, and continue to add support of new features introduced in OpenAPI specification (such as v3.1 and future versions of the OpenAPI specification).
|
||||
We focus on developer experience. The generators should produce code, config, documentation, and more that are easily understandable and consumable by users. We focused on simple use cases to start with (bottom-up approach). Since then the project and the community have grown a lot: 600k weekly downloads via NPM CLI wrapper, 30M downloads via openapi-generator-cli docker image just to highlight a few. We've gradually supported more features (e.g. oneOf, anyOf introduced in OpenAPI 3.0) in various generators and we will continue this approach to deliver something based on our understanding of user demand and what they want, and continue to add support of new features introduced in OpenAPI specification (such as v3.1 and future versions of the OpenAPI specification).
|
||||
|
||||
### [6.1 - OpenAPI Generator Core Team](#table-of-contents)
|
||||
|
||||
@@ -1191,7 +1229,7 @@ If you want to join the committee, please kindly apply by sending an email to te
|
||||
| JMeter | @kannkyo (2021/01) |
|
||||
| Jetbrains HTTP Client | @jlengrand (2023/01) |
|
||||
| Julia | @tanmaykm (2023/01) |
|
||||
| Kotlin | @jimschubert (2017/09) [:heart:](https://www.patreon.com/jimschubert), @dr4ke616 (2018/08) @karismann (2019/03) @Zomzog (2019/04) @andrewemery (2019/10) @4brunu (2019/11) @yutaka0m (2020/03) @stefankoppier (2022/06) |
|
||||
| Kotlin | @dr4ke616 (2018/08) @karismann (2019/03) @Zomzog (2019/04) @andrewemery (2019/10) @4brunu (2019/11) @yutaka0m (2020/03) @stefankoppier (2022/06) |
|
||||
| Lua | @daurnimator (2017/08) |
|
||||
| N4JS | @mmews-n4 (2023/03) |
|
||||
| Nim | |
|
||||
@@ -1205,7 +1243,7 @@ If you want to join the committee, please kindly apply by sending an email to te
|
||||
| R | @Ramanth (2019/07) @saigiridhar21 (2019/07) |
|
||||
| Ruby | @cliffano (2017/07) @zlx (2017/09) @autopp (2019/02) |
|
||||
| Rust | @frol (2017/07) @farcaller (2017/08) @richardwhiuk (2019/07) @paladinzh (2020/05) @jacob-pro (2022/10) |
|
||||
| Scala | @clasnake (2017/07), @jimschubert (2017/09) [:heart:](https://www.patreon.com/jimschubert), @shijinkui (2018/01), @ramzimaalej (2018/03), @chameleon82 (2020/03), @Bouillie (2020/04) @fish86 (2023/06) |
|
||||
| Scala | @clasnake (2017/07), @shijinkui (2018/01), @ramzimaalej (2018/03), @chameleon82 (2020/03), @Bouillie (2020/04) @fish86 (2023/06) |
|
||||
| Swift | @jgavris (2017/07) @ehyche (2017/08) @Edubits (2017/09) @jaz-ah (2017/09) @4brunu (2019/11) @dydus0x14 (2023/06) |
|
||||
| TypeScript | @TiFu (2017/07) @taxpon (2017/07) @sebastianhaas (2017/07) @kenisteward (2017/07) @Vrolijkx (2017/09) @macjohnny (2018/01) @topce (2018/10) @akehir (2019/07) @petejohansonxo (2019/11) @amakhrov (2020/02) @davidgamero (2022/03) @mkusaka (2022/04) |
|
||||
| Xojo | @Topheee (2023/04) |
|
||||
|
||||
9
bin/configs/cpp-qt-client-addDownloadProgress.yaml
Normal file
9
bin/configs/cpp-qt-client-addDownloadProgress.yaml
Normal file
@@ -0,0 +1,9 @@
|
||||
generatorName: cpp-qt-client
|
||||
outputDir: samples/client/petstore/cpp-qt-addDownloadProgress
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/cpp-qt/petstore.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/cpp-qt-client
|
||||
additionalProperties:
|
||||
packageName: CppQtPetstoreClient
|
||||
cppNamespace: test_namespace
|
||||
modelNamePrefix: PFX
|
||||
addDownloadProgress: true
|
||||
@@ -11,3 +11,5 @@ additionalProperties:
|
||||
nullableReferenceTypes: false
|
||||
equatable: true
|
||||
targetFramework: net47
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -11,3 +11,5 @@ additionalProperties:
|
||||
nullableReferenceTypes: false
|
||||
equatable: true
|
||||
targetFramework: net47
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -11,3 +11,5 @@ additionalProperties:
|
||||
nullableReferenceTypes: false
|
||||
equatable: true
|
||||
targetFramework: net47
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -13,5 +13,6 @@ additionalProperties:
|
||||
targetFramework: net47
|
||||
skipFormModel: false
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
inlineSchemaOptions:
|
||||
RESOLVE_INLINE_ENUMS: true
|
||||
|
||||
@@ -11,3 +11,5 @@ additionalProperties:
|
||||
nullableReferenceTypes: false
|
||||
equatable: true
|
||||
targetFramework: net47
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -9,3 +9,4 @@ additionalProperties:
|
||||
useDateTimeForDate: true
|
||||
targetFramework: net47
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -12,3 +12,4 @@ additionalProperties:
|
||||
equatable: true
|
||||
targetFramework: net47
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -11,3 +11,5 @@ additionalProperties:
|
||||
nullableReferenceTypes: false
|
||||
equatable: true
|
||||
targetFramework: net48
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -11,3 +11,5 @@ additionalProperties:
|
||||
nullableReferenceTypes: false
|
||||
equatable: true
|
||||
targetFramework: net48
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -11,3 +11,5 @@ additionalProperties:
|
||||
nullableReferenceTypes: false
|
||||
equatable: true
|
||||
targetFramework: net48
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -13,5 +13,6 @@ additionalProperties:
|
||||
targetFramework: net48
|
||||
skipFormModel: false
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
inlineSchemaOptions:
|
||||
RESOLVE_INLINE_ENUMS: true
|
||||
|
||||
@@ -11,3 +11,5 @@ additionalProperties:
|
||||
nullableReferenceTypes: false
|
||||
equatable: true
|
||||
targetFramework: net48
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -9,3 +9,4 @@ additionalProperties:
|
||||
useDateTimeForDate: true
|
||||
targetFramework: net48
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -12,3 +12,4 @@ additionalProperties:
|
||||
equatable: true
|
||||
targetFramework: net48
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -11,3 +11,5 @@ additionalProperties:
|
||||
nullableReferenceTypes: true
|
||||
equatable: true
|
||||
targetFramework: net8.0
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -11,3 +11,5 @@ additionalProperties:
|
||||
nullableReferenceTypes: true
|
||||
equatable: true
|
||||
targetFramework: net8.0
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -11,3 +11,5 @@ additionalProperties:
|
||||
nullableReferenceTypes: true
|
||||
equatable: true
|
||||
targetFramework: net8.0
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -13,5 +13,6 @@ additionalProperties:
|
||||
targetFramework: net8.0
|
||||
skipFormModel: false
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
inlineSchemaOptions:
|
||||
RESOLVE_INLINE_ENUMS: true
|
||||
|
||||
@@ -12,3 +12,4 @@ additionalProperties:
|
||||
equatable: true
|
||||
targetFramework: net8.0
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -12,3 +12,4 @@ additionalProperties:
|
||||
equatable: true
|
||||
targetFramework: net8.0
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -11,3 +11,5 @@ additionalProperties:
|
||||
nullableReferenceTypes: true
|
||||
equatable: true
|
||||
targetFramework: net8.0
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -9,3 +9,4 @@ additionalProperties:
|
||||
useDateTimeForDate: true
|
||||
targetFramework: net8.0
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -12,3 +12,4 @@ additionalProperties:
|
||||
equatable: true
|
||||
targetFramework: net8.0
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -11,3 +11,4 @@ additionalProperties:
|
||||
targetFramework: netstandard2.0
|
||||
equatable: true
|
||||
modelPropertySorting: alphabetical
|
||||
operationParameterSorting: alphabetical
|
||||
|
||||
@@ -15,6 +15,7 @@ additionalProperties:
|
||||
packageName: petstore
|
||||
disallowAdditionalPropertiesIfNotPresent: false
|
||||
generateInterfaces: true
|
||||
useDefaultValuesForRequiredVars: "true"
|
||||
enumNameMappings:
|
||||
delivered: SHIPPED
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ library: mp
|
||||
outputDir: samples/client/petstore/java-helidon-client/v4/mp
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
|
||||
additionalProperties:
|
||||
helidonVersion: 4.0.8
|
||||
helidonVersion: 4.0.11
|
||||
artifactId: petstore-helidon-client-mp
|
||||
hideGenerationTimestamp: "true"
|
||||
configureAuth: "false"
|
||||
|
||||
14
bin/configs/java-helidon-client-se_4.yaml
Normal file
14
bin/configs/java-helidon-client-se_4.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
generatorName: java-helidon-client
|
||||
library: se
|
||||
outputDir: samples/client/petstore/java-helidon-client/v4/se
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
|
||||
additionalProperties:
|
||||
helidonVersion: 4.0.11
|
||||
artifactId: petstore-helidon-client-se
|
||||
hideGenerationTimestamp: "true"
|
||||
configureAuth: "false"
|
||||
build: "all"
|
||||
test: "spock"
|
||||
requiredPropertiesInConstructor: "false"
|
||||
visitable: "true"
|
||||
fullProject: "true"
|
||||
10
bin/configs/java-helidon-server-mp_3_format_test.yaml
Normal file
10
bin/configs/java-helidon-server-mp_3_format_test.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
generatorName: java-helidon-server
|
||||
library: mp
|
||||
outputDir: samples/server/others/java-helidon-server/v3/mp-format-test
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/helidon/format-test.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/java-helidon/server
|
||||
additionalProperties:
|
||||
helidonVersion: 3.2.7
|
||||
artifactId: format-helidon-server-mp
|
||||
hideGenerationTimestamp: "true"
|
||||
fullProject: "true"
|
||||
@@ -4,7 +4,7 @@ outputDir: samples/server/petstore/java-helidon-server/v4/mp
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/java-helidon/server
|
||||
additionalProperties:
|
||||
helidonVersion: 4.0.8
|
||||
helidonVersion: 4.0.11
|
||||
artifactId: petstore-helidon-server-mp
|
||||
hideGenerationTimestamp: "true"
|
||||
build: "all"
|
||||
|
||||
10
bin/configs/java-helidon-server-mp_4_format_test.yaml
Normal file
10
bin/configs/java-helidon-server-mp_4_format_test.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
generatorName: java-helidon-server
|
||||
library: mp
|
||||
outputDir: samples/server/others/java-helidon-server/v4/mp-format-test
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/helidon/format-test.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/java-helidon/server
|
||||
additionalProperties:
|
||||
helidonVersion: 4.0.11
|
||||
artifactId: format-helidon-server-mp
|
||||
hideGenerationTimestamp: "true"
|
||||
fullProject: "true"
|
||||
@@ -0,0 +1,13 @@
|
||||
generatorName: java-helidon-server
|
||||
library: se
|
||||
outputDir: samples/server/petstore/java-helidon-server/v4/se-uac-group-by-file-path
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/java-helidon/server
|
||||
additionalProperties:
|
||||
helidonVersion: 4.0.11
|
||||
artifactId: petstore-helidon-server-se
|
||||
hideGenerationTimestamp: "true"
|
||||
fullProject: "true"
|
||||
useAbstractClass: "true"
|
||||
generatorVersion: "stable"
|
||||
x-helidon-groupBy: first-path-segment
|
||||
12
bin/configs/java-helidon-server-se_4-uac.yaml
Normal file
12
bin/configs/java-helidon-server-se_4-uac.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
generatorName: java-helidon-server
|
||||
library: se
|
||||
outputDir: samples/server/petstore/java-helidon-server/v4/se-uac
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/java-helidon/server
|
||||
additionalProperties:
|
||||
helidonVersion: 4.0.11
|
||||
artifactId: petstore-helidon-server-se
|
||||
hideGenerationTimestamp: "true"
|
||||
fullProject: "true"
|
||||
useAbstractClass: "true"
|
||||
generatorVersion: "stable"
|
||||
12
bin/configs/java-helidon-server-se_4.yaml
Normal file
12
bin/configs/java-helidon-server-se_4.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
generatorName: java-helidon-server
|
||||
library: se
|
||||
outputDir: samples/server/petstore/java-helidon-server/v4/se
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/java-helidon/server
|
||||
additionalProperties:
|
||||
helidonVersion: 4.0.11
|
||||
artifactId: petstore-helidon-server-se
|
||||
hideGenerationTimestamp: "true"
|
||||
fullProject: "true"
|
||||
x-helidon-useOptional: "true"
|
||||
generatorVersion: "stable"
|
||||
@@ -11,3 +11,4 @@ additionalProperties:
|
||||
useOneOfDiscriminatorLookup: true
|
||||
disallowAdditionalPropertiesIfNotPresent: false
|
||||
gradleProperties: "\n# JVM arguments\norg.gradle.jvmargs=-Xmx2024m -XX:MaxPermSize=512m\n# set timeout\norg.gradle.daemon.idletimeout=3600000\n# show all warnings\norg.gradle.warning.mode=all"
|
||||
failOnUnknownProperties: true
|
||||
@@ -12,3 +12,4 @@ additionalProperties:
|
||||
useOneOfDiscriminatorLookup: true
|
||||
disallowAdditionalPropertiesIfNotPresent: false
|
||||
gradleProperties: "\n# JVM arguments\norg.gradle.jvmargs=-Xmx2024m -XX:MaxPermSize=512m\n# set timeout\norg.gradle.daemon.idletimeout=3600000\n# show all warnings\norg.gradle.warning.mode=all"
|
||||
failOnUnknownProperties: true
|
||||
@@ -0,0 +1,9 @@
|
||||
generatorName: java
|
||||
outputDir: samples/client/petstore/java/restclient-useSingleRequestParameter
|
||||
library: restclient
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/Java
|
||||
additionalProperties:
|
||||
artifactId: singleparam-restclient
|
||||
hideGenerationTimestamp: "true"
|
||||
useSingleRequestParameter: true
|
||||
4
bin/configs/k6-basic-auth.yaml
Normal file
4
bin/configs/k6-basic-auth.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
generatorName: k6
|
||||
outputDir: samples/client/others/k6/basicAuth
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/k6/basic_auth.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/k6
|
||||
4
bin/configs/k6-bearer-auth.yaml
Normal file
4
bin/configs/k6-bearer-auth.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
generatorName: k6
|
||||
outputDir: samples/client/others/k6/bearerAuth
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/k6/bearer_auth.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/k6
|
||||
@@ -1,9 +0,0 @@
|
||||
generatorName: kotlin-spring
|
||||
outputDir: samples/server/petstore/kotlin-springboot-request
|
||||
library: spring-boot
|
||||
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/kotlin-spring
|
||||
additionalProperties:
|
||||
appendRequestToHandler: true
|
||||
interfaceOnly: true
|
||||
useSpringBoot3: true
|
||||
4
bin/configs/kotlin-wiremock-responses.yaml
Normal file
4
bin/configs/kotlin-wiremock-responses.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
generatorName: kotlin-wiremock
|
||||
outputDir: samples/server/petstore/kotlin-wiremock-responses
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/kotlin/issue7193-responses.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/kotlin-wiremock
|
||||
7
bin/configs/php-nextgen-echo-api-streaming.yaml
Normal file
7
bin/configs/php-nextgen-echo-api-streaming.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
generatorName: php-nextgen
|
||||
outputDir: samples/client/echo_api/php-nextgen-streaming
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/echo_api.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/php-nextgen
|
||||
additionalProperties:
|
||||
hideGenerationTimestamp: "true"
|
||||
supportStreaming: true
|
||||
@@ -2,6 +2,9 @@ generatorName: python-pydantic-v1
|
||||
outputDir: samples/openapi3/client/petstore/python-pydantic-v1
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/python/petstore-with-fake-endpoints-models-for-testing.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/python-pydantic-v1
|
||||
gitHost: GIT_HOST
|
||||
gitUserId: GIT_USER_ID
|
||||
gitRepoId: GIT_REPO_ID
|
||||
additionalProperties:
|
||||
packageName: petstore_api
|
||||
useOneOfDiscriminatorLookup: "true"
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
generatorName: typescript-axios
|
||||
outputDir: samples/client/petstore/typescript-axios/builds/with-interfaces-and-with-single-request-param
|
||||
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/typescript-axios
|
||||
additionalProperties:
|
||||
withInterfaces: "true"
|
||||
useSingleRequestParameter: "true"
|
||||
@@ -8,4 +8,3 @@ additionalProperties:
|
||||
projectName: ts-petstore-client
|
||||
moduleName: petstore
|
||||
supportsES6: true
|
||||
enumType: stringUnion
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
generatorName: typescript
|
||||
outputDir: samples/openapi3/client/petstore/typescript/builds/deno_object_params
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/typescript
|
||||
additionalProperties:
|
||||
platform: deno
|
||||
npmName: ts-petstore-client
|
||||
useObjectParameters: true
|
||||
projectName: ts-petstore-client
|
||||
moduleName: petstore
|
||||
@@ -7,4 +7,3 @@ additionalProperties:
|
||||
npmName: ts-petstore-client
|
||||
projectName: ts-petstore-client
|
||||
moduleName: petstore
|
||||
enumType: stringUnion
|
||||
|
||||
9
bin/configs/typescript-consolidated-explode-query.yaml
Normal file
9
bin/configs/typescript-consolidated-explode-query.yaml
Normal file
@@ -0,0 +1,9 @@
|
||||
generatorName: typescript
|
||||
outputDir: samples/openapi3/client/petstore/typescript/builds/explode-query
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/snakecase-discriminator.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/typescript
|
||||
additionalProperties:
|
||||
platform: node
|
||||
npmName: ts-petstore-client
|
||||
projectName: ts-petstore-client
|
||||
moduleName: petstore
|
||||
@@ -7,4 +7,3 @@ additionalProperties:
|
||||
npmName: ts-petstore-client
|
||||
projectName: ts-petstore-client
|
||||
moduleName: petstore
|
||||
enumType: stringUnion
|
||||
|
||||
@@ -8,4 +8,3 @@ additionalProperties:
|
||||
useObjectParameters: true
|
||||
projectName: ts-petstore-client
|
||||
moduleName: petstore
|
||||
enumType: stringUnion
|
||||
|
||||
6
bin/configs/typescript-fetch-validation-attributes.yaml
Normal file
6
bin/configs/typescript-fetch-validation-attributes.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
generatorName: typescript-fetch
|
||||
outputDir: samples/client/petstore/typescript-fetch/builds/validation-attributes
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/typescript-fetch/validation-attributes.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/typescript-fetch
|
||||
additionalProperties:
|
||||
validationAttributes: true
|
||||
@@ -107,6 +107,7 @@ declare -a xml_files=(
|
||||
"${root}/modules/openapi-generator-gradle-plugin/samples/local-spec/README.md"
|
||||
"${root}/README.md"
|
||||
"${root}/docs/installation.md"
|
||||
"${root}/docs/plugins.md"
|
||||
"${root}/website/src/pages/index.js"
|
||||
)
|
||||
|
||||
|
||||
@@ -15,12 +15,11 @@ codegen="${cli}/target/openapi-generator-cli.jar"
|
||||
commands="config-help,generate,batch,help,list,meta,validate,version"
|
||||
|
||||
if [ $# == 0 ]; then
|
||||
echo "No command specified. Available commands:"
|
||||
for i in $(echo $commands | sed "s/,/ /g")
|
||||
do
|
||||
echo " $i"
|
||||
done
|
||||
exit
|
||||
echo "No command specified. Available commands:"
|
||||
for i in $(echo $commands | sed "s/,/ /g"); do
|
||||
echo " $i"
|
||||
done
|
||||
exit
|
||||
fi
|
||||
|
||||
# if CLI jar exists, check $1 against completions available in the CLI
|
||||
|
||||
@@ -18,6 +18,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|
||||
|
||||
| Option | Description | Values | Default |
|
||||
| ------ | ----------- | ------ | ------- |
|
||||
|addDownloadProgress|Add support for Qt download progress| |false|
|
||||
|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|
|
||||
|contentCompression|Enable Compressed Content Encoding for requests and responses| |false|
|
||||
|cppNamespace|C++ namespace (convention: name::space::for::api).| |OpenAPI|
|
||||
|
||||
@@ -31,11 +31,11 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|
||||
|library|HTTP library template (sub-template) to use|<dl><dt>**generichost**</dt><dd>HttpClient with Generic Host dependency injection (https://docs.microsoft.com/en-us/dotnet/core/extensions/generic-host) (Experimental. Subject to breaking changes without notice.)</dd><dt>**httpclient**</dt><dd>HttpClient (https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient) (Experimental. Subject to breaking changes without notice.)</dd><dt>**unityWebRequest**</dt><dd>UnityWebRequest (...) (Experimental. Subject to breaking changes without notice.)</dd><dt>**restsharp**</dt><dd>RestSharp (https://github.com/restsharp/RestSharp)</dd></dl>|restsharp|
|
||||
|licenseId|The identifier of the license| |null|
|
||||
|modelPropertyNaming|Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name| |PascalCase|
|
||||
|modelPropertySorting|One of legacy, alphabetical, default (only `generichost` library supports this option).| |legacy|
|
||||
|modelPropertySorting|One of legacy, alphabetical, default.| |default|
|
||||
|netCoreProjectFile|Use the new format (.NET Core) for .NET project files (.csproj).| |false|
|
||||
|nonPublicApi|Generates code with reduced access modifiers; allows embedding elsewhere without exposing non-public API calls to consumers.| |false|
|
||||
|nullableReferenceTypes|Use nullable annotations in the project. Only supported on C# 8 / ASP.NET Core 3.1 or newer. Starting in .NET 6.0 the default is true.| |false|
|
||||
|operationParameterSorting|One of legacy, alphabetical, default (only `generichost` library supports this option).| |legacy|
|
||||
|operationParameterSorting|One of legacy, alphabetical, default.| |default|
|
||||
|optionalAssemblyInfo|Generate AssemblyInfo.cs.| |true|
|
||||
|optionalEmitDefaultValues|Set DataMember's EmitDefaultValue.| |false|
|
||||
|optionalMethodArgument|C# Optional method argument, e.g. void square(int x=10) (.net 4.0+ only).| |true|
|
||||
|
||||
@@ -29,6 +29,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|
||||
|packageVersion|Go package version.| |1.0.0|
|
||||
|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
|
||||
|structPrefix|whether to prefix struct with the class name. e.g. DeletePetOpts => PetApiDeletePetOpts| |false|
|
||||
|useDefaultValuesForRequiredVars|Use default values for required variables when available| |false|
|
||||
|useOneOfDiscriminatorLookup|Use the discriminator's mapping in oneOf to speed up the model lookup. IMPORTANT: Validation (e.g. one and only one match in oneOf's schemas) will be skipped.| |false|
|
||||
|withAWSV4Signature|whether to include AWS v4 signature support| |false|
|
||||
|withGoMod|Generate go.mod and go.sum| |true|
|
||||
|
||||
@@ -65,6 +65,8 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|
||||
|useJakartaEe|whether to use Jakarta EE namespace instead of javax| |false|
|
||||
|useOneOfInterfaces|whether to use a java interface to describe a set of oneOf options, where each option is a class that implements the interface| |false|
|
||||
|withXml|whether to include support for application/xml content type and include XML annotations in the model (works with libraries that provide support for JSON and XML)| |false|
|
||||
|x-helidon-groupBy|Selects how to group operations into APIs|<dl><dt>**tags**</dt><dd>Use the 'tags' settings on each operation</dd><dt>**first-path-segment**</dt><dd>Use the first segment of the path</dd></dl>|tags|
|
||||
|x-helidon-useOptional|Wrap optional parameters in an Optional (Helidon 4 and later)| |true|
|
||||
|
||||
## SUPPORTED VENDOR EXTENSIONS
|
||||
|
||||
|
||||
@@ -68,6 +68,8 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|
||||
|useJakartaEe|whether to use Jakarta EE namespace instead of javax| |false|
|
||||
|useOneOfInterfaces|whether to use a java interface to describe a set of oneOf options, where each option is a class that implements the interface| |false|
|
||||
|withXml|whether to include support for application/xml content type and include XML annotations in the model (works with libraries that provide support for JSON and XML)| |false|
|
||||
|x-helidon-groupBy|Selects how to group operations into APIs|<dl><dt>**tags**</dt><dd>Use the 'tags' settings on each operation</dd><dt>**first-path-segment**</dt><dd>Use the first segment of the path</dd></dl>|tags|
|
||||
|x-helidon-useOptional|Wrap optional parameters in an Optional (Helidon 4 and later)| |true|
|
||||
|
||||
## SUPPORTED VENDOR EXTENSIONS
|
||||
|
||||
|
||||
@@ -49,6 +49,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|
||||
|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
|
||||
|enumUnknownDefaultCase|If the server adds new enum cases, that are unknown by an old spec/client, the client will fail to parse the network response.With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the server sends an enum case that is not known by the client/spec, they can safely fallback to this case.|<dl><dt>**false**</dt><dd>No changes to the enum's are made, this is the default option.</dd><dt>**true**</dt><dd>With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the enum case sent by the server is not known by the client/spec, can safely be decoded to this case.</dd></dl>|false|
|
||||
|errorObjectType|Error Object type. (This option is for okhttp-gson only)| |null|
|
||||
|failOnUnknownProperties|Fail Jackson de-serialization on unknown properties| |false|
|
||||
|generateBuilders|Whether to generate builders for models| |false|
|
||||
|generateClientAsBean|For resttemplate, configure whether to create `ApiClient.java` and Apis clients as bean (with `@Component` annotation).| |false|
|
||||
|generateConstructorWithAllArgs|whether to generate a constructor for all arguments| |false|
|
||||
@@ -98,7 +99,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|
||||
|useRuntimeException|Use RuntimeException instead of Exception. Only jersey2, jersey3, okhttp-gson, vertx, microprofile support this option.| |false|
|
||||
|useRxJava2|Whether to use the RxJava2 adapter with the retrofit2 library. IMPORTANT: This option has been deprecated.| |false|
|
||||
|useRxJava3|Whether to use the RxJava3 adapter with the retrofit2 library. IMPORTANT: This option has been deprecated.| |false|
|
||||
|useSingleRequestParameter|Setting this property to true will generate functions with a single argument containing all API endpoint parameters instead of one argument per parameter. ONLY jersey2, jersey3, okhttp-gson, microprofile support this option.| |false|
|
||||
|useSingleRequestParameter|Setting this property to true will generate functions with a single argument containing all API endpoint parameters instead of one argument per parameter. ONLY jersey2, jersey3, okhttp-gson, microprofile, Spring RestClient support this option.| |false|
|
||||
|webclientBlockingOperations|Making all WebClient operations blocking(sync). Note that if on operation 'x-webclient-blocking: false' then such operation won't be sync| |false|
|
||||
|withAWSV4Signature|whether to include AWS v4 signature support (only available for okhttp-gson library)| |false|
|
||||
|withXml|whether to include support for application/xml content type and include XML annotations in the model (works with libraries that provide support for JSON and XML)| |false|
|
||||
|
||||
@@ -49,6 +49,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|
||||
|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
|
||||
|enumUnknownDefaultCase|If the server adds new enum cases, that are unknown by an old spec/client, the client will fail to parse the network response.With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the server sends an enum case that is not known by the client/spec, they can safely fallback to this case.|<dl><dt>**false**</dt><dd>No changes to the enum's are made, this is the default option.</dd><dt>**true**</dt><dd>With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the enum case sent by the server is not known by the client/spec, can safely be decoded to this case.</dd></dl>|false|
|
||||
|errorObjectType|Error Object type. (This option is for okhttp-gson only)| |null|
|
||||
|failOnUnknownProperties|Fail Jackson de-serialization on unknown properties| |false|
|
||||
|generateBuilders|Whether to generate builders for models| |false|
|
||||
|generateClientAsBean|For resttemplate, configure whether to create `ApiClient.java` and Apis clients as bean (with `@Component` annotation).| |false|
|
||||
|generateConstructorWithAllArgs|whether to generate a constructor for all arguments| |false|
|
||||
@@ -98,7 +99,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|
||||
|useRuntimeException|Use RuntimeException instead of Exception. Only jersey2, jersey3, okhttp-gson, vertx, microprofile support this option.| |false|
|
||||
|useRxJava2|Whether to use the RxJava2 adapter with the retrofit2 library. IMPORTANT: This option has been deprecated.| |false|
|
||||
|useRxJava3|Whether to use the RxJava3 adapter with the retrofit2 library. IMPORTANT: This option has been deprecated.| |false|
|
||||
|useSingleRequestParameter|Setting this property to true will generate functions with a single argument containing all API endpoint parameters instead of one argument per parameter. ONLY jersey2, jersey3, okhttp-gson, microprofile support this option.| |false|
|
||||
|useSingleRequestParameter|Setting this property to true will generate functions with a single argument containing all API endpoint parameters instead of one argument per parameter. ONLY jersey2, jersey3, okhttp-gson, microprofile, Spring RestClient support this option.| |false|
|
||||
|webclientBlockingOperations|Making all WebClient operations blocking(sync). Note that if on operation 'x-webclient-blocking: false' then such operation won't be sync| |false|
|
||||
|withAWSV4Signature|whether to include AWS v4 signature support (only available for okhttp-gson library)| |false|
|
||||
|withXml|whether to include support for application/xml content type and include XML annotations in the model (works with libraries that provide support for JSON and XML)| |false|
|
||||
|
||||
@@ -22,7 +22,6 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|
||||
|annotationLibrary|Select the complementary documentation annotation library.|<dl><dt>**none**</dt><dd>Do not annotate Model and Api with complementary annotations.</dd><dt>**swagger1**</dt><dd>Annotate Model and Api using the Swagger Annotations 1.x library.</dd><dt>**swagger2**</dt><dd>Annotate Model and Api using the Swagger Annotations 2.x library.</dd></dl>|swagger2|
|
||||
|apiPackage|api package for generated code| |org.openapitools.api|
|
||||
|apiSuffix|suffix for api classes| |Api|
|
||||
|appendRequestToHandler|Append ServerHttpRequest to handler method for getting request stuff| |false|
|
||||
|artifactId|Generated artifact id (name of jar).| |openapi-spring|
|
||||
|artifactVersion|Generated artifact's package version.| |1.0.0|
|
||||
|basePackage|base package (invokerPackage) for generated code| |org.openapitools|
|
||||
|
||||
@@ -38,6 +38,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|
||||
|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true|
|
||||
|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true|
|
||||
|srcBasePath|The directory to serve as source root.| |null|
|
||||
|supportStreaming|Support streaming endpoint| |false|
|
||||
|variableNamingConvention|naming convention of variable name, e.g. camelCase.| |snake_case|
|
||||
|
||||
## IMPORT MAPPING
|
||||
|
||||
@@ -44,6 +44,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|
||||
|supportsES6|Generate code that conforms to ES6.| |false|
|
||||
|useSingleRequestParameter|Setting this property to true will generate functions with a single argument containing all API endpoint parameters instead of one argument per parameter.| |true|
|
||||
|useSquareBracketsInArrayNames|Setting this property to true will add brackets to array attribute names, e.g. my_values[].| |false|
|
||||
|validationAttributes|Setting this property to true will generate the validation attributes of model properties.| |false|
|
||||
|withInterfaces|Setting this property to true will generate interfaces next to the default class implementations.| |false|
|
||||
|withoutRuntimeChecks|Setting this property to true will remove any runtime checks on the request and response payloads. Payloads will be casted to their expected types.| |false|
|
||||
|
||||
|
||||
@@ -24,7 +24,6 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|
||||
|enumNameSuffix|Suffix that will be appended to all enum names.| |Enum|
|
||||
|enumPropertyNaming|Naming convention for enum properties: 'camelCase', 'PascalCase', 'snake_case', 'UPPERCASE', and 'original'| |PascalCase|
|
||||
|enumPropertyNamingReplaceSpecialChar|Set to true to replace '-' and '+' symbols with 'minus_' and 'plus_' in enum of type string| |false|
|
||||
|enumType|Specify the enum type which should be used in the client code.|<dl><dt>**stringUnion**</dt><dd>Union of literal string types</dd><dt>**enum**</dt><dd>Typescript's [string enums](https://www.typescriptlang.org/docs/handbook/enums.html#string-enums)</dd></dl>|enum|
|
||||
|enumUnknownDefaultCase|If the server adds new enum cases, that are unknown by an old spec/client, the client will fail to parse the network response.With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the server sends an enum case that is not known by the client/spec, they can safely fallback to this case.|<dl><dt>**false**</dt><dd>No changes to the enum's are made, this is the default option.</dd><dt>**true**</dt><dd>With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the enum case sent by the server is not known by the client/spec, can safely be decoded to this case.</dd></dl>|false|
|
||||
|fileContentDataType|Specifies the type to use for the content of a file - i.e. Blob (Browser, Deno) / Buffer (node)| |Buffer|
|
||||
|framework|Specify the framework which should be used in the client code.|<dl><dt>**fetch-api**</dt><dd>fetch-api</dd><dt>**jquery**</dt><dd>jquery</dd></dl>|fetch-api|
|
||||
|
||||
@@ -22,7 +22,7 @@ npm install @openapitools/openapi-generator-cli -g
|
||||
To install a specific version of the tool, pass the version during installation:
|
||||
<!-- RELEASE_VERSION -->
|
||||
```bash
|
||||
openapi-generator-cli version-manager set 5.3.0
|
||||
openapi-generator-cli version-manager set 7.8.0
|
||||
```
|
||||
<!-- /RELEASE_VERSION -->
|
||||
To install the tool as a dev dependency in your current project:
|
||||
@@ -103,18 +103,18 @@ docker run --rm \
|
||||
<!-- RELEASE_VERSION -->
|
||||
If you're looking for the latest stable version, you can grab it directly from Maven.org (Java 11 runtime at a minimum):
|
||||
|
||||
JAR location: `https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.7.0/openapi-generator-cli-7.7.0.jar`
|
||||
JAR location: `https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.8.0/openapi-generator-cli-7.8.0.jar`
|
||||
|
||||
For **Mac/Linux** users:
|
||||
|
||||
```bash
|
||||
wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.7.0/openapi-generator-cli-7.7.0.jar -O openapi-generator-cli.jar
|
||||
wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.8.0/openapi-generator-cli-7.8.0.jar -O openapi-generator-cli.jar
|
||||
```
|
||||
|
||||
For **Windows** users, you will need to install [wget](http://gnuwin32.sourceforge.net/packages/wget.htm) or you can use Invoke-WebRequest in PowerShell (3.0+), e.g.
|
||||
|
||||
```powershell
|
||||
Invoke-WebRequest -OutFile openapi-generator-cli.jar https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.7.0/openapi-generator-cli-7.7.0.jar
|
||||
Invoke-WebRequest -OutFile openapi-generator-cli.jar https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.8.0/openapi-generator-cli-7.8.0.jar
|
||||
```
|
||||
<!-- /RELEASE_VERSION -->
|
||||
|
||||
|
||||
@@ -11,13 +11,12 @@ A Maven plugin to support the OpenAPI generator project
|
||||
|
||||
Add to your `build->plugins` section (default phase is `generate-sources` phase)
|
||||
|
||||
<!-- RELEASE_VERSION -->
|
||||
```xml
|
||||
<plugin>
|
||||
<groupId>org.openapitools</groupId>
|
||||
<artifactId>openapi-generator-maven-plugin</artifactId>
|
||||
<!-- RELEASE_VERSION -->
|
||||
<version>6.6.0</version>
|
||||
<!-- /RELEASE_VERSION -->
|
||||
<version>7.8.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
@@ -34,6 +33,7 @@ Add to your `build->plugins` section (default phase is `generate-sources` phase)
|
||||
</executions>
|
||||
</plugin>
|
||||
```
|
||||
<!-- /RELEASE_VERSION -->
|
||||
|
||||
Followed by:
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<groupId>org.openapitools</groupId>
|
||||
<artifactId>openapi-generator-project</artifactId>
|
||||
<!-- RELEASE_VERSION -->
|
||||
<version>8.0.0-SNAPSHOT</version>
|
||||
<version>7.9.0-SNAPSHOT</version>
|
||||
<!-- /RELEASE_VERSION -->
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<artifactId>openapi-generator-project</artifactId>
|
||||
<groupId>org.openapitools</groupId>
|
||||
<!-- RELEASE_VERSION -->
|
||||
<version>8.0.0-SNAPSHOT</version>
|
||||
<version>7.9.0-SNAPSHOT</version>
|
||||
<!-- /RELEASE_VERSION -->
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -62,14 +62,14 @@ public class WorkflowSettingsTest {
|
||||
.withGlobalProperty("second", "2nd")
|
||||
.build();
|
||||
|
||||
Map<String, String> properties = modified.getGlobalProperties();
|
||||
assertEquals(properties.size(), 2, "System Properties map should allow mutation when invoked via copy constructor");
|
||||
assertEquals(properties.getOrDefault("first", ""), "1st");
|
||||
assertEquals(properties.getOrDefault("second", ""), "2nd");
|
||||
Map<String, String> globalProperties = modified.getGlobalProperties();
|
||||
assertEquals(globalProperties.size(), 2, "System Properties map should allow mutation when invoked via copy constructor");
|
||||
assertEquals(globalProperties.getOrDefault("first", ""), "1st");
|
||||
assertEquals(globalProperties.getOrDefault("second", ""), "2nd");
|
||||
}
|
||||
|
||||
private void assertOnChangesToDefaults(WorkflowSettings defaults) {
|
||||
WorkflowSettings settings = WorkflowSettings.newBuilder()
|
||||
private void assertOnChangesToDefaults(WorkflowSettings defaultSettings) {
|
||||
WorkflowSettings newSettings = WorkflowSettings.newBuilder()
|
||||
.withOutputDir("output")
|
||||
.withVerbose(true)
|
||||
.withSkipOverwrite(true)
|
||||
@@ -81,32 +81,32 @@ public class WorkflowSettingsTest {
|
||||
.withStrictSpecBehavior(false)
|
||||
.build();
|
||||
|
||||
assertNotEquals(defaults.getOutputDir(), settings.getOutputDir());
|
||||
assertEquals(settings.getOutputDir(), Paths.get("output").toAbsolutePath().toString());
|
||||
assertNotEquals(defaultSettings.getOutputDir(), newSettings.getOutputDir());
|
||||
assertEquals(newSettings.getOutputDir(), Paths.get("output").toAbsolutePath().toString());
|
||||
|
||||
assertNotEquals(defaults.isVerbose(), settings.isVerbose());
|
||||
assertTrue(settings.isVerbose());
|
||||
assertNotEquals(defaultSettings.isVerbose(), newSettings.isVerbose());
|
||||
assertTrue(newSettings.isVerbose());
|
||||
|
||||
assertNotEquals(defaults.isSkipOverwrite(), settings.isSkipOverwrite());
|
||||
assertTrue(settings.isSkipOverwrite());
|
||||
assertNotEquals(defaultSettings.isSkipOverwrite(), newSettings.isSkipOverwrite());
|
||||
assertTrue(newSettings.isSkipOverwrite());
|
||||
|
||||
assertNotEquals(defaults.isRemoveOperationIdPrefix(), settings.isRemoveOperationIdPrefix());
|
||||
assertTrue(settings.isRemoveOperationIdPrefix());
|
||||
assertNotEquals(defaultSettings.isRemoveOperationIdPrefix(), newSettings.isRemoveOperationIdPrefix());
|
||||
assertTrue(newSettings.isRemoveOperationIdPrefix());
|
||||
|
||||
assertNotEquals(defaults.isLogToStderr(), settings.isLogToStderr());
|
||||
assertTrue(settings.isLogToStderr());
|
||||
assertNotEquals(defaultSettings.isLogToStderr(), newSettings.isLogToStderr());
|
||||
assertTrue(newSettings.isLogToStderr());
|
||||
|
||||
assertNotEquals(defaults.isValidateSpec(), settings.isValidateSpec());
|
||||
assertFalse(settings.isValidateSpec());
|
||||
assertNotEquals(defaultSettings.isValidateSpec(), newSettings.isValidateSpec());
|
||||
assertFalse(newSettings.isValidateSpec());
|
||||
|
||||
assertNotEquals(defaults.isEnablePostProcessFile(), settings.isEnablePostProcessFile());
|
||||
assertTrue(settings.isEnablePostProcessFile());
|
||||
assertNotEquals(defaultSettings.isEnablePostProcessFile(), newSettings.isEnablePostProcessFile());
|
||||
assertTrue(newSettings.isEnablePostProcessFile());
|
||||
|
||||
assertNotEquals(defaults.isEnableMinimalUpdate(), settings.isEnableMinimalUpdate());
|
||||
assertTrue(settings.isEnableMinimalUpdate());
|
||||
assertNotEquals(defaultSettings.isEnableMinimalUpdate(), newSettings.isEnableMinimalUpdate());
|
||||
assertTrue(newSettings.isEnableMinimalUpdate());
|
||||
|
||||
assertNotEquals(defaults.isStrictSpecBehavior(), settings.isStrictSpecBehavior());
|
||||
assertFalse(settings.isStrictSpecBehavior());
|
||||
assertNotEquals(defaultSettings.isStrictSpecBehavior(), newSettings.isStrictSpecBehavior());
|
||||
assertFalse(newSettings.isStrictSpecBehavior());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -97,7 +97,7 @@ task validateGoodSpec(type: org.openapitools.generator.gradle.plugin.tasks.Valid
|
||||
[source,group]
|
||||
----
|
||||
plugins {
|
||||
id "org.openapi.generator" version "7.7.0"
|
||||
id "org.openapi.generator" version "7.8.0"
|
||||
}
|
||||
----
|
||||
|
||||
@@ -113,7 +113,7 @@ buildscript {
|
||||
// url "https://plugins.gradle.org/m2/"
|
||||
}
|
||||
dependencies {
|
||||
classpath "org.openapitools:openapi-generator-gradle-plugin:7.7.0"
|
||||
classpath "org.openapitools:openapi-generator-gradle-plugin:7.8.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -759,7 +759,7 @@ buildscript {
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.2.1'
|
||||
classpath('org.openapitools:openapi-generator-gradle-plugin:7.7.0') {
|
||||
classpath('org.openapitools:openapi-generator-gradle-plugin:7.8.0') {
|
||||
exclude group: 'com.google.guava'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# RELEASE_VERSION
|
||||
openApiGeneratorVersion=8.0.0-SNAPSHOT
|
||||
openApiGeneratorVersion=7.9.0-SNAPSHOT
|
||||
# /RELEASE_VERSION
|
||||
|
||||
# BEGIN placeholders
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<groupId>org.openapitools</groupId>
|
||||
<artifactId>openapi-generator-project</artifactId>
|
||||
<!-- RELEASE_VERSION -->
|
||||
<version>8.0.0-SNAPSHOT</version>
|
||||
<version>7.9.0-SNAPSHOT</version>
|
||||
<!-- /RELEASE_VERSION -->
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -19,5 +19,5 @@ gradle generateGoWithInvalidSpec # expected outcome: BUILD FAILED
|
||||
The samples can be tested against other versions of the plugin using the `openApiGeneratorVersion` property. For example:
|
||||
|
||||
```bash
|
||||
gradle -PopenApiGeneratorVersion=7.7.0 openApiValidate
|
||||
gradle -PopenApiGeneratorVersion=7.8.0 openApiValidate
|
||||
```
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# RELEASE_VERSION
|
||||
openApiGeneratorVersion=8.0.0-SNAPSHOT
|
||||
openApiGeneratorVersion=7.9.0-SNAPSHOT
|
||||
# /RELEASE_VERSION
|
||||
|
||||
@@ -12,7 +12,7 @@ Add to your `build->plugins` section (default phase is `generate-sources` phase)
|
||||
<groupId>org.openapitools</groupId>
|
||||
<artifactId>openapi-generator-maven-plugin</artifactId>
|
||||
<!-- RELEASE_VERSION -->
|
||||
<version>7.7.0</version>
|
||||
<version>7.8.0</version>
|
||||
<!-- /RELEASE_VERSION -->
|
||||
<executions>
|
||||
<execution>
|
||||
|
||||
@@ -1,198 +0,0 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.openapitools</groupId>
|
||||
<artifactId>sample-project</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<name>sample-project</name>
|
||||
<url>https://maven.apache.org</url>
|
||||
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<!-- activate the plugin -->
|
||||
<plugin>
|
||||
<groupId>org.openapitools</groupId>
|
||||
<artifactId>openapi-generator-maven-plugin</artifactId>
|
||||
<!-- RELEASE_VERSION -->
|
||||
<version>5.3.1-SNAPSHOT</version>
|
||||
<!-- /RELEASE_VERSION -->
|
||||
<executions>
|
||||
<execution>
|
||||
<id>camel-server</id>
|
||||
<goals>
|
||||
<goal>generate</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<!-- specify the swagger yaml -->
|
||||
<inputSpec>${project.basedir}/swagger.yaml</inputSpec>
|
||||
|
||||
<!-- target to generate java client code -->
|
||||
<generatorName>camel</generatorName>
|
||||
|
||||
<!-- hint: if you want to generate java server code, e.g. based on Spring Boot,
|
||||
you can use the following target: <generatorName>spring</generatorName> -->
|
||||
|
||||
<!-- pass any necessary config options -->
|
||||
<configOptions>
|
||||
<camelRestBindingMode>auto</camelRestBindingMode>
|
||||
<useBeanValidation>true</useBeanValidation>
|
||||
<performBeanValidation>true</performBeanValidation>
|
||||
<camelDataformatProperties>json.out.disableFeatures=WRITE_DATES_AS_TIMESTAMPS</camelDataformatProperties>
|
||||
<withXml>true</withXml>
|
||||
<jackson>true</jackson>
|
||||
<camelUseDefaultValidationErrorProcessor>true</camelUseDefaultValidationErrorProcessor>
|
||||
<!--
|
||||
Define bean validation error processor
|
||||
<camelUseDefaultValidationErrorProcessor>false</camelUseDefaultValidationErrorProcessor>
|
||||
<camelValidationErrorProcessor>errorProcessorBeanName</camelValidationErrorProcessor>
|
||||
-->
|
||||
<camelRestClientRequestValidation>true</camelRestClientRequestValidation>
|
||||
<camelSecurityDefinitions>true</camelSecurityDefinitions>
|
||||
</configOptions>
|
||||
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.1</version>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
<proc>none</proc>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<pluginManagement>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
<pluginRepositories>
|
||||
<pluginRepository>
|
||||
<id>sonatype-snapshots</id>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.camel</groupId>
|
||||
<artifactId>camel-bom</artifactId>
|
||||
<version>3.13.0</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.camel.springboot</groupId>
|
||||
<artifactId>camel-spring-boot-bom</artifactId>
|
||||
<version>3.13.0</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-dependencies</artifactId>
|
||||
<version>2.6.1</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.camel.springboot</groupId>
|
||||
<artifactId>camel-spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.camel.springboot</groupId>
|
||||
<artifactId>camel-servlet-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.openapitools</groupId>
|
||||
<artifactId>jackson-databind-nullable</artifactId>
|
||||
<version>0.2.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.swagger</groupId>
|
||||
<artifactId>swagger-annotations</artifactId>
|
||||
<version>1.6.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.swagger.core.v3</groupId>
|
||||
<artifactId>swagger-annotations</artifactId>
|
||||
<version>2.1.11</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-jsr310</artifactId>
|
||||
<version>2.15.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-jdk8</artifactId>
|
||||
<version>2.15.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.camel</groupId>
|
||||
<artifactId>camel-jackson</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.camel</groupId>
|
||||
<artifactId>camel-jacksonxml</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.camel</groupId>
|
||||
<artifactId>camel-jaxb</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.camel</groupId>
|
||||
<artifactId>camel-direct</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.camel</groupId>
|
||||
<artifactId>camel-bean-validator</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Test dependencies -->
|
||||
<dependency>
|
||||
<groupId>com.mashape.unirest</groupId>
|
||||
<artifactId>unirest-java</artifactId>
|
||||
<version>1.4.9</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.camel</groupId>
|
||||
<artifactId>camel-test-spring-junit5</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<properties>
|
||||
<swagger-annotations-version>1.5.8</swagger-annotations-version>
|
||||
|
||||
<spring-boot-starter-web.version>2.2.1.RELEASE</spring-boot-starter-web.version>
|
||||
<springfox-version>2.8.0</springfox-version>
|
||||
</properties>
|
||||
</project>
|
||||
@@ -13,7 +13,7 @@
|
||||
<groupId>org.openapitools</groupId>
|
||||
<artifactId>openapi-generator-maven-plugin</artifactId>
|
||||
<!-- RELEASE_VERSION -->
|
||||
<version>8.0.0-SNAPSHOT</version>
|
||||
<version>7.9.0-SNAPSHOT</version>
|
||||
<!-- /RELEASE_VERSION -->
|
||||
<executions>
|
||||
<execution>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<groupId>org.openapitools</groupId>
|
||||
<artifactId>openapi-generator-maven-plugin</artifactId>
|
||||
<!-- RELEASE_VERSION -->
|
||||
<version>8.0.0-SNAPSHOT</version>
|
||||
<version>7.9.0-SNAPSHOT</version>
|
||||
<!-- /RELEASE_VERSION -->
|
||||
<executions>
|
||||
<execution>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<groupId>org.openapitools</groupId>
|
||||
<artifactId>openapi-generator-maven-plugin</artifactId>
|
||||
<!-- RELEASE_VERSION -->
|
||||
<version>8.0.0-SNAPSHOT</version>
|
||||
<version>7.9.0-SNAPSHOT</version>
|
||||
<!-- /RELEASE_VERSION -->
|
||||
<dependencies>
|
||||
<dependency>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<groupId>org.openapitools</groupId>
|
||||
<artifactId>openapi-generator-maven-plugin</artifactId>
|
||||
<!-- RELEASE_VERSION -->
|
||||
<version>8.0.0-SNAPSHOT</version>
|
||||
<version>7.9.0-SNAPSHOT</version>
|
||||
<!-- /RELEASE_VERSION -->
|
||||
<executions>
|
||||
<execution>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<groupId>org.openapitools</groupId>
|
||||
<artifactId>openapi-generator-maven-plugin</artifactId>
|
||||
<!-- RELEASE_VERSION -->
|
||||
<version>8.0.0-SNAPSHOT</version>
|
||||
<version>7.9.0-SNAPSHOT</version>
|
||||
<!-- /RELEASE_VERSION -->
|
||||
<executions>
|
||||
<execution>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<groupId>org.openapitools</groupId>
|
||||
<artifactId>openapi-generator-maven-plugin</artifactId>
|
||||
<!-- RELEASE_VERSION -->
|
||||
<version>8.0.0-SNAPSHOT</version>
|
||||
<version>7.9.0-SNAPSHOT</version>
|
||||
<!-- /RELEASE_VERSION -->
|
||||
<executions>
|
||||
<execution>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<groupId>org.openapitools</groupId>
|
||||
<artifactId>openapi-generator-project</artifactId>
|
||||
<!-- RELEASE_VERSION -->
|
||||
<version>8.0.0-SNAPSHOT</version>
|
||||
<version>7.9.0-SNAPSHOT</version>
|
||||
<!-- /RELEASE_VERSION -->
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<groupId>org.openapitools</groupId>
|
||||
<artifactId>openapi-generator-project</artifactId>
|
||||
<!-- RELEASE_VERSION -->
|
||||
<version>8.0.0-SNAPSHOT</version>
|
||||
<version>7.9.0-SNAPSHOT</version>
|
||||
<!-- /RELEASE_VERSION -->
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -23,6 +23,7 @@ import io.swagger.v3.parser.core.models.AuthorizationValue;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Setter
|
||||
@@ -31,6 +32,8 @@ public class GeneratorInput {
|
||||
@Getter private Map<String, String> options;
|
||||
private String openAPIUrl;
|
||||
@Getter private AuthorizationValue authorizationValue;
|
||||
//FILTER=operationId:updatePet
|
||||
@Getter private List<String> openapiNormalizer;
|
||||
|
||||
@ApiModelProperty(example = "https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml")
|
||||
public String getOpenAPIUrl() {
|
||||
|
||||
@@ -118,6 +118,7 @@ public class Generator {
|
||||
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "The OpenAPI specification supplied was not valid");
|
||||
}
|
||||
|
||||
|
||||
// do not use opts.getOptions().get("outputFolder") as the input can contain ../../
|
||||
// to access other folders in the server
|
||||
String destPath = language + "-" + type.getTypeName();
|
||||
@@ -140,6 +141,16 @@ public class Generator {
|
||||
codegenConfig.additionalProperties().put("openAPI", openapi);
|
||||
}
|
||||
|
||||
if(opts.getOpenapiNormalizer() != null && !opts.getOpenapiNormalizer().isEmpty()){
|
||||
for(String rule: opts.getOpenapiNormalizer()){
|
||||
String[] ruleOperands = rule.split("=");
|
||||
if(ruleOperands.length != 2) {
|
||||
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "In rule: " + rule + "the operands were not provided in the form of <Rule>=<Value>");
|
||||
}
|
||||
codegenConfig.openapiNormalizer().put(ruleOperands[0],ruleOperands[1]);
|
||||
}
|
||||
}
|
||||
|
||||
codegenConfig.setOutputDir(outputFolder);
|
||||
|
||||
clientOptInput.config(codegenConfig);
|
||||
|
||||
@@ -10,6 +10,7 @@ import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import org.springframework.test.web.servlet.MockMvc;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import static org.hamcrest.Matchers.hasItem;
|
||||
import static org.hamcrest.Matchers.not;
|
||||
@@ -133,4 +134,32 @@ public class GenApiControllerTest {
|
||||
.content("{\"openAPIUrl\": \"" + invalidOpenAPIUrl + "\"}"))
|
||||
.andExpect(status().isBadRequest());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void generateWithOpenAPINormalizer() throws Exception {
|
||||
String withOpenAPINormalizer = "{\"openAPIUrl\":\"https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml\",\"openapiNormalizer\":[\"FILTER=operationId:updatePet\"],\"options\":{},\"spec\":{}}";
|
||||
String withoutOpenAPINormalizer = "{\"openAPIUrl\":\"https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml\",\"options\":{},\"spec\":{}}";
|
||||
|
||||
String responseOfNormalized = mockMvc.perform(post("http://test.com:1234/api/gen/clients/java")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(withOpenAPINormalizer))
|
||||
.andExpect(status().isOk()).andReturn().getResponse().getContentAsString();
|
||||
String codeOfNormalized = new ObjectMapper().readValue(responseOfNormalized, ResponseCode.class).getCode();
|
||||
Long lengthOfNormalized = Long.parseLong(mockMvc.perform(get("http://test.com:1234/api/gen/download/" + codeOfNormalized))
|
||||
.andExpect(content().contentType("application/zip"))
|
||||
.andExpect(status().isOk()).andReturn().getResponse().getHeader("Content-Length"));
|
||||
|
||||
String responseOfNotNormalized = mockMvc.perform(post("http://test.com:1234/api/gen/clients/java")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(withoutOpenAPINormalizer))
|
||||
.andExpect(status().isOk()).andReturn().getResponse().getContentAsString();
|
||||
|
||||
String codeOfNotNormalized = new ObjectMapper().readValue(responseOfNotNormalized, ResponseCode.class).getCode();
|
||||
Long lengthOfNotNormalized = Long.parseLong(mockMvc.perform(get("http://test.com:1234/api/gen/download/" + codeOfNotNormalized))
|
||||
.andExpect(content().contentType("application/zip"))
|
||||
.andExpect(status().isOk()).andReturn().getResponse().getHeader("Content-Length"));
|
||||
|
||||
Assert.isTrue(lengthOfNormalized <= lengthOfNotNormalized,"Using the normalizer should result in a smaller or equal file size");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user