* [typescript][node]: Add options to specify a from data file
Be able to specify file options as described on
https://github.com/request/request in the 'multipart/form-data
(Multipart Form Uploads)' section).
Related to #3944
Fix file return type
* [typescript][node]: Fix use of applyLocalTypeMapping
Previous call to applyLocalTypeMapping didn't had any effect.
* [typescript][node]: Update samples
* [PHP] Correctly format JSON in headers
`ObjectSerializer::toHeaderValue()` in the generated PHP code calls
`toString()` on the values, which formats JSON with the `JSON_PRETTY_PRINT`
option. This will result in a multi-line header which cannot be parsed
since linebreaks aren't allowed by RFC 7230.
In my case I have a header schema called `UpdateUser` which I had hoped
would be serialized as `{"type":"staff","id":123}`.
Every single `__toString()` in the generator does the same thing, so I
figured it's safe to change `toHeaderValue()` to convert to JSON directly,
without `JSON_PRETTY_PRINT`. This fix works for me.
* More sensible approach to providing a header value
* Just strip the newlines
* Go back to previous solution
This allows specifying a different formatString for parsing than for rendering, which is useful because padding widths are not supported in `parseTimeMSource`
* [typescript][node]: Add accept header if produces is not empty
Uses the correct Accept media types as specified in the OpenApi
specifications.
Related to #3944
* Update samples files
* [typescript][node]: Give presedence to 'application/json'
The endpoint may support multiple formats, e.g. 'application/xml',
'application/json'. However, we don't really support xml. In this case
only accept 'application/json'.
* Clean up samples directory before fixing tests
- removed from samples/client/petstore/dart2 :
- purge_test.sh (doesn't seem to be used and not helpful)
- openapi folder (is to be re-generated with more meaningful name)
- updated dart2-petstore.sh to generate client library with new name
- used updated shell script to re-generate client library
- updated CI/.drone.yml to use the new client library for tests
* Update petstore tests to use faked http client
- skipped all of the tests that hit a live endpoint
- made a fake http client that can be set to check for expected values
and/or return a provided response
- added some files with test data recorded from live api calls
- updated the README to reflect changes to tests
* Update .drone.yml so CI will run the tests
* feat: allow creation of kotlin data classes that implement java.io.Serializable, by adding the config option serializableModel=(true|false)
* docs: add markdown docu for new configOption serializableModel
* fix: do not use parcelize in script
* update kotlin samples
* add the option, update the doc
* [jaxrs-spec] add quarkus application server
* [jaxrs-spec] add thorntail
* [jaxrs-spec] add openliberty
* [quarkus] update to 0.20.0
* Add helidon
* Update quarkus version
* Update quarkus to 0.22.0
* Update documentation
* Force "useSwaggerAnnotations" to be false when quarkus, thorntail,
openliberty or helidon are used
The Kotlin Multiplatform client introduced an bug that rendered variable
names that were also Kotlin reserved words incorrectly. This change reverts
the template to use the previous mechanism for rendering variable names.
https://github.com/OpenAPITools/openapi-generator/issues/3992
* [C++][Pistache] Simplified model template
* [C++][Pistache] Fix for addExternalLibs option
CMake would fail with addExternalLibs set to false
since it'd try to add depenency to not-existing targets
* [C++][Pistache] Update cpp-pistache-server-petstore.sh
* [C++][Pistache] Update Petstore sample
* [C++][Pistache] Update documentation
As we discovered in #3463, there are various bits of the rust client generator that are currently untested. This PR adds tests for various generator-specific types, and also files.
Follows the example of the rust-server generator for making it easy to add new test specs. This should make it easier for future contributors to make sure that their contributions are tested
* Python-experimental adds model_utils module, refactors python api class
* Fixes python-experimental so the sample sare generated in the petstore_api folder
* FIxes python samples tests
* Updates python and python-experimental tests
* Fixes python-experimental tests
* Adds newlines back to python templates + samples
* Reverts files with newline tweaks back to master branch versions
* Fixes indentation errors in python-experimental api_client
* Removes unused files
* Python files now generated in correct folders
* Adds logging when the user tries to set generateAliasAsModel in python-experimental
* Fixes typo
* typescript-fetch: to be able to handle application/x-www-form-urlencoded content
* typescript-fetch: run typescript-fetch-petstore-all.sh
* typescript-fetch: add test's dist dir
* typescript-fetch: delete Specified Content-Type header
* [spring] Resolve regression on RequestParam for non-objects
* Regenerate Go client samples
* Include testcase for issue 3248
* Set isModel appropriately for referenced schemas
* basic asciidoc markup generation
* asciidoc markup include processing with mustache filter
* asciidoc tests, separate include filters
* asciidoc petstore sample
* add asciidoc generator to readme
* test asciidoc generator for all include files with own json spec.
* link fillter to link generated test data into asciidoc markup
* fix and cleanup names asciidoc tests.
* fix travis build error, removed windows line endings from mustache asciiidoc templates.
* asciidoc generator: comment and reduce visibility of helper method (fix dron build)
* asciidoc: windows linefeed again (fix travis ci)
* asciidoc generator: remove \t and format again.
* fix ascidoc generator ci builds ... ongoing..
* asciidoc: add generator .md files, unix line ending.
* First version of Nim Client
* Add some codes
* Add some codes
* Add some codes
* Add some codes
* Add some codes
* First version of Nim Client
* Add some codes
* Add some codes
* [Dart] Fix README template and update testing doco (#3809)
* [Dart] Fix README template and update testing doco
- deleted redundant shell script
- fixed and updated README template
- updated test package and moved to a dev_dependency
- removed old unused dev_dependency packages
- updated testing documentation in petstore sample
* Remove references to dart-flutter-petstore.sh
* Fix typos
* Fix typo
* Support custom git repository (#3757)
* add gitHost param to GeneratorSettings and related
* parameterize gitHost in READMEs
* parameterize gitHost in go.mod
* parameterize gitHost in git_push
* update petstore samples
* run ./bin/utils/export_docs_generators.sh
* run meta-codehen.sh
* Revert "run meta-codehen.sh"
This reverts commit d6d579f615.
* Revert "run ./bin/utils/export_docs_generators.sh"
This reverts commit 1b81538198.
* Revert "update petstore samples"
This reverts commit f513add883.
* run ensure-up-to-date
* Add links to article and video (#3820)
* Better Go code format (#3819)
* better varible naming
* better comments
* better code format for go experimental client
* better comment, update samples
* Add some codes
* Add some codes
* Add some codes
* Add gRPC Protobuf schema generator (#3818)
* add grpc protobuf generator
* update doc
* add new doc
* add windows batch, comment out root proto
* 1792 fix remote spec handling and hash calculation (#3440)
* fixed bug where nullApi.java would be generated. Instead, generated DefaultApi.java to match the default path /{pathParam} (#3821)
* Revert "1792 fix remote spec handling and hash calculation (#3440)"
This reverts commit 2a2eefe93d.
* Add nickmeinhold to Dart technical committee (#3830)
* Bug #2845 typescript angular inheritance (#3812)
* issue #2845: enable 'supportsMultipleInheritance' on typescript angular client codegen
- note I reran ./bin/openapi3/typescript-angular-petstore-all.sh and no changes occurred.
this suggests to me that the petstore.yaml sample should be improved to make use of the
anyOf / allOf / oneOf keywords, in order to better show the effects of changes on generated code.
* issue #2845: run ./bin/openapi3/typescript-angular-petstore-all.sh
* run `mvn clean package && ./bin/typescript-angular-petstore-all.sh`
* revert extranous files
* fix warnings in csharp-netcore client (#3831)
* Add missing files to the form request (#3834)
* [client][go] avoid duplicated reflect imports (#3847)
* Following up for #3440 (1792 fix remote spec handling and hash calculation) (#3826)
* This patch fixes the bug that we cannot access to remote files when checking file updates.
Following up #3440, supporting auth.
* 1792 fix remote spec handling and hash calculation (#3440)
(cherry picked from commit 2a2eefe93d)
* fix detecting remote file / local file logic while finding the hash file, taking care of IllegalArgumentException for local files.
* add testcase
* Add a link (#3850)
* Add Element AI to the list (#3856)
* maven-plugin-plugin 3.6.0 (#3854)
* [Java][okhttp-gson] fix failure to deserialize floats (#3846)
* fixed bug where nullApi.java would be generated. Instead, generated DefaultApi.java to match the default path /{pathParam}
* fix to bug #3157
* update samples
* Adds Http Info To Dart Api (#3851)
* [C++][Pistache] Add missing setter for arrays (#3837)
* [C++][Pistache] Add missing setter for arrays
Fixes#3769
* [C++][Pistache] Update Petstore sample
* typescript-inversify: improve check for required parameters, support multiple media types (#3849)
* [typescript-inversify] Allow falsy parameters
A required parameter to an api method must not be `null` or `undefined`.
It can be any other falsy value, e.g. `""`, `0` or `false` though. This
change makes sure an error is only thrown in the former case and not in
the latter.
* [typescript-inversify] Handle multiple media types
The Accept and Content-Type HTTP headers can contain a list of media
types. Previously all but the first media type in the api definition
were ignored. Now the headers are properly generated.
* [typescript-inversify] Fix http client interface
The api service methods allow the `body` parameter to be optional. The
parameter is then passed to an `IHttpClient`. So it needs to be optional
there as well.
Also fixed the sample implementation `HttpClient`.
Fixes#3618.
* [typescript-inversify] Regenerate Petstore sample
* [typescript-inversify] Use more explicit null check
This does not change the semantic of the generated code, but makes it more explicit.
Co-Authored-By: Esteban Gehring <esteban.gehring@gmail.com>
* [typescript-angular] allow empty string basePath (#3489)
* [typescript-angular] Fixing #2731 - empty string basePath
* typescript-angular: refactor base path configuration
* typescript-angular: refactor base path configuration
* Fix/r/serialization fix and minor 3xx resp fix (#3817)
* fix(qlik): fix for minor serialization bug
* fix(r): add petsore generated classes
* fix(r): indendation fixes
* typescript-axios: Fix baseoptions (#3866)
* Fixed missing baseOptions of typescript-axios.
The typescript-axios template was missing the baseOptions setting when building an API Configuration. Set it.
* update sample.
* re-generate typescript axios samples
* Rename gRPC generator to "protobuf-schema" (#3864)
* rename grpc generator to protobuf-schema
* update doc
* Prepare v4.1.2 release (#3873)
* update samples
* update date
* fix version in readme
* BugFix #2053 Spring Boot fails to parse LocalDate query parameter (#3860)
Adds the format annotation so that Spring is able to serialize OpenApi date/date-time format into LocalDate/OffsetDateTime.
* update doc, samples (#3875)
* update stable release
* Update the batch for Windows
* Add a test snippet
* Update ensure-up-to-date
* Add Nim to README.md
* Ran ensure-up-to-date to pass CircleCI tests
* [scala][client] add Scala reserved words test
* fix filesystem path in [ScalaAkkaClientCodegenTest]
* add additional reserved words in scala_reserved_words.yaml
* ScalaAkkaClientCodegenTest: set mainPackage
* scala_reserved_words.yaml: declare 'required' fields
* rename test method
* tweak test description
* Fixed missing baseOptions of typescript-axios.
The typescript-axios template was missing the baseOptions setting when building an API Configuration. Set it.
* update sample.
* re-generate typescript axios samples
* [typescript-inversify] Allow falsy parameters
A required parameter to an api method must not be `null` or `undefined`.
It can be any other falsy value, e.g. `""`, `0` or `false` though. This
change makes sure an error is only thrown in the former case and not in
the latter.
* [typescript-inversify] Handle multiple media types
The Accept and Content-Type HTTP headers can contain a list of media
types. Previously all but the first media type in the api definition
were ignored. Now the headers are properly generated.
* [typescript-inversify] Fix http client interface
The api service methods allow the `body` parameter to be optional. The
parameter is then passed to an `IHttpClient`. So it needs to be optional
there as well.
Also fixed the sample implementation `HttpClient`.
Fixes#3618.
* [typescript-inversify] Regenerate Petstore sample
* [typescript-inversify] Use more explicit null check
This does not change the semantic of the generated code, but makes it more explicit.
Co-Authored-By: Esteban Gehring <esteban.gehring@gmail.com>
* fixed bug where nullApi.java would be generated. Instead, generated DefaultApi.java to match the default path /{pathParam}
* fix to bug #3157
* update samples
* This patch fixes the bug that we cannot access to remote files when checking file updates.
Following up #3440, supporting auth.
* 1792 fix remote spec handling and hash calculation (#3440)
(cherry picked from commit 2a2eefe93d)
* fix detecting remote file / local file logic while finding the hash file, taking care of IllegalArgumentException for local files.
* add testcase
* issue #2845: enable 'supportsMultipleInheritance' on typescript angular client codegen
- note I reran ./bin/openapi3/typescript-angular-petstore-all.sh and no changes occurred.
this suggests to me that the petstore.yaml sample should be improved to make use of the
anyOf / allOf / oneOf keywords, in order to better show the effects of changes on generated code.
* issue #2845: run ./bin/openapi3/typescript-angular-petstore-all.sh
* run `mvn clean package && ./bin/typescript-angular-petstore-all.sh`
* revert extranous files
* don't overwrite a custom set templateDir when using dart 2.x
* remove old dartson code which lead to compile time errors
* * fix decoding JSON to dart enums
* fix decoding a map with a list of some objects as value since the complexType is a List and List.mapFromJson doesn't exist.
* * add explanation for mapListFromJson
* fix file permissions
Whilst the spec states that the 'allOf' relationship does not imply a hierarchy:
> While composition offers model extensibility, it does not imply a hierarchy between the models.
> To support polymorphism, the OpenAPI Specification adds the discriminator field.
Unfortunately this does not make sense for many existing use cases, that were supported by older
versions of the generator. Therefore, I've restored the older behavior, specifically
in the case that only a single possible parent schema is present.
I think a more complete solution would generate interfaces for the composed schemas,
and mark the generated class as implementing these.
fixes issue 2845, and fixes issue #3523
Depending on the template parameters some imports may not get used -
this causes a typescript compiler error that must be manually fixed.
Signed-off-by: Silas Davis <silas@monax.io>
* Fixes NPE when no outputDir is set
* Fix behaviors of default values for values not provided by user
* Easier handling of default behavior in settings.
* Fixes for dynamic config deserialization (specifically, ruby client sample fix)
* Tests for WorkflowSettings (defaults, modified defaults, nulls)
* Test modification of WorkflowSettings defaults for both class constructor and builder
* move tests to drone.io
* ls dir
* debug
* use bash
* use jdk 11 image
* move tests to drone.io
* use maven wrapper
* comment out scripts in circleci
* update dart samples
* remove commented tests
* update dart samples
* two tiny fixes:
1.) ApiClient already defines and configures an objectMapper to not fail on unknown properties, but it is not used when parsing the response. The fix uses the pre-configured object mapper instead of the vertx default one
2.) When an operation has no response (or just ones without content), the accept array passed to ApiClient is emtpy. This makes the null check in ApiClient useless, as it still tries to set a null Accept header, which is refused with an NPE. Amend the check with .length > 0 to catch this case.
* update generated client as required by contributor guidelines
* Move dart null checks inside mustache type checks
- removed surrounding null check
- added a conditional expression to each case except the redundant one
* Run shell scripts so CIs can verify the change
Prefix generated request interface names with API classname rather than
using namespaces, because namespaces are not well-supported by some
tooling (in particular, Babel).
* test dart 1x in drone
* update dart image
* trigger build failure
* Revert "trigger build failure"
This reverts commit d565f348ba.
* add dart 2 test
* update build runner version
* test dart2
* only test dart jaguar
* remove pubspec.lock
* better wording
* use pub run test
* revert changes in build_runner
* update test in pom.xml
* update samples
* add dart scripts to ensure up-to-date
* fix(csharp-netcore): Fixing the build issues
* fix(csharp-netcore): Fixing the build issues
* fix(csharp-netcore): Fixing the Pet project
* fix(csharp-netcore): help fixes
* fix(csharp-netcore): Fixing the XML warnings
* fix(csharp-netcore): Updating Pet project
* fix(csharp-netcore): Minor fix
* fix(csharp-netcore): Minor fix
* fix(csharp-netcore): Minor ifx
* fix(csharp-netcore): Minor fix
* [java][model] set collection to null when not required
* Fix tests
* Fix trailing whitespace
* generate samples
* Restore 'de.thetaphi' plugin in pom.xml
Before Java 9, the `Generated` annotation was part of JEE and in the
`javax.annotation` package. Starting with Java 9, it is now part
of the standard SDK, under the new `javax.annotation.processing`
package.
This change creates a custom Generated annotation template for the
native clientlib, since it is guaranteed to be run in Java 11+.
* add test cases to cover different collection format
* add space params to retrofit 1.x
* add space params to retrofit 2.x
* rename url to localVarUrl
* fix exception in haskell servant
* Add correct library versions for Angular 8.0.0
* Keep Angular default version of 7.0.0 to avoid breaking changes
* Add petstore example for Angular 8
* Add ngVersion field to typescript-angular-v8-petstore-provided-in-root-with-npm.json
* Filter deprecated generators from CLI list by default.
* [gradle] Exclude deprecated generators from list by default, add "include" option to allow for customization of list task.
* Update scripts to support the --include option of the list command
* Update gradle/cli docs for generators listing with "include" option.
* Update addJsonHeaders
addJsonHeaders currently throws a compiler error because the headers args in get/put/post etc is nullable, but the argument in addJsonHeaders is not
* Executed samples generator
* [core] Initial support for server variable overrides
* [gradle] Support user overrides for serverVariables
* [core] Clarify server variable overrides, and propagate them to templates in the "servers" array
* Mustache lambda tests
* If lambda key is already taken in additionalProperties, throw an exception.
* Test whether common lambdas are registered in additionalProperties.
* create nodejs express esrver
* 1st commit of the express.js module. Express server working, api-docs loads properly. No real paths yet
* 1st commit of the express.js module. Express server working, api-docs loads properly. No real paths yet (#2839)
* Working Express server with successful routing to controllers.
* rewrote controllers and services. Haven't tested yet
* controllers and services have passed tests successfully
* Added documentation
* Added documentation
* Support for openApi v3, using 'express-openapi-validator' for parsing and validation, and an internal router to pass arguments to controllers and services. /controllers/Pet.js and /services/PetService.js should be used for reverse engineering for future codegen script
* update generator and template
* update samples
* more update
* update service, controller
* add vendor extensions
* some updates to adapt to changes in the generator (removing references to swager); some work on handling file uploads; some work on tests
* Update NodeJS server generator and templates based on new output (#3261)
* update generator and template
* update samples
* more update
* update service, controller
* add vendor extensions
* update doc
* Changed routing code to follow the following convention:
Each path operation has a 'x-openapi-router-controller' and 'x-openapi-router-service'. Automated files will be placed under /controllers and /services respectively.
Controller file names will end with 'Controller.js'.
Removed swaggerRouter, replaced it with openapiRouter
Routing works and simple tests show a return of 200 to requests.
* [nodejs-express-server] various updates, fixes (#3319)
* various fix
* remove dot from service
* add space
* better method empty argument
* remove test service (#3379)
* add new doc
* 1. routingTests.js runs through all operations described in openapi.yaml and tries calling them, expecting 200 in return. Currently not all tests pass - not supporting xml, and problems with formData
2. Removed old testing files.
3. Added model files - contain data and structure as defined in openapi.yaml. Model.js has static methods relevant to all model files.
4. Changed openapi.yaml to allow running tests easily.
* 1. routingTests.js runs through all operations described in openapi.yaml and tries calling them, expecting 200 in return. Currently not all tests pass - not supporting xml, and problems with formData (#3442)
2. Removed old testing files.
3. Added model files - contain data and structure as defined in openapi.yaml. Model.js has static methods relevant to all model files.
4. Changed openapi.yaml to allow running tests easily.
* added model classes. Currently as a concept only. Seems like won't be in use
* Updated README.md to be a detailed description of the project.
Removed test files that are not needed.
Removed utils/writer.js which is not needed, and the references to it in the codegen files
* Removed redundant file app.js - this file has no benefit at this point. index.js now calls ExpressServer.js directly. Updated files that used to call app.js. Updated README.md accordingly
Added a path to call the openapi.yaml, and a test file for all endpoints that are not in the openapi.yaml, ensuring that they return 200. Updated README.md accordingly
* Remove test controller (#3575)
* remove test controller
* add back changes to templates
* remove app.js
* update wording
* dart2: Use the correct classname in test generation
At present test generation has a stray hard-coded reference to the pet
store Pet() class, which should reflect the actual classname under test.
* dart2: Call toDouble() in generated code for double types
At present the generated code does not correctly handle transitioning
to double when dealing with non-integer types in JSON deserialization.
This ends up with dart raising an unhandled type mismatch exception:
Unhandled exception: type 'int' is not a subtype of type 'double' where
...
Using the .toDouble() conversion when a double type is expected fixes
this up by making the typing explicit.
* dart2: Drop use of deprecated 'new' keyword in generated code
The use of the 'new' keyword in dart2 is deprecated and should be
avoided, as per the official guidance of the dart2 authors:
https://dart.dev/guides/language/effective-dart/usage#dont-use-new
* dart2: Regenerate samples for mustache template changes
* Fix#3402 by giving the possibility to set additional headers and the credentials parameters to the fetch query.
* Fix#3402 : Changes from code review
* Added handling of api keys in headers.
* Added handling of optional arguments in api functions.
* Optional header params.
* Fixed a bug in path param replacement.
* Relaxed deserializing of model records with @@deriving yojson { strict = false }. It allows receiving more fields in the JSon payload than declared in the OCaml record, fields not matching any record field are ignored.
* Reformatted api-impl.mustache.
* Generate shorter enum value names by allowing underscore character.
* Cleanup of optional params generation.
* Updated the OCaml samples with the latest version of the generator.
* Corrected a bug encountered when generating default value for optional enum fields.
* Added v3 version of the samples for the OCaml generator.
* -Fix bug in fetch -> Missing "runtime"
-Move fetch files to an "src" folder instead of doing everything at the root which removes the bugs when using the library itself
-Fix the distribution of fetch using npm
* Move the .ts files to an `src` folder which is more common in npm package
* Add missing mustache
* Add missing .npmignore
* If a separate parent pom is specified, there
should be no depdendency management
#3230
* Add Bean Validation framework
* Fix test and depedencies
* Format pom
[Rust Server] Support multipart/form_data
- Support multipart/form_data in the Rust Server
- Add a new test API to test the change.
- Update the examples to match
* Fixed#3521. Response headers were not processed for enums collection.
* Replace " by '' in text fields to allow these to be used in OCaml comments.
* Added support of ByteArray (i.e. base64 encoded data) body and free form object as request body. Added support of free form object in response body as well.
* Added result as a reserved word to prevent generating model files with this name (having a result.ml model file confuses dune into thinking some other model modules depend on Result when they don't).
* Updated samples to reflect the latest changes in the OCaml generator.
* [C++][Pistache] Do not use JSON for primitive types in request body
Request body can contain any input, simple strings, CSV text or something else
* [C++][Pistache] Update Petstore sample version
* WIP: add faraday support to Ruby client
* update samples
* bin/console
* https only
* ruby-faraday: Add a gemspec template for faraday
* Add a test for ruby-faraday client options
* Remove Gemfile.lock from ruby-client-faraday
* Implement faraday client
* Problem: can't use Faraday library for ruby clients
Solution: add support for Faraday library
This patch builds on the work started by @meganemura
* Problem: Faraday is set as default library
Solution: Make Typhoeus default
This patch also updates the api_client template for Faraday to include query params with requests.
* Update python client java generator
* Updates python generator mustache files
* Python sample regenerated
* Switches from getfullargspec to getargspec for python2 compatibility
* Uses getattr to get model class init method to correctly see its arguments, linting fixes to pass python tests
* Updates comment in python centerator to restart CI tests
* Adds bin/windows/python-experimental-petstore.bat
* CHanges spec update to apply to the python-experimental spec
* Moves new python templates to python-experimental
* Moves generator python java code to python-experimental
* Reverts python generator mustache files
* Regenerates python, v3 python, python-experimental samples
* Test moved to python-experimental, unused python files removed
* Default outputFile value is `openapi/openapi.yaml`.
* Mustache Lambdas documentation.
* Default OpenAPIYamlGenerator outputFile value is `openapi/openapi.yaml`.
It fails if the model contains a float, which don't implement Eq.
Fix for bug introduced in #3309.
We really need to improve the testing of the rust generator to catch this sort of mistake in future. I don't have time to do this now, though.
* fix name sanitation when using kebab case filenaming
* remove whitespaces
* sanitize names by removing spec 3 ref keys
* Revert "sanitize names by removing spec 3 ref keys"
This reverts commit 7e58719317.
* add pipes to datatype names
* split imports
* remove comment
* fix when using a mixture of (any|one) and standard imports
* sanitize names by removing spec 3 ref keys
* Revert "sanitize names by removing spec 3 ref keys"
This reverts commit 7e58719317.
* Merge conflict DefMerge branch 'master' into name-ref-fix
# Conflicts:
# modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
* split imports
* remove comment
* fix when using a mixture of (any|one) and standard imports
* Fix merge error
import missing package, merge error.
* format
* fix tests
* create test, fi regex
* Début d'un générateur pour OCaml.
* Ajout du script bash de generation pour OCaml.
* Implémentation de la partie model du générateur OCaml.
* Suppression du fichier Model.mustache.
* Légère modification dans le générateur OCaml.
* Début d'implémentation de la génération des opérations.
* Avancées dans l'implémenatation des opérations.
* Avancée dans la gestion des enums : reste à traiter le fait que Yojson sérialize les variants comme des tableaux JSON.
* Prise en compte du fait que Yojson représente les variants constants sous forme d'un tableau JSON contenant une unique string.
* Utilisation des variants polymorphe pour les enums car il se peut que plusieurs énumérations partagent des valeurs communes ce que ne permettent pas les variants ordinaires au sein d'un même module.
* Avancées dans le générateur de code OCaml : le code produit compile et prendre en compte les pathParams, les queryParams, les headersParams, les bodyParams et la réponse JSON. Manque le support du multipart, du form encoded et des mécanismes d'authentification.
* More tests.
* Correction de problèmes dans la génération mis en évidence par l'utilisation d'un fichier OAS plus gros et complexe que Petstore.
* Mapping du case Error de Ppx_deriving_yojson_runtime.ok_error vers l'exception Failure pour avoir des types plus simples et non dépendants de Pppx_deriving_yoson_runtime dans les APIs générées.
* Ajout de la génération des fichiers d'interfaces .mli pour les APIs.
* Ajout du support des parametres de type x-www-form-urlencoded.
* Le paramètres d'url de type number étaient mal gérés.
* Cleanup.
* Replace block comment start and end sequences in input text.
* Make apis calls without a return type return unit rather than Yojson.Safe.t.
* Make modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml generate properly.
* Added generated code for modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml.
* Better handling of enums and map container and better sanitizing of generated identifiers to support all the corner cases present in modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml.
* Correcting a violation : using toLowerCase without relying on the default Locale.
* Changed authoring in partial_header.mustache.
* Deleted commented code.
* Collect enum schemas in items properties of operation parameters in the case of ArraySchema parameters. This allows correct processing of modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml.
* Collect enums also in additional properties schemas of operation parameters in the case of MapSchema parameters (if this type of parameter can is allowed).
* Removed copy-pasted Copyright notice from SmartBear.
* update doc
* Use Locale.ROOT instead of Locale.ENGLISH for toLowerCase calls.
* Make GET operations with body generate compilable code.
* Updated ocaml-client generated samples using the latest version of the OCaml code generator.
* Added [@default None] for record fields with option types so that if those fields are missing at deserialization time, None is assumed.
* Added support of api keys in query params.
* Updated generated ocaml samples to reflect latest changes in templates.
* Added [@default] on enum record fields for which the enum type has only one accepted value so that those fields can be deserialized even if the value is absent of the json payload.
* Delete useless space character in template.
* Added proper handling of http response codes.
* Updated generated ocaml samples to reflect latest changes in templates.
* Bash: Update samples
I'm about to make a fix to the bash generator. I'm regenerating the
samples in this commit so that the change I make isn't lost amongst
the noise.
https://github.com/OpenAPITools/openapi-generator/pull/3290
* Bash client: Fix query params seperation
Fix bug where empty query parameters weren't separated by ampersands.
For example, this
```bash
bash bash_keycloak/client.sh -v --oauth2-bearer "$access_token" --host "$api_host" realmUsersGet realm=demo_realm2 email=foo+bar@baz.com
```
would generate the path
`/auth/admin/realms/demo_realm2/users?briefRepresentation=email=foo+bar@baz.comfirst=firstName=lastName=max=search=username=`.
It now puts ampersands around them to make
`/auth/admin/realms/demo_realm2/users?briefRepresentation=&email=foo+bar@baz.com&first=&firstName=&lastName=&max=&search=&username=`
Instead of predicting if there is going to be a `parameter_value` ahead of
time, we now put in the ampersand if there is a `parameter_value` and existing
`query_request_part`.
https://github.com/OpenAPITools/openapi-generator/pull/3290
* Bash: Skip query parameters with empty value
I have a route with many optional query parameters.
I observed that when they weren't specified, they were still included in
the routes, but without a value.
Running:
```bash
bash bash_keycloak/client.sh -v --header "Authorization: Bearer $access_token" --host "$api_host" --dry-run realmUsersGet realm=demo_realm2 email=foo+bar@baz.com username=foo
```
Would produce the route:
`http://localhost:8080/auth/admin/realms/demo_realm2/users?briefRepresentation=&email=foo+bar@baz.com&first=&firstName=&lastName=&max=search=&username=foo`
After this change it produces the route:
``http://localhost:8080/auth/admin/realms/demo_realm2/users?email=foo+bar@baz.com&username=foo
---
I discussed with @wing328 in the pull request about if empty values (eg
`username=` should produce an empty query parameter, or if the query
parameter should be removed.
We decided it should remove the query parameter.
https://github.com/OpenAPITools/openapi-generator/pull/3290
----
The OpenAPI definition I was using:
Using:
https://github.com/ccouzens/keycloak-openapi/blob/master/keycloak/6.0.json
In particular:
```json
"/{realm}/users": {
"get": {
"summary": "Get users Returns a list of users, filtered according to query parameters",
"parameters": [
{
"in": "query",
"name": "briefRepresentation",
"schema": {
"type": "boolean"
},
"style": "form"
},
{
"in": "query",
"name": "email",
"schema": {
"type": "string"
},
"style": "form"
},
{
"in": "query",
"name": "first",
"schema": {
"type": "integer",
"format": "int32"
},
"style": "form"
},
{
"in": "query",
"name": "firstName",
"schema": {
"type": "string"
},
"style": "form"
},
{
"in": "query",
"name": "lastName",
"schema": {
"type": "string"
},
"style": "form"
},
{
"in": "query",
"name": "max",
"description": "Maximum results size (defaults to 100)",
"schema": {
"type": "integer",
"format": "int32"
},
"style": "form"
},
{
"in": "query",
"name": "search",
"description": "A String contained in username, first or last name, or email",
"schema": {
"type": "string"
},
"style": "form"
},
{
"in": "query",
"name": "username",
"schema": {
"type": "string"
},
"style": "form"
}
],
```
* [java] Support for number enum
* [core] add isLong, isNumber, isNumeric, isFloat, isDouble to CodegenModel
* [java-gson] fix Enum TypeAdapter in BigDecimal case.
I already contributed proper enum supports a few weeks ago, but somehow missed actually using them when they're used as a property. This PR fixes that.
I also took the liberty of fixing a bunch of unused warnings.
* Make sure we use the enum types in Rust
* Fix unused warnings in Rust and regenerate samples
* Use crate:: import path that works both with Rust 2015 and 2018
* Derive PartialEq and Eq in generated Rust structs and enums
* feat(typescript-rxjs): use interfaces from rxjs/ajax, use shorthands
* feat(typescript-rxjs): regenerate samples
* docs(typescript-rxjs): extend readme by middleware howto
* feat(typescript-rxjs): stop generating empty comment when there is no description in model
* feat(typescript-rxjs): import throwIfRequired and COLLECTION_FORMATS only when needed
* feat(typescript-rxjs): generate HttpHeaders and HttpQuery only if needed, improve formatting
* feat(typescript-rxjs): conditionally import HttpHeaders and HttpQuery
* feat(typescript-rxjs): add encodeURI helper, refactor queryString helper
* feat(typescript-rxjs): improve condition for hasListContainers
* feat(typescript-rxjs): regenerate samples
* use proper response for simple object return types
* exclude api and/or model support files and imports if none are generated
Signed-off-by: Prateek Malhotra <someone1@gmail.com>
* Better Rust client imports.
* No more "unused_imports" in models for serde_json::Value.
* No more compilation problem for apis requiring serde_json::Value.
* "crate::" prefix for models and apis imports, for compatibility with Rust 2018 edition.
* Rust samples regeneration using new code.
* [Go][experimental-client] Properly define packageName for go-experimental sample client
* [Go][experimental-client] make structure members pointers, provide custom marshalling.
* Include commonly used Mustache lambdas in DefaultCodegen.
* Use or extend common Mustache lambdas from DefaultCodegen.
* Extract OnChangeLambda to own file.
* Javadoc fixed in addMustacheLambdas().
* Fix 3349 : Proposition to follow spec closely
* Fix#3349 : Changes suggested by code review. Add an option for the single request parameter.
* Fix#3349 : Add sample with the use of the single request parameter
* Fix#3349 : Small fix that wasn't passing the tests
* Fix#3349 : Remove cariage return that might create an error
* Fix#3349 : Add chmod to make new sh file executable and fix the CircleCI issue
* Fix#3349 : Add windows sample generation
* Fix#3349 : Rename everything because of default value change
* Fix#3349 : Indentation fix
* Fix#3349 : Add 755 to typescript-fetch-petstore-multiple-parameters.sh
* Fix#3349 : Auto generation of the documentations
* Fix#3349 : Revert back a change that was auto-generated.
* [typescript-node] fixed enum generator for top level enums #665
* [typescript-node] fixed enum generator for top level enums in models.mustache #665
* Remove wrong copyright line
* [C++][Pistache] Replace contains with find on json object
This makes generator compatible with nlohmann-json 3.5.0
* [C++][Pistache] Update Petstore sample
* [dart=-jaguar] Adds option to customise the generated API client name
* [dart-jaguar] Removes explicit clientName CLI property and derives client name from pub name
* [dart-jaguar] Updates samples
* Reverts import changes
The defaults configured for GENERATOR_HOST didn't really make sense.
When running the docker container with `-P`, GENERATOR_HOST defaulted to
http://localhost. This caused download links for generated client/server
code to be incorrect. For most cases, there's no reason to provide
GENERATOR_HOST as the code already figures the appropriate
scheme/host/port from the originating request.
GENERATOR_HOST could still be used for more complex deployment
scenarios, for instance if a specific server is configured as a file
server. I haven't tested this scenario, and it may require mounting /tmp
as a volume when running within a container.
* Introduce GeneratorSettings + cleanup
GeneratorSettings is an immutable settings object, intended to limit the
manipulation of generator settings.
To move to GeneratorSettings, lots of modification was done to
CodegenConfigurator. The goal here is that CodegenConfigurator
would create the contextual information required to initiate a
generator run:
* GeneratorSettings
* Workflow related settings
* Configuring "system" GeneratorProperties (ThreadLocal properties)
* Deserializing from file to config object
* Input spec document (OpenAPI, intending to target others)
ClientOpts was generally unused, and the few places it was being used
have been updated to pass the properties to
codegen.additionalProperties.
* Add sanity to system properties
The -D argument for the generate command is an application argument
which is easily confused for Java System Properties. This isn't the
case, as setting values here doesn't update the configuration in
System.getProperties().
This adds a warning and deprecation to that option, as defining these
values as system properties will also continue to work as expected. This
makes the -D application argument redundant and confusing.
* Contextualize generator/workflow settings
This splits settings relevant to generator configuration (the what) and
workflow configuration (the how) in an attempt to make configuration
easier to conceptualize.
* Update Gradle task w/ CodegenConfigurator setters
* Remove -D usage in scripts
* Add -p option for additional properties
* Regnerate samples
# - Rely on `kerl` for [pre-compiled versions available](https://docs.travis-ci.com/user/languages/erlang#Choosing-OTP-releases-to-test-against). Rely on installation path chosen by [`travis-erlang-builder`](https://github.com/travis-ci/travis-erlang-builder/blob/e6d016b1a91ca7ecac5a5a46395bde917ea13d36/bin/compile#L18).
[](https://gitter.im/OpenAPITools/openapi-generator?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[](https://join.slack.com/t/openapi-generator/shared_invite/enQtNzAyNDMyOTU0OTE1LTY5ZDBiNDI5NzI5ZjQ1Y2E5OWVjMjZkYzY1ZGM2MWQ4YWFjMzcyNDY5MGI4NjQxNDBiMTlmZTc5NjY2ZTQ5MGM)
[](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.openapitools%22%20AND%20a%3A%22openapi-generator%22)
[](https://twitter.com/oas_generator)
@@ -51,16 +54,22 @@ If you find OpenAPI Generator useful for work, please consider asking your compa
OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an [OpenAPI Spec](https://github.com/OAI/OpenAPI-Specification) (both 2.0 and 3.0 are supported). Currently, the following languages/frameworks are supported:
5.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/5.0.0-SNAPSHOT/)| 13.05.2020 | Major release with breaking changes (no fallback)
4.1.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/4.1.0-SNAPSHOT/)| 15.07.2019 | Minor release (breaking changes with fallbacks)
4.2.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/4.2.0-SNAPSHOT/)| 09.10.2019 | Minor release (breaking changes with fallbacks)
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.
(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/2_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](http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/4.0.2/openapi-generator-cli-4.0.2.jar)
You can also download the JAR (latest release) directly from [maven.org](http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/4.1.3/openapi-generator-cli-4.1.3.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`
- latest master: https://api-latest-master.openapi-generator.tech (updated with latest master every hour)
The server is sponsored by [Linode](https://www.linode.com/) [](https://www.linode.com/)
@@ -537,17 +558,23 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- [RepreZen API Studio](https://www.reprezen.com/swagger-openapi-code-generation-api-first-microservices-enterprise-development)
@@ -558,6 +585,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- [TUI InfoTec GmbH](http://www.tui-infotec.com/)
- [unblu inc.](https://www.unblu.com/)
- [Veamly](https://www.veamly.com/)
- [WSO2](https://wso2.com/)
- [Xero](https://www.xero.com/)
- [Yelp](https://www.yelp.com/)
- [Zalando](https://www.zalando.com)
@@ -580,6 +608,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- 2018/12/09 - [openapi-generator をカスタマイズする方法](https://qiita.com/watiko/items/0961287c02eac9211572) by [@watiko](https://qiita.com/watiko)
- 2019/01/03 - [Calling a Swagger service from Apex using openapi-generator](https://lekkimworld.com/2019/01/03/calling-a-swagger-service-from-apex-using-openapi-generator/) by [Mikkel Flindt Heisterberg](https://lekkimworld.com)
- 2019/01/13 - [OpenAPI GeneratorでRESTful APIの定義書から色々自動生成する](https://ky-yk-d.hatenablog.com/entry/2019/01/13/234108) by [@ky_yk_d](https://twitter.com/ky_yk_d)
- 2019/01/20 - [Contract-First API Development with OpenAPI Generator and Connexion](https://medium.com/commencis/contract-first-api-development-with-openapi-generator-and-connexion-b21bbf2f9244) by [Anil Can Aydin](https://github.com/anlcnydn)
- 2019/01/30 - [Rapid Application Development With API First Approach Using Open-API Generator](https://dzone.com/articles/rapid-api-development-using-open-api-generator) by [Milan Sonkar](https://dzone.com/users/828329/milan_sonkar.html)
- 2019/02/02 - [平静を保ち、コードを生成せよ 〜 OpenAPI Generator誕生の背景と軌跡 〜](https://speakerdeck.com/akihito_nakano/gunmaweb34) by [中野暁人](https://github.com/ackintosh) at [Gunma.web #34 スキーマ駆動開発](https://gunmaweb.connpass.com/event/113974/)
- 2019/02/20 - [An adventure in OpenAPI V3 code generation](https://mux.com/blog/an-adventure-in-openapi-v3-api-code-generation/) by [Phil Cluff](https://mux.com/blog/author/philc/)
@@ -597,7 +626,29 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- 2019-05-24 - [REST API 代碼生成指南 (OpenAPI Generator)](https://gum.co/openapi_generator_ebook_big5) by [William Cheng](https://twitter.com/wing328)
- 2019-06-24 - [Kubernetes Clients and OpenAPI Generator](https://speakerdeck.com/wing328/kubernetes-clients-and-openapi-generator) by [William Cheng](https://twitter.com/wing328) at [Kubernetes Contributor Summits Shanghai 2019](https://www.lfasiallc.com/events/contributors-summit-china-2019/)
- 2019-06-28 [Codewind OpenAPI Tools](https://marketplace.eclipse.org/content/codewind-openapi-tools) in [Eclipse Marketplace](https://marketplace.eclipse.org/) by IBM
- 2019-06-29 [Codewind OpenAPI Tools](https://marketplace.visualstudio.com/items?itemName=IBM.codewind-openapi-tools) in [Visual Studio Marketplace](https://marketplace.visualstudio.com/) by IBM
- 2019-07-04 - [REST API のためのコード生成入門 (OpenAPI Generator)](https://gum.co/openapi_generator_ebook_big5) by [William Cheng](https://twitter.com/wing328), [中野暁人](https://github.com/ackintosh), [和田拓朗](https://github.com/taxpon)
- 2019-07-14 - [OpenAPI GeneratorでPythonのクライアントライブラリを作成した](https://qiita.com/yuji38kwmt/items/dfb929316a1335a161c0) by [yuji38kwmt](https://qiita.com/yuji38kwmt)
- 2019-07-19 - [Developer Experience (DX) for Open-Source Projects: How to Engage Developers and Build a Growing Developer Community](https://speakerdeck.com/wing328/developer-experience-dx-for-open-source-projects-english-japanese) by [William Cheng](https://twitter.com/wing328), [中野暁人](https://github.com/ackintosh) at [Open Source Summit Japan 2019](https://events.linuxfoundation.org/events/open-source-summit-japan-2019/)
- 2019-08-14 - [Our OpenAPI journey with Standardizing SDKs](https://bitmovin.com/our-openapi-journey-with-standardizing-sdks/) by [Sebastian Burgstaller](https://bitmovin.com/author/sburgstaller/) at [Bitmovin](https://www.bitmovin.com)
- 2019-08-15 - [APIのコードを自動生成させたいだけならgRPCでなくてもよくない?](https://www.m3tech.blog/entry/2019/08/15/110000) by [M3, Inc.](https://corporate.m3.com/)
- 2019-08-22 - [マイクロサービスにおけるWeb APIスキーマの管理─ GraphQL、gRPC、OpenAPIの特徴と使いどころ](https://employment.en-japan.com/engineerhub/entry/2019/08/22/103000) by [@ota42y](https://twitter.com/ota42y)
- 2019-08-24 - [SwaggerドキュメントからOpenAPI Generatorを使ってモックサーバー作成](https://qiita.com/masayoshi0222/items/4845e4c715d04587c104) by [坂本正義](https://qiita.com/masayoshi0222)
- 2019-08-29 - [OpenAPI初探](https://cloud.tencent.com/developer/article/1495986) by [peakxie](https://cloud.tencent.com/developer/user/1113152) at [腾讯云社区](https://cloud.tencent.com/developer)
- 2019-08-29 - [全面进化:Kubernetes CRD 1.16 GA前瞻](https://www.servicemesher.com/blog/kubernetes-1.16-crd-ga-preview/) by [Min Kim](https://github.com/yue9944882) at [ServiceMesher Blog](https://www.servicemesher.com/blog/)
- 2019-09-01 - [Creating a PHP-Slim server using OpenAPI (Youtube video)](https://www.youtube.com/watch?v=5cJtbIrsYkg) by [Daniel Persson](https://www.youtube.com/channel/UCnG-TN23lswO6QbvWhMtxpA)
- 2019-09-06 - [Vert.x and OpenAPI](https://wissel.net/blog/2019/09/vertx-and-openapi.html) by [Stephan H Wissel](https://twitter.com/notessensei) at [wissel.net blog](https://wissel.net)
- 2019-09-09 - [Cloud-native development - Creating RESTful microservices](https://cloud.ibm.com/docs/cloud-native?topic=cloud-native-rest-api) in [IBM Cloud Docs](https://cloud.ibm.com/docs)
- 2019-09-14 - [Generating and Configuring a Mastercard API Client](https://developer.mastercard.com/platform/documentation/generating-and-configuring-a-mastercard-api-client/) at [Mastercard Developers Platform](https://developer.mastercard.com/platform/documentation/)
- 2019-09-15 - [OpenAPI(Swagger)導入下調べ](https://qiita.com/ShoichiKuraoka/items/f1f7a3c2376f7cd9c56a) by [Shoichi Kuraoka](https://qiita.com/ShoichiKuraoka)
- 2019-09-17 - [Tutorial: Documenting http4k APIs with OpenApi3](https://www.http4k.org/tutorials/documenting_apis_with_openapi/) by [http4k](https://www.http4k.org/)
- 2019-09-22 - [OpenAPI 3を完全に理解できる本](https://booth.pm/ja/items/1571902) by [@ota42y](https://twitter.com/ota42y)
- 2019-09-22 - [RESTful APIs: Tutorial of OpenAPI Specification](https://medium.com/@amirm.lavasani/restful-apis-tutorial-of-openapi-specification-eeada0e3901d) by [Amir Lavasani](https://medium.com/@amirm.lavasani)
- 2019-09-22 - [Redefining SDKs as software diversity kits](https://devrel.net/dev-rel/redefining-sdks-as-software-diversity-kits) by [Sid Maestre (Xero)](https://twitter.com/sidneyallen) at [DevRelCon San Francisco 2019](https://sf2019.devrel.net/)
- 2019-09-23 - [swaggerからOpenApi GeneratorでSpringのコードを自動生成](https://qiita.com/littleFeet/items/492df2ad68a0799a5e5e) by [@littleFeet](https://qiita.com/littleFeet) at [Qiita](https://qiita.com/)
## [6 - About Us](#table-of-contents)
@@ -654,16 +705,21 @@ Here is a list of template creators:
echo"Cleaning previously generated files if any from samples/server/petstore/kotlin-springboot"
rm -rf samples/server/petstore/kotlin-springboot
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.