I spotted a mention of `github.com/antihax/optional` in
AbstractGoCodegen. I was curious and investigated. However, it turns out
that this code is an obsolete remnant of the go-deprecated generator
removed before 6.0.0, so is now just a false lead. This PR cleans it up
so no-one else has to go down the same investigative pathway.
* [Ruby] Fix Operation Servers
* user `server_index` instead of `index`
* use nil as default
* add tests
* revert tests
* add tests to custom file
* add test file to ruby-faraday
This fixes#15043
The issue is that browsers like "text/html,...,*/*;q=0.8" (see for
instance https://developer.mozilla.org/en-US/docs/Web/HTTP/Content_negotiation/List_of_default_Accept_values
)
Without this commit we end up with an array of accepted type like
`("text/html", "*/*;q=0.8)` so when we then check if the array contains
`*/*` the check fails, and we return a 406 even though the client is
able to get the response.
This commit fixes it by removing the `;q=0.8` part.
(Ideally we should not just discard that part, we should extract that
value, and order by it. See
https://developer.mozilla.org/en-US/docs/Glossary/Quality_values for
more info about that. However this could be done in a subsequent PR:
this already fixes the 406 error, which is pretty blocking)
* [Julia] update samples test and a minor fix
- updating samples test for Julia generated code to use the latest OpenAPI.jl Julia package, which includes tests for file uploads
- also including a fix where generated code duplicated the `mandatory` flag in one of the method calls
* add blank line, trigger build with julia workflow
* more updates to julia samples tests
* add samples changes
* [haskell] fix exampe code in generated README.md
Since create{{title}}Client is not a monadic action, we need to use
"let" instead of "<-".
* regenerate samples
- detect multipart and urlencoded post data formats correctly on the server side
- generate data types correctly for binary file uploads
- re-generated samples
* Switch Poison to Jason
* generate-samples.sh
* Finalize Poison -> Jason switch
* parse date-time values to Elixir DateTime
* improve formatting in various places, so there's less changes by `mix
format` later
* fix Java version in flake.nix
* Use List.delete/2 instead of Enum.reject/2 for performance reasons
* mix format test/*
* Install dialyxir and fix reported issues
* Fix RequestBuilder.decode/2 hardcoded module name
* Update docs
* Revert changes to API spec (HTTP -> HTTPS)
* Revert uneeded change to Elixir code generator
* Use HTTP in Elixir tests
HTTPS doesn't work for folks who setup petstore.swagger.io as described
in docs/faq-contributing.md.
---------
Co-authored-by: Wojciech Piekutowski <wojciech@piekutowski.net>
* Make generated kotlin variable nullable if corresponding schema property is required and nullable
* Updating generated samples
* Fixing indent
* Updating samples after indent fix in mustache template
* Improvement of Ada client and server generator
- recognize several mime types and configure the client/server API
- fix support to handle binary and ByteArray
- add support for client and server with multiple mime type responses
- update model templates
* Fix and improvement of Ada code generator
- fix order of model types to emit the types that depend on other
types after; also sort the model types on their name
- fix model Serialize to avoid serializing a field which is Null
when it is not "Nullable"
* Add support to avoid some Ada Vectors package instantiation
- recognized the x-ada-no-vector specific attribute on model types
and when present and TRUE, don't emit the Ada Vector package instantiation
nor the Serialize and Deserialize associated procedures.
* Fix float and double support
- fix mapping for float and double
- add x-ada-serialize-op custom attribute to allow overriding the serialize procedure
- setup a default x-ada-serialize-op value for the template
* Fix wrong import and serialize method
* Regenerate the Ada client sample petstore
* Rebuild with export_docs_generators.sh
* Fix calls to toLowerCase() to use the Locale.ROOT
In OpenAPI it is possible to define an enum schema containing integers
only.
Similar to the following JSON snippet:
```
...
"components": {
"schemas": {
"size": {
"type": "integer",
"description": "Container size",
"enum": [
10000,
20000,
100000,
200000,
300000,
1000000,
1200000,
2500000,
5000000,
10000000
]
}
}
}
...
```
To correctly serialize this we need to convert to JSON integers. We can
achieve this by feeding nlohmann JSON objects directly with integers
instead of strings.
For the C++ pistache server adapt the enum models to serialize integer
values if possible.
* Update generatedAnnotation.mustache
Without this, it generates a jakarta annotation in the controllers of a spring boot 2 project.
* Updated examples
* Fix for [BUG][C#][csharp] Use RestClient.RemoteCertificateValidationCallback for SSL validation #11497
* Fixed modification of wrong files through merging to master and applied the changes to the correct files
* Updated examples
* Forget some examples
* Updates branch to reflect master changes and published changed example files yet again to solve conflicts
* Fixed examples
* Fix#12412 Use enum type for discriminator
* Rename variable
* Fix required property in test resource
* Add example of enum mapping to samples
* Generate samples
* Generate samples after merging master
* Regenerate samples
* Fix raw use of parameterized class
* Add test showing serialization and deserialization of classes with enum discriminator
* Remove old generated files
* Generate samples
* Generate samples
* Added support for windows authentication by exposing UseDefaultCredentials property
* Updated samples and docs
* update doc, samples
---------
Co-authored-by: William Cheng <wing328hk@gmail.com>
This fixes this Symfony warning:
User Deprecated: Method "Symfony\Component\HttpKernel\Bundle\Bundle::build()"
might add "void" as a native return type declaration in the future. Do the
same in child class "OpenAPI\Server\OpenAPIServerBundle" now to avoid errors
or add an explicit @return annotation to suppress this message
This fixes#15959
* Fix cli options use tags and api name suffix
* Add sample code generator for api suffix and tags
* Fix FILES
* trigger build
* Add sample to github workflow
* Add support for Angular 16
* Fix dependencies specifications
* Fix minimum angular supported version in readme
* Update integration tests
Even if they are currently not run.
* Update sample due to rebase
* make all unmaintained samples executable
* remove samples not generated by any config (not even unmaintained configs)
* remove deleted samples from github workflows
* Fix Java equals and hashCode methods to work with inheritence (#5756)
* Regenerate code samples with improved hashCode/equals
---------
Co-authored-by: Andrew Pikler <andrew.pikler@earnix.com>
* fix: use length to check for default return media type
as `mediaTypes` is an array of strings and an required argument
it will never be undefined when we can rely on the typesystem.
However, it can be zero length(`[]`) and in this case we would
throw.
* Closes#15011
* chore: update examples
* Convert `DioError` to `DioException`
* Update samples
* Update dio version in example
* Use proper dio version
* Regenerate dart samples
* Regenerate
* Regenerate samples
* update samples
* remove outdated test files
* update test
* remove outdated test files
---------
Co-authored-by: William Cheng <wing328hk@gmail.com>
* added new vendor extenion
* moved code to methods to enable overriding
* fixed tests
* renamed method to setTypeMapping
* removed commented code
* moved code to make diff easier to understand
* removed commented code
* process all operation parameter collections
* fixed bugs
* fixed bugs
* changed stability in ScalaSttpClientCodegen
* updated files from scripts
---------
Co-authored-by: Adam Fish Rybicki <adamrybicki@adams-macbook-pro.home>
* added new vendor extenion
* moved code to methods to enable overriding
* fixed tests
* renamed method to setTypeMapping
* removed commented code
* moved code to make diff easier to understand
* removed commented code
* added property in HttpSIgningConfiguration to accept API key in string format.
* remove trailing space, update samples
* updated the sample code.
* Revert "updated the sample code."
This reverts commit 5b945c7a59.
* fix the sample code compilation error for split function.
* updated the sample code after the split function fix.
* Removed the either or check for filePath or KeyString.
---------
Co-authored-by: Aanisha Mishra <aanisha.mishra05@gmail.com>
Co-authored-by: Vikrant Balyan (vvb) <vvb@cisco.com>
Co-authored-by: Vikrant Balyan <vvb@users.noreply.github.com>
Co-authored-by: Sebastien Rosset <serosset@cisco.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
* (fix): required-fields constructor uses super-call-parameters in the order of the parent required-field constructor
* (fix): required-fields constructor uses super-call-parameters in the order of the parent required-field constructor - add issue number
* (fix): required-fields constructor uses super-call-parameters in the order of the parent required-field constructor - fix file reference
* fix(ktor-client): do not add jsonBlock if using kotlinx-serialization
* update existing templates
* add new kotlin-jvm-ktor-kotlinx_serialization
* add new kotlin-jvm-ktor-kotlinx_serialization to samples-kotlin-client.yaml pipeline
actually, kotlin-jvm-ktor-gson was duplicated, so I'm replacing the second one by kotlin-jvm-ktor-kotlinx_serialization
* extra FILES entry in the template
* enumUnknownDefaultCase=false for now since it's currently broken for ktor + kotlinx_serialization
* use openapi 3 petstore
* Allow configuration cache compatibility
Use FileSystemOperations to delete output folder if Gradle Version >= 6
* Skip Gradle legacy test if JDK is not compatible
* fix: #1466 additionalProperties works now in spring generator
* chore: chore: #1466 solved rebase conflicts
* 1466; updated samples
* [Spring] update additionalProperties MR
* [Spring] additionalProperties unit test
---------
Co-authored-by: Your Name <benfonty@gmail.com>
Co-authored-by: Oleh Kurpiak <oleh.kurpiak@gmail.com>
* Updated Gradle documentation examples to use correct non-deprecated .set(x) syntax instead of directly assigning
* Updated more Gradle documentation examples to use correct non-deprecated .set(x) syntax instead of directly assigning
* Updated documentation to use Java 11 instead of Java 8
* [ada] fix use of isBasic condition
* [apex] fix use of isBasic condition
* [asciidoc] fix use of isBasic condition
* [python] fix use of isBasic condition
* [csharp C#] fix use of isBasic condition
* [htmlDocs] fix use of isBasic condition
* [Ruby] fix use of isBasic condition
* [scala] fix use of isBasic condition
* [julia] fix use of isBasic condition
* [Objective-C objc] fix use of isBasic condition
* [GraphQL] fix use of isBasic condition
* [MarkDown] fix use of isBasic condition
* handle multiple enum types for oneof
* add updates from generate-samples.sh
* add test coverage for oneof enum generation
* update doc and var names for clarity
* spring: fix spring pageable used without any config
Spring Pageable is imported whenever we have an API with
a Pageable Json schema, even if x-spring-paginated is not
set.
This commit imports Spring Pageable only if
x-spring-paginated is set to true.
* spring: add unit test for pageable fix
* spring: fix spring pageable feedback from review
remove unrelated example
---------
Co-authored-by: gonzalad <gonzalad@users.noreply.github.com>
* Bumped kotlin spring-jvm-webclient spring boot version from 2.7.11 to 3.1.0
* Do not redefine HttpHeaders and MediaType for simpler code
* Added a simpler constructor to the api and simplified encodeURIComponent
* Added support for Spring Boot 3 in kotlin-client jvm-spring-webclient generator
* Fixed small syntactical regression in Kotlin client build.gradle
It is very difficult to "merge" the changes, made by code generation,
and the changes, made by developers. It would be very useful to
separate the generated code and the code written by developers. In
addition this would remove the necessity to track the generated code.
Pyhton (since 3.6) has a hook, __init_subclasses__, that could be used
to solve exactly this problem.
The classes from *_base.py should be implemented in an ns package that is specified
by the additional parameter ("-p fastapiImplementationPackage=example_name").
Signed-off-by: Nikita Vakula <programmistov.programmist@gmail.com>
* spring: fix multiline tag description
@Tag description should merge multiple lines into single line
and trim the newline char at the end
The fix was done in a similar way to what is done for operation description.
* spring: multiline tag description add unit test
---------
Co-authored-by: gonzalad <gonzalad@users.noreply.github.com>
Co-authored-by: Oleh Kurpiak <oleh.kurpiak@gmail.com>
* Adds operation null check in the method GetOperationServerUrl to avoid null exception
* Adds operation null check to avoid null exception to the csharp net core mustache
* update C# samples
---------
Co-authored-by: William Cheng <wing328hk@gmail.com>
* support generation of enums for groovy
* add custom json generator for groovy
* add nestet enums in groovy templates
* add indent for nested Groovy enums & fix compilation errors in Groovy ApiUtils
* save auto generated samples&docs for groovy
* Added library 'jvm-spring-webclient' to Kotlin client generator
* Reran all generators and generated docs
* Changed target of kotlin-jvm-spring-webclient sample from 2_0 to 3_0
* Added build of kotlin-jvm-spring-webclient to github workflow
* remove http signature from test yaml when not supported
* do not use HttpBearerAuth for signature auth or other unsupported http auth method
ignore unsupported http auth method unless generated code would not compile (in which case, an exception is thrown)
* [Java] fix use of isBasic condition
* [kotlin] fix use of isBasic condition
* update to jdk11, fix tests
* update workflow to use jdk11 instead
* update travis, circleci build
* fix test failure, update CI
* skip mvn install in appveyor
* add windows tests
* fix workflow
* remove log level
* add timeout
* sleep more
* skip tests
* sleep more
* only skip tests
* test with jdk11 only
* fix gradlew
* remove skip tests
* start server after build
* update gradle version
* more time to start server
* update to 420
* comment out build
* update
* update
* remove java helidon client, server tests (covered in sample tests)
* add new workflow to test java helidon samples
* trigger build
* test jdk 17 only
* Revert "trigger build"
This reverts commit b9528a6588.
* [go-server] Support min/max/defaults for values
Enforce, for the go-server, to check the minimum and maximum values
specified in the openapi description. Also apply the default if the
parameter is not passed.
Fix#14013
* Fix merge conflict
Co-authored-by: Ween Jiann <16207788+lwj5@users.noreply.github.com>
* Improve UnmarshalJSON implementation
Co-authored-by: Ween Jiann <16207788+lwj5@users.noreply.github.com>
* Improve default value handling for string
Co-authored-by: Ween Jiann <16207788+lwj5@users.noreply.github.com>
* Fix suggested changes
* rework option pattern
* add imports based on types/min max values
---------
Co-authored-by: Ween Jiann <16207788+lwj5@users.noreply.github.com>
As interfaceOnly=true not generates main class the repackage goal for the artifact fails.
This change applies the same template as used in JavaSpring or in kotlin-spring spring-cloud library.
* Add apiNameSuffix to AbstractGoCodegen
* Regenerate files
* Update tests
* Regenerate files
* Update test files
* Regenerate for CI test
* Regenerate for CI test
* Remove some docs
* Add files back
* Convert `Set` to `List` in `toJson()` for properly encoding a set.
* Generate samples code.
* Convert to List before encoding in `toJson()`.
* Add `!` for nullable properties.
* target 7.0.x
* generate all files
* fix up type in JSDoc param as well, address comment
* add fix for rxjs build
Co-authored-by: Christopher Chaaya <christopher.chaaya@bukalapak.com>
For Windows users, please run the script in [Git BASH](https://gitforwindows.org/).
- [ ] In case you are adding a new generator, run the following additional script :
```
./bin/utils/ensure-up-to-date.sh
./bin/utils/ensure-up-to-date
```
Commit all changed files.
- [ ] File the PR against the [correct branch](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches): `master` (6.3.0) (minor release - breaking changes with fallbacks), `7.0.x` (breaking changes without fallbacks)
[](https://twitter.com/oas_generator)
[](https://gitpod.io/#https://github.com/OpenAPITools/openapi-generator)
[](https://ge.openapi-generator.tech/scans)
| 7.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/7.0.0-SNAPSHOT/) | May/Jun 2023 | Major release with breaking changes (no fallback) |
| 6.6.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/6.6.0-SNAPSHOT/) | 28.04.2023 | Minor release with breaking changes (with fallback) |
| [6.5.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v6.5.0) (latest stable release) | 01.04.2023 | Minor release with breaking changes (with fallback) |
| [6.6.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v6.6.0) (latest stable release) | 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) |
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.
After downloading the JAR, run `java -jar openapi-generator-cli.jar help` to show the usage.
For Mac users, please make sure Java 8 is installed (Tips: run `java -version` to check the version), and export `JAVA_HOME` in order to use the supported Java version:
For Mac users, please make sure Java 11 is installed (Tips: run `java -version` to check the version), and export `JAVA_HOME` in order to use the supported Java version:
```sh
exportJAVA_HOME=`/usr/libexec/java_home -v 1.8`
exportJAVA_HOME=`/usr/libexec/java_home -v 1.11`
exportPATH=${JAVA_HOME}/bin:$PATH
```
<!-- /RELEASE_VERSION -->
### Launcher Script
@@ -249,19 +244,14 @@ openapi-generator-cli version # is always 4.0.2, unless any of the above overrid
To build from source, you need the following installed and available in your `$PATH:`
* [Apache Maven 3.3.4 or greater](https://maven.apache.org/)
* [Apache Maven 3.3.4 or greater](https://maven.apache.org/) (optional)
After cloning the project, you can build it from source with this command:
```sh
mvn clean install
```
After cloning the project, you can build it from source using [maven wrapper](https://github.com/takari/maven-wrapper):
If you don't have maven installed, you may directly use the included [maven wrapper](https://github.com/takari/maven-wrapper), and build with the command:
```sh
./mvnw clean install
```
- Linux: `./mvnw clean install`
- Windows: `mvnw.cmd clean install`
#### Nix users
@@ -269,7 +259,7 @@ If you're a nix user, you can enter OpenAPI Generator shell, by typing:
```sh
nix develop
```
It will enter a shell with Java 8 and Maven installed.
It will enter a shell with Java 11 installed.
Direnv supports automatically loading of the nix developer shell, so if you're using direnv too, type:
```sh
@@ -279,9 +269,8 @@ and have `java` and `mvn` set up with correct versions each time you enter proje
The default build contains minimal static analysis (via CheckStyle). To run your build with PMD and Spotbugs, use the `static-analysis` profile:
-g go -o /gen/out/go-petstore -p packageName=petstore # generates go client, outputs locally to ./out/go-petstore
```
##### Troubleshooting
If an error like this occurs, just execute the **mvn clean install -U** command:
If an error like this occurs, just execute the **./mvnw clean install -U** command:
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project openapi-generator: A type incompatibility occurred while executing org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test: java.lang.ExceptionInInitializerError cannot be cast to java.io.IOException
```sh
./run-in-docker.sh mvn clean install -U
./run-in-docker.sh ./mvnw clean install -U
```
> Failed to execute goal org.fortasoft:gradle-maven-plugin:1.0.8:invoke (default) on project openapi-generator-gradle-plugin-mvn-wrapper: org.gradle.tooling.BuildException: Could not execute build using Gradle distribution 'https://services.gradle.org/distributions/gradle-4.7-bin.zip'
@@ -411,7 +401,7 @@ cd openapi-generator
vagrant up
vagrant ssh
cd /vagrant
./run-in-docker.sh mvn package
./run-in-docker.sh ./mvnw package
```
### [1.7 - NPM](#table-of-contents)
@@ -430,7 +420,7 @@ openapi-generator-cli version
To use a specific version of "openapi-generator-cli"
```sh
openapi-generator-cli version-manager set 6.5.0
openapi-generator-cli version-manager set 6.6.0
```
Or install it as dev-dependency:
@@ -445,7 +435,7 @@ To generate a PHP client for [petstore.yaml](https://raw.githubusercontent.com/o
(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/6.5.0/openapi-generator-cli-6.5.0.jar)
You can also download the JAR (latest release) directly from [maven.org](https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/6.6.0/openapi-generator-cli-6.6.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`
@@ -598,6 +588,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- [Adyen](https://www.adyen.com/)
- [Agoda](https://www.agoda.com/)
- [Airthings](https://www.airthings.com/)
- [Aleri Solutions Gmbh](https://www.aleri.de/)
- [Allianz](https://www.allianz.com)
- [Angular.Schule](https://angular.schule/)
- [Aqovia](https://aqovia.com/)
@@ -657,6 +648,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- [Landeshauptstadt München - it@M](https://muenchen.digital/it-at-m/)
- [Linode](https://www.linode.com/)
- [Logicdrop](https://www.logicdrop.com)
- [Lumeris](https://www.lumeris.com)
@@ -910,6 +902,10 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- 2023-03-19 - [EXOGEM: Extending OpenAPI Generator for Monitoring of RESTful APIs](https://link.springer.com/chapter/10.1007/978-3-031-26507-5_10) by Daniel Friis Holtebo, Jannik Lucas Sommer, Magnus Mølgaard Lund, Alessandro Tibo, Junior Dongo & Michele Albano at "ICSOC 2022: Service-Oriented Computing – ICSOC 2022 Workshops"
- 2023-03-28 - [API-First Design with OpenAPI Generator](https://www.linkedin.com/pulse/api-first-design-openapi-generator-jonathan-manera/) by [Jonathan Manera](https://www.linkedin.com/in/manerajona/)
- 2023-03-28 - [ハンズオンで学ぶサーバーサイド Kotlin(Spring Boot&Arrow&OpenAPI Generator)v1.0.1](https://zenn.dev/msksgm/books/implementing-server-side-kotlin-development) by [msk](https://zenn.dev/msksgm)
- 2023-04-01 - [OpenAPI Client Code Generation](https://testingboss.com/blog/openapi-client-generation/) by Kwo Ding
- 2023-04-27 - [Create an Angular Client using OpenAPI Specifications](Create an Angular Client using OpenAPI Specifications) by [Patric](https://pguso.medium.com/)
- 2023-05-16 - [Adyen for Java developers](https://www.adyen.com/blog/adyen-java-library) by [Beppe Catanese, Developer Advocate, Adyen](https://github.com/gcatanese)
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"
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.