* [python] Support named arrays
* Fix named array type
* Use ModelSimple
* Reset samples
* Regenerated
* Animal farm test
* Array of enums
* Clean-up
* Clean-up
* Clean-up
* Fix array type generation
* simplify
* array model is not alias
* Array model has one value field
* ensure up-to-date
* ./bin/utils/ensure-up-to-date --batch
* Solve issue with missing import for array model
* regenerate
* Fixed compilation on linux and UE4.23
* Added string and enum type definition support
* Better handling or variable names, should avoid conflicts with reserved keywords or empty variable names in edge cases
* Updated samples
The current `npx ` command says to use:
```
npx openapi-generator generate -i petstore.yaml -g ruby -o /tmp/test/
```
This however, pulls a similarly-named but different project: [zhang740/openapi-generator](https://www.npmjs.com/package/openapi-generator).
This commit fixes this, by using the appropriate package `@openapitools/openapi-generator-cli`
* Prints out the parameter name in throwIfNullOrUndefined
* Fixed misspelling
Co-authored-by: Justin Van Dort <justinvandort@gmail.com>
Co-authored-by: Esteban Gehring <esteban.gehring@bithost.ch>
* Added the possibility for a codegen to set the location of the generated model files, similarly to API files.
* Removed std::shared_ptr from the generated types. Types in UE4Codegen are handled as POD structs, not shared pointers.
* Fixed handling of body parameters as per the specification, the single body object is written directly as the payload.
* Fixed handling of files and binaries, if a field is both isFile and isBinary, file will take precedence.
* Updated cpp-ue4 client samples
* Fixed handling of enums in models
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Mustache template should use invokerPackage tag to generate import
* fix typo, fix script issue, add log statement for troubleshooting
* Add java jersey2 samples with OpenAPI doc that has HTTP signature security scheme
* Add sample for Java jersey2 and HTTP signature scheme
* Add unit test for oneOf schema deserialization
* Add unit test for oneOf schema deserialization
* Add log statements
* Add profile for jersey2
* Temporarily disable unit test
* Temporarily disable unit test
* fix typo in pom.xml
* fix duplicate jersey2 samples
* fix duplicate jersey2 samples
* fix duplicate artifact id
* fix duplicate jersey2 samples
* run samples scripts
* [breaking] Enforce vendor extension naming convention
* [breaking] Rename system properties to global properties
* [docs] Update site with global properties list and usage explanation
* Use proper vendor extension casing in all templates
* Set remaining vendor extensions to convention of lower kebab-cased with x- prefix
* [samples] Regenerate
* Update modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java
Before we were adding hasPathParams twice, once with !op.pathParams.isEmpty(), and then again with hasPathParams. This was probably caused by a mistaken merge.
This is causing the difference in samples
Co-authored-by: Richard Whitehouse <richard.whitehouse@metaswitch.com>
* [Samples] Regenerated!
* Fix -D conversion to additional-properties, missed in bat files
* JERSEY2 option changed
* [samples] Regenerate
* [scala][finch] Fix remaining vendor extensions format to conventino
* [scala] The -D option was replaced with --global-property
* [samples] Regenerate
* Fix -DskipFormModel usage which has been moved to --global-property skipFormModel=true
* [samples] Regenerate
Co-authored-by: Richard Whitehouse <richard.whitehouse@metaswitch.com>
* [core] Refactor templating management
This refactors template management to get logic out of DefaultGenerator
and to provide a cleaner API to template search and read/compile.
Deprecates MockDefaultGenerator, which is not a mock and causes
in-memory retention of file contents. Maintainers should prefer
executing a "dryRun" with new DefaultGenerator(true) or do true
mock/spies if evaluating template intermediaries is truly necessary.
Tests may read written files with lower overhead than the in-process
retention of those bytes.
This attempts to maintain some compatibility with existing templating
adapter interfaces. Any breaking change here would be unintentional but
minimal effort to retarget the new interface.
* Tests for dry run file outputs
* Update API usage in Meta, test TemplateManager
* Wait on lastModified, lookup by filename in SpringCodegenTest
* Test DefaultGenerator + ignore file
* Move config.processOpenAPI in DefaultGenerator
* Fix wrong use of libraries templateDirector (java)
The samples scripts for Java incorrectly referenced the libraries
directories directly rather than the upper-level Java directory. This
was incorrect usage of template directories, because the generator
expects to be given the "language" directory and perform a lookup for
missing templates in the order:
* user defined libraries directory
* user defined language root
* embedded libraries directory
* embedded language root
* _common directory
This is incorrect in our samples scripts because a user or maintainer
has the expectation that any template change to files at the Java/ root
should also be honored on generation if the script specifies a custom
template directory.
* Fix handlebars extension usage, clean up Meta tasks
HandlebarseEngineAdapter previously didn't handle files without
extensions in the same was as the MustacheEngineAdapter. This now allows
for files without extension (or dotfiles) to lookup in the same
location.
Meta tasks are cleaned up to use template manager only, rather than
attempting to create an "empty" generator to use the previous templating
specific methods.
* Update kotlin-multiplatform gradle wrapper
* Rename GraphQL .gitignore template
The .gitignore file is unable to load via classpath resource from the
graphql node server resource directory (for unknown reasons). Before
this change, the missing template would fail silently.
A .gitignore file may exist in other directories and load as expected.
Added a default .gitignore to _common as a fallback so as not to break
any custom generators which may also be failing silently.
* Log entire stacktrace in go sdk built by gradle in AppVeyor
* Rename PHP .gitignore to gitignore
Java resources may not load .gitignore, this follows suit with other
generators and uses "gitignore" (some use "gitignore.mustache").
* [php] Rename .gitignore templates to gitignore
* Use same classpath lookup in common locator
* [rust] Properly escape empty triple-braces
* [samples] Regenerate
* Set PHP 7.1.3 required version
I've tried to specify ^7.0 version at first, but main package which is
symfony/framework-bundle@v4.4.8 requires PHP ^7.1.3.
* Bump Symfony FrameworkBundle to ^4.4.8
Current Symfony Framework stable version is v5.0.8, but I guess it
requires significant codebase upgrade, so I've sticked with 4.4.8 which
shouldn't cause any breaking changes. Old requirement was ^3.3|^4.1
which compatible with 4.4.8.
* Bump PHPUnit version to ^7.0
PHPUnit 8.x version required PHP ^7.2, so I'm setting 7.x version to
support PHP 7.1.
There is new way to specify Kernel class, related PR:
https://github.com/symfony/symfony/pull/22668
* Bump PHP CS Fixer version to ^2.16.3
Configuration and all renamed rules fixed.
Config file renamed to .php_cs.dist as recommended in migration guide.
Migration guide from 1.x to 2.x:
https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/master/UPGRADE.md#config-file
* Remove PHP_CodeSniffer package
Second linter doesn't make sense. I think Symfony user would prefer
PHP CS Fixer over PHP_CodeSniffer because first one maintained by Symfony
members.
* Remove satooshi/php-coveralls package from Composer
This package is abandoned and Coveralls recommends to install it directly
in Travis-CI task script.
* Update Travic-CI config
I've changed test versions to PHP 7.1.3 and 7.2. PHPUnit generates
coverage report in report/logs/clover.xml file. Then PHP CS Fixer runs
with --dry-run option to not override anything just to show coding style
errors.
* Add basic Coveralls config
This is basic recommended config for a PHP based project.
* Add symfony/yaml package
This package was part of satooshi/php-coveralls, now it should be
defined as dev dependency.
* Do not commit composer.lock
I think committed composer.lock can cause CI errors while tests on fresh
installs are better.
* Remove confusing Ruby comment
* Include map for `AnyType` in `typescript`
* Exclude `any` from the list of types extracted from `anyOf`, `allOf`, `oneOf`
Exclude if there are other meaningful types
* Include new scripts and `yaml` to test the new case
* Execute the new sample for `typescript-axios`
* Filter out only `AnyType` instead of all `any` types
* Renamed and modified samples
- Included more examples using `oneOf, `allOf`, `anyOf`
- Includede examples when types that are translated to `any` are involved (`file`)
* Changes in mustache file
Set default value to empty object when the `requestParameter` doesn't have any required param
* New schema with operations without required params
* Generate the sample
* Mustache template should use invokerPackage tag to generate import
* Add a unit test for allOf and additionalProperties
* Fix getAdditionalProperties
* Add code comments
* Add code comments
* set nullable for additionalproperties
* add variants of additionalProperties
* Add more unit tests
* Handle additionalProperties for composed schemas
* improve code comments
* Add code comments
* Add code comments
* Add code comments
* Add code comments
* Add code comments
* Add assertions in unit tests
* Add new property to support the 'additionalProperties' keyword with composed schemas
* run sample scripts
* fix unit tests to handle additionalProperties
* Handle additional properties and composed schema
* Handle additional properties and composed schema
* Add support for additionalProperties and composed schema
* Format java code
* Add more unit tests for Python
* Handle reference in additionalProperty keyword
* Handle reference in additionalProperty keyword
* Add use case for additionalProperties and reference
* run sample scripts
* resolve schema reference
* Add OpenAPI argument
* Add OpenAPI argument
* Add OpenAPI argument
* Add OpenAPI argument
* Add OpenAPI argument
* Handle additional property keyword with reference
* Handle additional property keyword with reference
* Handle additional property keyword with reference
* Handle additional property keyword with reference
* add additionalproperties attribute with boolean values
* Run sample scripts
* handle additional properties
* Handle additionalProperties boolean values
* Run sample scripts
* fix javadoc issues
* fix javadoc issues
* Add Locale to String.toLowerCase
* execute sample scripts
* handle additional properties
* Add code comments
* Handle imports of referenced models in additional properties
* Handle isNullable class
* handle nullable type
* improve documentation, run sample scripts
* improve documentation, run sample scripts
* execute sample scripts
* execute sample scripts
* Execute sample scripts
* Run samples scripts
* set legacyAdditionalPropertiesBehavior to true by default, except python
* create separate yaml file to avoid having lots of changes in the pr
* create separate yaml file to avoid having lots of changes in the pr
* create separate yaml file to avoid having lots of changes in the pr
* create separate yaml file to avoid having lots of changes in the pr
* create separate yaml file to avoid having lots of changes in the pr
* create separate yaml file to avoid having lots of changes in the pr
* Change name of CLI option
* Generate doc
* Add TODO statement
* add code comments
* run samples scripts
* run sample scripts
* run sample scripts
* run sample scripts
* run sample scripts
* run sample scripts
* run sample scripts
* run sample scripts
* run sample scripts
* run sample scripts
* run sample scripts
* run sample scripts
* refactor cli option for additional properties
* refactor cli option for additional properties
* run samples scripts
* run sample scripts
* run sample scripts
* run sample scripts
* run sample scripts
* Add yaml comments
* small refactor
* small refactor
* run sample scripts
* run sample scripts
* fix unit tests
* Set disallowAdditionalPropertiesIfNotPresent flag
* reduced size of test yaml file
* simplify code and add imports directly
* rename some of the properties used in tests
* Handle more scenarios for nullable types
* add code comments
* Adds *args input to __init__ method to fix test testFruitNullValue
* Resolve merge issues
* run samples scripts
* run doc generator
* fix merge conflicts
Co-authored-by: Justin Black <justin.a.black@gmail.com>
* Mustache template should use invokerPackage tag to generate import
* fix runtime exception when HttpSignatureAuth is not set
* fix runtime exception when HttpSignatureAuth is not set
* [cli] new 'author template' command
This new command allows users to extract templates for authoring
(customization) without the complexity of finding and downloading a
specific directory for their versioned artifact.
Example usage:
```
openapi-generator author template -g java --library webclient
```
This will write all templates with library-specific templates to the
'./out' directory relative to the current directory.
CLI will refer the user to
https://openapi-generator.tech/docs/templating after generation
* [docs] Usage of author template command
* Log warning if author template fails to output requested library
* Updates comments in new method
* Adds missing line in model_utils.py
* Removes biology examples, adds ParentPet ancestor example + test, adds Pig schemas
* Updates comment and var names in get_discriminator_class, adds testMammal test
* Updates comment
* minor improvement to jersey2 test, remove script/bat
* remove tests for java7 jersey2
* remove log from abstrct java class
* undo change to jaxrs path
* migrate all scala generators to use oas3
* add back pom.xml for scala-sttp
* skip form model in scalaz
* fix scala lagom tests
* add new files
* skip form models in scala finch petstore
* update samples
* Include map for `AnyType` in `typescript`
* Exclude `any` from the list of types extracted from `anyOf`, `allOf`, `oneOf`
Exclude if there are other meaningful types
* Include new scripts and `yaml` to test the new case
* Execute the new sample for `typescript-axios`
* Filter out only `AnyType` instead of all `any` types
* Renamed and modified samples
- Included more examples using `oneOf, `allOf`, `anyOf`
- Includede examples when types that are translated to `any` are involved (`file`)
* Mustache template should use invokerPackage tag to generate import
* Fix runtime exception when composed schema has 'null' type
* Fix runtime exception when composed schema has 'null' type
* Fix path provider bug on CI
Previous path sorting logic failed on CI due to one or more files in the
cpp-qt5 script being associated with different path providers. This
caused a ClassCastException from Path#compareTo
This change uses Apache Commons PathFileComparator to sort by full path.
File list is copied to avoid sort side effects. Log on all exceptions.
* generate valid code if no Authentication implementations present
resurrects https://github.com/OpenAPITools/openapi-generator/pull/2861
* remove what I assume are human generated test cases
* need to iterate over authMethods in order to pull out name
* fix another test
* update more tests
* rename hasTokenAuthMethods to hasApiKeyAuthMethods
* remove duplicate methods, fix hasHttpBearerMethods check
* update templates
* update windows java-petstore files
* update windows java-petstore files
* re-generate
* re-generate
* restore samples.ci tests
* restore samples.ci tests
* Mustache template should use invokerPackage tag to generate import
* Add unit test showing how to construct objects from a JSON dict
* rename from_server to json_variable_naming
* rename from_server to json_variable_naming
* fix code so it can execute in python 2.x
* rename variable
* fix typo
* fix typo
* fix deprecation warning
* fix deprecation warning
* fix deprecation warning
* Mustache template should use invokerPackage tag to generate import
* A float may be serialized as an integer, e.g. '3' is a valid serialized float
* A float may be serialized as an integer, e.g. '3' is a valid serialized float
* add unit tests
* [REQ][JAVA]: Add option to generate arrays with "uniqueItems" true as Sets rather than Lists
- Update Java code generation to use sets instead of lists when uniqueItems is set to true
- Add import resolution for sets
- Add tests and fix broke tests
resolve#5254
* Update Javascript, Perl, Python and Ruby to preserve current functionality.
* Switch set implementation to LinkedHashSet
* Fix missing import for uniqueItems used on param.
* Fix missing import and return type for responses with uniqueItems
* Fix default values for array of enum
* Update generated samples
* fix merge issue
* Update generated samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Mustache template should use invokerPackage tag to generate import
* upgrade to http signature library version 1.4
* Use updated HTTP signature library
* Run sample scripts
* Add code samples in README file for HTTP signature
* fix java imports
* Update http-signature version
Change helper method '''writeResponseHeaders''' implementation to just set the headers, instead of write them, and also rename the method to '''setSocketResponseHeaders''', to maintain the new semantic.
The implementation of '''QHttpEngine::Socket::write''' or '''QHttpEngine::Socket::writeJson''' implementations will call '''Socket::writeData''' that writes the Headers and Status Code before write the content if they are not already written.
If these methods are not called (e.g.: empty reply), we could set the headers just before close the socket.
* [typescript-rxjs] restore prototype inhertance
- previously clone() and its clients in the BaseAPI class were generic
- with removal of the generic argument, these methods became unavailable
to the API classes inheriting from BaseAPI
- original generic was imprecise, as these are not statics
- return type of `this` is the correct notation
* [typescript-rxjs] Chery-pick from #5465 by @denyo
- this is done to prevent the changes slated for 5.0 from conflicting
- apply destructuring changes from
- denyo:feature/rxjs-statuscode-and-progress@673d67c
* [C++] [Qt5] [Server] [Bug] fixed Incomplete Read JSON
Emit signal requestReceived only after request content is entirely received.
* [C++] [Qt5] [Server] [Bug] fixed Incomplete Read JSON
Emit signal requestReceived only after request content is entirely received.
* [PHP] ObjectSerializer fix for array of objects
Array of objects translate to "map[string,object][]" and they fail to deserialize. This is because the deserialization does not parse the mapping string correctly. A quick fix is trying moving array deserialization before object deserialization.
Example object
ObjectExample:
type: object
properties:
data:
type: array
items:
type: object
additionalProperties: true
* Update sample
Co-authored-by: Alexandru Negrila <alex@arntech.ro>
* Added support Retrofit2(RxJava/RxJava2/Coroutines) to Kotlin client code generator
* Added generated samples for Retrofit2(RxJava/RxJava2/Coroutines) on Kotlin
* Fixed generating retrofit2 without Rx/Coroutines
* Fixed MultipartBody template, remove redundant space after MultipartBody.Part annotation
* Fix documentation diff.
* Fix generating build.gradle file for samples.
Add dependencies for rxJava/rxJava2 and rx retrofit's adapter.
* Update generated sample with rx dependencies
* Update generated sample with coroutines
* Update generated sample with RxJava 2 dependencies
* Update and refactoring scripts for sample generation
* Update generated sample code
* revert changes by mistake
* revert changes by mistake #2
* Fix return type for first RxJava
* Add RxJavaCallAdapterFactory to ApiClient scheme for RxJava 1/2
* Fix script loggin
* Update generated code for RxJava 1/2
* Fix kotlin.md documentation by script export_docs_generators.sh
* Update Kotlin samples project in pom.xml
* Revert "Update Kotlin samples project in pom.xml"
This reverts commit 9de4d0ba
* Fixed "" wrapping number types for annotation value
Fixed generating polymorphic interfaces for Gson, interface fields can't be marked with @SerializedName annotation, it's enough to mark it in child model.
Fixed instantiationTypes(array, list, map) for Kotlin generator
* Update Kotlin samples project after last fixes
* Update Kotlin samples project for kotlin-jvm-*
* Update Kotlin readme.md documentations
* Update Kotlin client sample changes
* Fixed encoding braces for generics model
* Update Kotlin client sample changes
* Update Kotlin client sample after merge with master
* Fixed adding empty braces for inherit from Map/Array
* Update sample model after last fix with empty braces
* Revert adding @SerializedName to Kotlin interface fields through @get:SerializedName as for Jackson
* Update Kotlin client samples with adding @get:SerializedName
* Handle null type
* Handle null type
* Handle null type. Add 'null' type in the OAS document for testing purpose
* Handle null type. Add 'null' type in the OAS document for testing purpose
* Handle null type. Add 'null' type in the OAS document for testing purpose
* Handle null type. Add 'null' type in the OAS document for testing purpose
* Handle null type. Add 'null' type in the OAS document for testing purpose
* Handle null type. Add 'null' type in the OAS document for testing purpose
* improve documentation
* Handle 'null' type
* Handle 'null' type. Add unit tests
* Add NullType for go
* Add NullType for go
* fix modeling of AnyType for go-experimental
* execute scripts in bin directory
* Add review comments
* Add 'null' type in oneOf
* Improve OAS YAML file for golang openapi3 samples
* 'Any type' includes the null value, so 'isNullable' should be set to TRUE
* 'Any type' includes the null value, so 'isNullable' should be set to TRUE
* Handle AnyType and NullType
* handle anytype for go-experimental
* Log warning instead of error
* anyOf/oneOf
* Change x-golang-is-container extension to x-golang-has-wrapper
* Add code comments
* Handle Object and any type
* Handle Object and any type
* Handle object and any type
* add code comments
* handle additional properties
* handle additional properties
* handle additional properties
* handle anytype and objecttype for go-exerimental
* Move golang changes to a separate branch
* Move golang changes to a separate branch
* Better names for the OAS document test properties
* Move golang changes to a separate branch
* Run samples scripts
* Run samples scripts
* fix unit test issues
* Handle none type
* Fix index out of range exception
* fix formatting issues
* fix formatting issues
* fix formatting issues. Finally figured out how to check formatting in local workspace
* fix formatting issues
* Add reference to oneOf schema
* Add model showing unit test failure with ref to oneOf schema
* Updates get_discriminator_class to return visited_composed_classes
* Fixes broken test, adds is_valid_type
* run samples scripts
* move unit test to test_drawing.py file
* Add more unit tests
* invoke git pull from spacether fork
* invoke git pull from spacether fork
* Improve unit tests
* Add is_nullable_type util function
* Add unit test for null value
* Add 'ShapeOrNull' type to handle the oneOf/anyOf scenario when the child schema is the null type
* Support schema property which has to 'oneOf' schema and child schema is null type
* Support schema property which has to 'oneOf' schema and child schema is null type
* Support schema property which has to 'oneOf' schema and child schema is null type
* Mustache template should use invokerPackage tag to generate import
* handle null type in oneOf/anyOf
* handle null type in oneOf/anyOf
* Add more unit test for nullable shape
* resolve merge conflicts
* resolve merge conflicts
* handle null type in oneOf/anyOf
Co-authored-by: Justin Black <justin.a.black@gmail.com>
* Changes in mustache file to include new option
- New options `useSingleRequestParameter` to use a single param for the request, instead of one param per request param.
* Chanes in the documentation
Include new parameter `useSingleRequestParameter`.
Default value = `false` to keep compatibility with previous versions.
* Include script to generate samples
Also included script in the script that runs all
* Generate new samples
- Previous samples have a minor change (one line is deleted)
- New sample generated with the new parameter set to true
* Include scripts for windows
* Include new CLI option in codegenerator class
* Change the order for the new parameter in the docs
* [dart-dio] Adds support for generating inline enums
Previously these were generated as strings if declared inline in the spec.
* Adds more detailed comment about inline enums
* add scaffolded new documentation generator files
* add openapi3 plantuml bin scripts
* change plantuml codegen to only generate a schemas.plantuml file
* initial plantuml schema diagram
* add item type to Lists
* add inheritance relationships
* add list one-to-many relationships
* add newline between model definitions and relationships
* add composition data type relationship
* remove allOf models and interface references
* add new entities data to SupportingFileData
* add List dataType support to entity fields
* remove composed types and remove allOf suffix from inline types
* add inheritances to supporting files data object
* add aggregation relationships to supporting file data
* add isList to compisition relationships
* refactor PlantumlDocumentationCodegenTest
* add property name to relationships
* remove old code form PlantumlDocumentationCodegen
* add plantuml generator sample output
* remove use of javafx.util.Pair
* fix casing of complex data type for fields
* add plantuml generator docs
* fix bug caused by assumption that inline _allOf types will always be unique but apparently they can be shared if they have identical properties!
* fix bug with missing relationships caused by shared identical _allOf schemas
Co-authored-by: Patrick.Burls <patrick.burls@bskyb.com>
* migrate mysql samples to oas 3.0
* update apache2 to use oas3 spec
* migrate graphql samples to use oas3 spec
* move avro script under bin
* update protobuf samples to use openapi3 spec
* add new files
* Add reference to oneOf schema
* Add model showing unit test failure with ref to oneOf schema
* Updates get_discriminator_class to return visited_composed_classes
* Fixes broken test, adds is_valid_type
* move unit test to test_drawing.py file
* Add more unit tests
* invoke git pull from spacether fork
* invoke git pull from spacether fork
* Improve unit tests
Co-authored-by: Justin Black <justin.a.black@gmail.com>
* Handle null type
* Handle null type
* Handle null type. Add 'null' type in the OAS document for testing purpose
* Handle null type. Add 'null' type in the OAS document for testing purpose
* Handle null type. Add 'null' type in the OAS document for testing purpose
* Handle null type. Add 'null' type in the OAS document for testing purpose
* Handle null type. Add 'null' type in the OAS document for testing purpose
* Handle null type. Add 'null' type in the OAS document for testing purpose
* improve documentation
* Handle 'null' type
* Handle 'null' type. Add unit tests
* Add NullType for go
* Add NullType for go
* fix modeling of AnyType for go-experimental
* execute scripts in bin directory
* Add review comments
* Add 'null' type in oneOf
* Improve OAS YAML file for golang openapi3 samples
* 'Any type' includes the null value, so 'isNullable' should be set to TRUE
* 'Any type' includes the null value, so 'isNullable' should be set to TRUE
* Handle AnyType and NullType
* handle anytype for go-experimental
* Log warning instead of error
* anyOf/oneOf
* Change x-golang-is-container extension to x-golang-has-wrapper
* Add code comments
* Handle Object and any type
* Handle Object and any type
* Handle object and any type
* add code comments
* handle additional properties
* handle additional properties
* handle additional properties
* handle anytype and objecttype for go-exerimental
* Move golang changes to a separate branch
* Move golang changes to a separate branch
* Better names for the OAS document test properties
* Move golang changes to a separate branch
* Run samples scripts
* Run samples scripts
* fix unit test issues
* Handle none type
* Fix index out of range exception
* fix formatting issues
* fix formatting issues
* fix formatting issues. Finally figured out how to check formatting in local workspace
* fix formatting issues
* run samples scripts
* fix flake8 folder
* fix flake8 folder in python2
* comment out flake8
* comment out flake8
* comment out flake8
* comment out flake8
* comment out flake8
* Unwrap the `AnyHashable` and use the `base` value in Models.mustache
- Unwraps the `AnyHashable` base in `NSURLResponse.allHeaderFields` instead of the `AnyHashable` itself
* Update samples (just running the script)
* Update samples
* Adds addComposedMappedModels and testComposedSchemaOneOfDiscriminatorMap
* Requires that discriminators be required properties
* Strengthens discriminaotr validation, adds better error messages, adds schema oneof samples
* Adds oneOf and anyOf invalidDiscriminator tests
* Runs ensure up to date
* Updates incorrect addOneOfInterfaceModel invocation
* Runs ensure-up-to-date
* Fix NPE when at least one extension is defined but not x-discriminator-value
* Adds addComposedMappedModels and testComposedSchemaOneOfDiscriminatorMap
* Requires that discriminators be required properties
* Strengthens discriminaotr validation, adds better error messages, adds schema oneof samples
* Adds oneOf and anyOf invalidDiscriminator tests
* Updates incorrect addOneOfInterfaceModel invocation
* Runs ensure-up-to-date
* Adds updates from Sebastien Rosset
* Removes newlines
* Add documentation and new getValidDiscriminatorMappings function
* Add documentation and new getValidDiscriminatorMappings function
* Add documentation and new getValidDiscriminatorMappings function
* Add documentation and new getValidDiscriminatorMappings function
* Add documentation and new getValidDiscriminatorMappings function
* Add documentation and new getValidDiscriminatorMappings function
* throw exception if discriminator mappingName argument is null
* handle scenario when composed schema has 'null' type
* remove extraneous characters in comments
* Uses df.isString
* Traverse discriminators to resolve discriminator mapping
* Fixes tests be correctly setting df.isString
* Remove unused method
* Updates discriminatorExplicitMappingVerbose description per PR feedback
* Adds description of how mappedModels is populated
* Adds the suggestion exception raising when a MappedModel mappingName is null
* Actually resolves merge conflicts
* Adds addComposedMappedModels and testComposedSchemaOneOfDiscriminatorMap
* Requires that discriminators be required properties
* Strengthens discriminaotr validation, adds better error messages, adds schema oneof samples
* Adds oneOf and anyOf invalidDiscriminator tests
* Updates incorrect addOneOfInterfaceModel invocation
* Runs ensure-up-to-date
* Adds updates from Sebastien Rosset
* Removes newlines
* Uses df.isString
* Fixes tests be correctly setting df.isString
* Updates discriminatorExplicitMappingVerbose description per PR feedback
* Adds description of how mappedModels is populated
* Adds the suggestion exception raising when a MappedModel mappingName is null
* Actually resolves merge conflicts
* Switches two methods to package private because they are needed for testing
* Allow nulls in MappedModel.getMappingName
* Remove exception when mappingName is null value
* Remove exception when mappingName is null value
* resolve merge conflicts
* resolve merge conflicts
* Execute scripts in the bin directory
* Fix CI issues and address PR review comments: better documentation and fix white space issues.
* Fix CI issues and address PR review comments: better documentation and fix white space issues.
* run sample scripts
* resolve merge conflicts
* fix end-of-line issue
* resolve merge conflicts
* resolve merge issues
* Handle case when discriminator is not specified in input data
* minor changes and add code comments
* Refactor get_discriminator code
* Add unit test with missing discriminator property
* improve get_discriminator function
* Run sample scripts
* add unit tests for recursive get_discriminator_class
* fix unit test issues
* fix formatting issues
* fix formatting issues
* fix formatting issues
* fix index out of range exception
* fix formatting issues
* fix formatting issues
* fix formatting issues. Finally figured out how to check formatting in local workspace
Co-authored-by: Justin Black <justin.a.black@gmail.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Use AttributeError instead of ApiKeyError because that's what the hasattr builtin function uses
* Use AttributeError instead of ApiKeyError because that's what the hasattr builtin function uses
* fix unit tests
* create ApiAttributeError exception
* fix formatting
* run samples scripts
* Fix locale issue for numeric string conversions
Using a generated C# client from an application with a locale that formats numbers with a comma as a decimal separator will make the client send invalid numeric parameters to the API. Any numeric parameter with decimals will added to the URL with a comma ('0,15' instead of '0.15'), potentially breaking the API integration.
In my specific use case, the API interpreted '0,15' as '15', resulting in pretty funky errors.
This commit ensures that parameters are parsed with the invariation culture, fixing the mentioned error.
* Add missing reference to System.Globalization
* Update ClientUtils.mustache
* Make the array items optional
* Handle any type schema
* Handle any type schema
* remove prefix and fullSuffix
* Remove prefix and suffix
* fix Java code comment
* Add code comments, use recursion for any type
* Address review comments
* Bump PHP version to 7.1 in readme
* Bump PHP version to 7.1 in class templates
* Remove HHVM from Travis CI config
PHPUnit dropped support of hhvm, so build unlikely will pass tests.
https://github.com/sebastianbergmann/phpunit/issues/3320#issuecomment-426325646
* Remove sudo: false from Travis-CI config
Official doc recommendation:
https://docs.travis-ci.com/user/reference/trusty/#container-based-infrastructure
* Change tested versions to 7.1, 7.2 in Travis-CI
* Remove PHP_CodeSniffer from dev dependencies
There is another linter(PHP CS Fixer) which is fully configured while
CodeSniffer isn't configured at all.
* Use caret instead of tilde in dependencies
^2.12 equals (>= 2.12.0 && <3.0.0) while ~2.12 is (>=2.12.0 && <2.13.0)
* Refresh samples
* [C++][Qt5] Add the ability to pass QNetworkAccessManager as a parameter
* connect to QNetworkReply::finished instead of QNetworkAccessManager::finished
* [C++][Qt5] regen samples for cpp-qt5-client
* [C++][Qt5] disconect from reply by timeout
* [C++][Qt5] regen samples for cpp-qt5-client
Co-authored-by: alfredotg <alfredotg@tu.ru>
* Minor changes to 2.1 templates to make them work or improve documentation
* Support for ASP.NET Core 3.0 and 3.1
* Update aspnetcore test scripts and results
* Update generated documentation
* update doc
* Update modules/openapi-generator/src/main/resources/aspnetcore/3.0/Startup.mustache
Co-Authored-By: Tatsuro Shibamura <me@shibayan.jp>
* Update modules/openapi-generator/src/main/resources/aspnetcore/3.0/Startup.mustache
Co-Authored-By: Tatsuro Shibamura <me@shibayan.jp>
Co-authored-by: William Cheng <wing328hk@gmail.com>
Co-authored-by: Tatsuro Shibamura <me@shibayan.jp>
* Add code comments
* Change 'setup' method to setPrivateKey
* Add support for configuring digest algorithm
* run script in bin directory
* format generated code
* Revert "format generated code"
This reverts commit 3b52778437.
* [scala][akka-http] fix non-default packages for api, model and invoker
* remove default invoker additionalProperty
* fix invoker package for scala-akka and sttp
* fix invoker package and settings for scala-akka
* fix tests compatible with windows paths
* test output
* test output
* fix base output path for test
* fix output path for test
* fix sttp invoker package
* fix runtime deserialisation
* add security support for dart dio
* regenerate dart dio sample
* update dio pubspec.mustache deps
* check response type before parsing
* add default dateTime serializer
* regenerate sample
* Propagate deprecated property through $ref's
As $ref is supposed to completely replace the definition of a property,
make sure we also include the 'deprecated' property when generating the
type of a $ref property.
This makes a property $ref'ing a deprecated schema also become deprecated.
* Clarify why we're messing around with $ref
* Fix return type in model setters.
Previously return type was same, as method arguments. It`s wrong, and cause errors like
"Return value of Foo::setSuccess() must be of the type bool, object returned"
We cant use self and current {{classname}} as return type, because that can break class inheritance. So, better remove type hint on setters, until PHP-devs dont make realization for return static
* Add return self type hint for setters
* Revert "Add return self type hint for setters"
This reverts commit 07dd9715
* better anytype support
* add tests for any type
* fix test with any_value
* fix tests
* fix case additionalProperties: {}
* test with CI
* remove check in map schema
* Revert "remove check in map schema"
This reverts commit e016c4155f.
* fix tests, comment out map schema fix
* fix tests
* fix tests with correct codegen model
* fix tests
* fix tests for map of any type
* fix array of any type
* fix array of any type
* update samples, remove log
* add typemapping to go, python
* Fix problem with clients, that put charset in content type header.
With this fix header "Content-Type: application/json; charset=utf-8" working same as "Content-Type: application/json" for parse input data
* Fix code style, add $consumes length check.
* Add isContentTypeAllowed static method and tests
* Fix old tests
Right now serializer doesn't support anything beside json and xml.
Call tests with application/json instead of form data.
Co-authored-by: Yuriy Belenko <yura-bely@mail.ru>
* Fixed valuetype parameters and discriminator deserialization
- Made non-required valuetypes nullable, and flagged required valuetypes as "x-csharp-value-type"
- Made sure to camelCase discriminator property names in Subtype converter
* Ran pet store sample script
* Ensure that readWriteVars and readOnlyVars are also marked as isEnum and isPrimitiveType where appropriate
* Updated petstore sample with enum fix
* Fields that are required should emit default values (otherwise the consuming API might throw a fit
* Added missing sample updated
* Re-ran petstore example script to grab all changes
* Rebased and re-ran example update script
* update csharp samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
Add a lambda that formats the documentation correctly even if it
contains newlines. The generated docs with typedoc looks a lot better
and also renders Markdown correctly.
Also remove the "no description" fallback for APIs because we don't have
it anywhere else, other generators don't generate a default fallback and
I'd rather have no documentation than a "no description" string.
There are cases where minimizing quotes results in invalid YAML. For
example, an input YAML with string "1234_1234" will be converted to YAML
value 1234_1234 which is an int in YAML 1.1
(https://yaml.org/type/int.html)
THe only option in these cases is to either:
* Revert the option completely to always quote values
* Provide a user-customization to disable quotes minimization
This applies the latter with the assumption that this is an edge case
and users who are unaffected will default to the "prettier" version.
An alternative would be to write a custom serializer for strings, and if
they are in the format of of any of the valid formats defined in YAML:
[-+]?0b[0-1_]+ # (base 2)
|[-+]?0[0-7_]+ # (base 8)
|[-+]?(0|[1-9][0-9_]*) # (base 10)
|[-+]?0x[0-9a-fA-F_]+ # (base 16)
|[-+]?[1-9][0-9_]*(:[0-5]?[0-9])+ # (base 60)
Then wrap the result in quotes. That approach was not taken because of
the potential for significant performance impact on very large specs,
which our users are often tasked with transforming.
deepObject query parameters need to be specially marshalled.
Unfortunately, they're quite tricky to distinguish in mustache because
there's no boolean property for deepObject, so add a vendorExtension
property to ease the mustache template.
* Try decoding but don't bail on error
* Switch binary and ByteArray to bytes
* Read content type and parse appropriately
* Remove response parsing
* Remove response parsing and just return the data
* Update petshop examples w/ new generator code
* Fix copy/paste error with naming
* Update petstore examples
* Move response decoding to inside _preload_content block
* Update the clients again
* Use a raw string for the regex pattern
* Regenerate petstore clients
* Add bytes to python primitives as it's supported in 2.7 and 3
* Add bytes to the exports from model_utils
* Import bytes from model_utils
* Add conditional typing for regex pattern to match variable type
* Regenerate petstore clients
* Use read() instead of text() for asyncio
* Regenerate petstore clients
* Remove unused six import
* Regenerate petstore clients
* Add newline to kick Circle to re-run
* Remove whitespace from tox.ini
* Update more examples after ensure_updated
* Add sample updates that didn't run with the --batch flag
* Remove extra bracket in regex to remove warning
* Stop printing debug messages
* Add bytes examples to python doc generators
* Update generated FakeApi docs
* Regenerate api_client.py
* Remove print statements from generated clients
* Update bytes example in FakeApi.md. Again. I swear.
* Add yet another seemingly missing doc update
* Catch the error, decode the body, and re-throw
* Remove the updates now that the change is non-breaking
* Regenerate client
* Add bytes deserialization test
* Update exception parsing
* Add exception parsing for python-experimental
* Regenerate client with minor changes
* Revert test changes
* Regenerate model_utils.py
* Update confusing test name
* Remove bytes from mapping and examples
* Add back in the old binary/ByteArray to str mapping
* Update docs and api_client template
* Add experimental api_client changes
* Regenerate samples again
* Add Tornado handling to early return
* Try fixing Tornado python returns
* More documentation changes
* Re-generate the client code
* Remove bytes from test_format_test
* Remove more leftover bytes usages
* Switch bytes validation back to string
* Fix format_test template and regenerate
* Remove unused bytes var
* Remove bytes import from models and regenerate
* Remove bytes import from test_deserialization
* Reduce nested ifs
* Remove byte logic for now
* Regenerate client after latest changes
* Remove another bytes usage
* Regenerate after removing dangling byte string usage
* Reduce the scope of the try/catch in api_client
* Regenerate after try/catch cleanup
* Swap catch for except
* Regenerate Python client after api_client change
* Fix lint error on the generated api_client
* Add binary format test back in w/ string
* Add decoding to python-experimental and regenerate
* Import re into python-experimental api_client
* Ensure file upload json response is utf-8 encoded bytes
* Adds addComposedMappedModels and testComposedSchemaOneOfDiscriminatorMap
* Requires that discriminators be required properties
* Strengthens discriminaotr validation, adds better error messages, adds schema oneof samples
* Adds oneOf and anyOf invalidDiscriminator tests
* Updates incorrect addOneOfInterfaceModel invocation
* Runs ensure-up-to-date
* Adds updates from Sebastien Rosset
* Removes newlines
* Uses df.isString
* Fixes tests be correctly setting df.isString
* Updates discriminatorExplicitMappingVerbose description per PR feedback
* Adds description of how mappedModels is populated
* Adds the suggestion exception raising when a MappedModel mappingName is null
* Actually resolves merge conflicts
* Switches two methods to package private because they are needed for testing
* Allow nulls in MappedModel.getMappingName
* Updates CLI flag name to legacyDiscriminatorBehavior, default=true
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Add __setattr__ function to ensure signing_info.host is the same as configuration.host when the user assigns signing info
* Add __setattr__ function to ensure signing_info.host is the same as configuration.host when the user assigns signing info
* add support for any type, i.e. when 'type' attribute is not specified in OAS schema
* fix typos, add code comments
* Handle case when 'type' attribute is not present in the OAS schema
* fix python formatting rule
* fix python formatting rule
* remove 'object' as a type
* add jersey2 experimental
* add new files
* add abstract one of class
* read the stream multiple times
* rename to getActualInstance
* update petstore
* fix jackon check
* test new java petstore in ci
* fix broken tests
* remove todo
* better exception message, primitive type handling
* add anyof support
* update samples
* add new files
* update all java client samples
* update doc, fix pom
* better null check for allOf
* add primitive types support in oneof, anyof
* better validation
* update python exp samples
* remove primitive type support in allOf
* [Rust Server] Fix RustServerCodegen type: object example "Disabled because there's no example" issue.
* [Rust Server] Add test case yaml with "Disabled because there's no example" issue.
* [Rust Server] Fix example-client-main param.example character escaping issue with raw string.
* [Rust Server] Add test case yaml new generated code after fix.
* [Rust Server] Fix issue with multiple tags on an operation generating duplicate methods.
* [Rust Server] Add test case yaml with multiple tags on a single operation.
Some APIs have a model called "Index" which would create a file
"Index.ts" which would override "index.ts" on case-insensitive file
systems (e.g. macOS, some Windows versions). Make "Index" a reserved
word to prevent this clash.
* Change the Model template (#5222)
* Add a link to Xero blog post (#5426)
* Removal of Encoding in the Query-Params in order to prevent double Encoding. (#5255)
This way letting WebClient do its Job in encoding the URL.
* update java webclient sample
* [kotlin][client] Add Jackson as serialization library (#5236)
* [kotlin][client] Add Jackson as serialization library
* [kotlin][client] Add kotlin-client-jackson.sh to kotlin-client-all.sh
* update kotlin client samples
* update doc
Co-authored-by: William Cheng <wing328hk@gmail.com>
* include kotlin jackson in CI tests (#5438)
* [Ruby] Add error output (#5428)
* Add error output to the log so that we can make sure why the error occurred
* Fix forbidden method invocation using default charsets
* Update usage.md (#5443)
* fix NPE for enum (#5445)
* [Java][WebClient] better code format (#5433)
* better code format for java webclient
* prefix local varaible with localVar
* fix issue with online service (#5461)
* Support for additionalProperties in the C generator "Client: C" solves #5395 (#5440)
* Support for additionalProperties in the C generator.
* Support for additionalProperties in the C generator.
* [docs] Enable Algolia search (#5472)
* Fix#5420 add headers from configuration object (#5422)
* Fix#5420 add headers from configuration object
* Add baseOptions undefined checking #5420
* Update the samples and replace array to object #5420
* Update sample
* [typescript] Clean up modelPropertyNaming across generators (#5427)
* [typescript] Clean up modelPropertyNaming across generators
Fixes https://github.com/OpenAPITools/openapi-generator/issues/2976
Generators without runtime models conversion use "original" property naming by default. It's still possible to change it via cli options
Generators with runtime conversion keep using "camelCase"
* Refactoring: use enum instead of string for modelPropertyNaming
* Restore the original camelCase for var names, decouple it from property names
* Swap toParamName and toVarName logic (looks like I've mistaken them)
* Regenerate docs
* Remove a no longer used private method
* Added support for msvc builds in cpp-qt5-client generator (#5468)
* Added support for msvc builds
Moved GCC-specific compile flags to non msvc builds, and added equivalent flags for msvc.
* CMakeLists condition cleanup
* [all] Move feature set setter (#5460)
When I originally implemented the feature set code, I added the
getter/setter on DefaultCodegen and CodegenConfig as well as on
GeneratorMetadata. GeneratorMetadata also includes the library variation
features. When I went to add library-specific features, I realized the
discrepancy.
This removes the public setter from DefaultCodegen/CodegenConfig, and
adds a protected modifyFeatureSet which accepts a lambda and hides the
builder logic away in the method.
This will be a breaking change for anyone who's created a custom
generator in 4.2.3, so the impact is very limited.
* [Swift5] small improvements to Objc compatibility (#5410)
* [swift] make some small improvements
* [swift][client] revert model to use allVars
* PostProcessModelProperty with allVars
* PostProcessModelProperty with vars
* [swift] improve objc interoperability
* [swift] fix swift4 for CI to pass
* [swift] improve objc interoperability
* [swift] improve objc interoperability
* Swift - try to fix build
* [swift] remove pods from git
* [scala] [template] scala sttp client (#5429)
* scala-sttp-client template
* invoker for sttp fixed and tests added
* clean up pet api test from redunant comments
* docs updated
* fix artefact name, model comments and redunant generic
* code optimization
* cross scala versions 2.11 2.12 2.13
* date serializers extracted and joda enabled as default
* basic and bearer authorization added, apikey in query supported
* [Ruby] Fix obsolete configuration of Rubocop and Rubocop's warns (#5417) (#5474)
* fix obsolute configuration in generated .rubocop.yml
* fix style of `expect` with block in generated ruby client's test code
* update sample of ruby client
* [scala] strip model class name for all scala generators (#5439)
* stripped parameter enabled for all scala based generators
* scala samples updated
* docs generators updated
* fix scalatra. regenerated by openapi3 script.
manually removed enum default value from scalatra example due bug in schema extraction
* [Scala][sttp] various improvements (#5475)
* various improvements to scala sttp
* update ScalaSttpClientCodegen.java
* add windows batch file
* test scala sttp in jdk8
* fix tempalte directory
* Use the dataType if the baseType is not set (#5372)
* Use the dataType if the baseType is not set
* add tests for passing enum as parameter
* updated requirements file in samples
* Update spec to explicitly name objects and prevent `inline_object`
* use the correct scripts to generate samples (`bin/openapi3/python-flask*`)
* [python] Adds python oneOf/anyOf models + tests (#5341)
* Adds oneOf + anyOf schemas, models and tests to python-experimental
* Adds setUpClass and tearDownClass
* Removes newline in method_init_shared.mustache
* Regenerated v3 spec sample for python-experimental
* Fxes test for discard_unknown_keys
* Moves new models into existing spec, regen python-exp and go-exp
* Also fix python-exp windows file
* fix CVE-2020-8130 (#5483)
* [go] Add Ptr method to const enum values (#5257)
* fix rubocop warns in Ruby client's custom spec (#5488)
* [C-libcurl] The name in API parameter should not be escaped even though it includes a C key word. (#5487)
* [go-experimental] Support aliasing of API keys (#4940)
* [go-experimental] Support aliasing of API keys
* Use {{.}} inside condition
* Use name instead of keyParamName for lookup
* x-lookup to x-auth-id-alias
* [java] Support aliasing of API keys (#4966)
* [java] Support aliasing of API keys
* Rebuild Java Jersey2 sample client
* x-lookup to x-auth-id-alias
* Regenerated
* [cli][gradle] Validate now uses parseOptions w/setResolve (#5471)
* [cli] Validate now uses parseOptions w/setResolve
The validate command now uses ParseOptions#setResolve(true) to match how
we parse in CodegenConfigurator and online's Generate. Without this
option, the OpenAPI 3 parser skips the "resolve" block, which made lead
to validations in the command not matching validations during
generation.
* [gradle] Validate now uses parseOptions w/setResolve
The Graldle validate command now uses ParseOptions#setResolve(true) to match how
we parse in CodegenConfigurator and online's Generate. Without this
option, the OpenAPI 3 parser skips the "resolve" block, which made lead
to validations in the command not matching validations during
generation.
* [kotlin]Fix ktor doesn't generate nullable types (#5258)
* If not required, need `? = null`
* run ./bin/kotlin-server-petstore.sh
* Added `?` when value is `required` and `isNullable`
* Rerun ./bin/kotlin-server-petstore.sh. But No differences
* [C++] Add an option to allow having lowercase variables in models, Pistache: allow using reservedWords in models (#5434)
* [C++][Pistache] Use reserved words to replace incorrect names
discard old decision to truncate reservedWords
* [C++][Pistache] Update struct model to use name instead of baseName
* [C++][Pistache] Update Petstore sample
* [C++] Add option to have lowercase variables
* [C++] Update generated docs
* [BUG] [JAVA | Spring] Cookie in parameter is not correctly generated (#5393)
* Cookie in parameter is not correctly generated
* gh-5386: Fix cookie parameter in
* gh-5386: Fix cookie parameter in
* gh-5386: Update test file
* gh-5386: Fix cookie parameter in
* gh-5386: Fix cookie parameter in
* gh-5386: Regenerate samples
* gh-5386: Fix test
* Added Spring CookieValue tests
Co-authored-by: Gonzalo <gonzalo.nom.es@gmail.com>
* Add missing `@Generated` annotation. (#5384)
The annotation is present on other generated files when using jaxrs-spec, but it missing on model classes.
* [scala] [template] scala model property style (#5486)
* Model property naming style generic for scala
* scala templates based on abstractScala regererated
* docs generators updated
* property format tests
* add Agoda as the user (#5494)
* Hide timestamp in Scala Play server samples (#5495)
* hide timestamp in scala play server output
* add chameleon82 to scala tech committee
* Add a link to tech blog tech.medpeer.co.jp (#5498)
* Add links to blog posts about OpenAPI Generator (#5508)
* Typescript array alias array (#4981)
* Add failing tests for typescript type declaration
* Refactor array and map child type string fallback
* Add unaliasSchema to typescript getTypeDeclaration
* TypeScriptRxjs: Use Blob as file type declaration
This was inadvertantly changed in
https://github.com/OpenAPITools/openapi-generator/pull/5266
* [core] Sanitize/underscore/camelize cache expiry (#5484)
The helper methods for sanitize/underscore/camelize were recently
updated to cache values in static maps. This would lead to a memory leak
in hosted environments as the maps had no cleanup/expiry.
This moves those cached entries to Caffeine caches with expiry based on
last access to allow the edge-case performance improvement gains on very
large documents, without the memory leak in hosted or embedded
environments.
* Update README.md
* Add a link to the conference paper (#5510)
* Add a link to the conference paper
* fix author list
* [Slim4] Add Data Mocker middleware (#4978)
* [Slim4] Store response schemas
* [Slim4] Add Data Mocker middleware
* [Slim4] Enhance Slim router
* [Slim4] Enhance config
* [Slim4] Fix data format key in object mocking
* [Slim4] Add tests for Data Mocker middleware
* [Slim4] Add Mock feature documentation
* [Slim4] Refresh samples
* [Java][Spring][Spring-Cloud] Fix#5144 - Use conditional package declaration to avoid unnecessary dependencies (#5145)
* FIX: Use conditional package declaration to avoid unnecessary dependencies
* DEV: Adjusted sample ClientConfiguration.java for async spring-cloud
* fix(php): no need to serialize collections, Guzzle does that, fix#2292 (#3984)
* fix(php): only serialize collections if !explode, Guzzle handles the rest, fix#2292
* fix(php): update petstore samples
Co-authored-by: Mahdi Dibaiee <mdibaiee@pm.me>
* [php] replace $collectionFormat with $style (#5517)
* php - remove $collectionFormat
* update php openapi3 petstore sample
* [BUG][scala][template] scala generate java.math.BigDecimal instead of scala type (#5514)
* [BUG] scala generate java.math.BigDecimal instead of scala type
* update docs/generators
* [PHP] complete support for form style (#5519)
* [BUG][PHP] Parameter property style not fully implemented (related to comment on PR #3984)
* [AUTOGENERATED][PHP] Sample Files
* update jackson dependency to newer version (#5527)
* Fix Swift4 CI tests (#5540)
* comment out swift 4 order tests
* comment out store tests
* Test Dart petstore client in CircleCI (#5544)
* test dart2 in circle ci (jdk7)
* fix tests
* update package
* fix dart installation
* Add serialization of ModelComposed (#5551)
* Fixes kwargs typos, removes E501s (#5552)
* Update generic model to support nullable properties (#5568)
* [DOC] Add link to integration test wiki in CONTRIBUTING.md (#5570)
* Add link to integration test wiki
* Add link to integration test wiki
* [Kotlin][client] fix file upload (#5548)
* [kotlin] fix file upload
* [kotlin] fix file upload
* [kotlin] fix file upload
* [kotlin][client] fix jackson integration
* [kotlin] fix file upload
* [kotlin] fix file upload
* update doc
* [Java] Fix exception when OAuth2 token URL is a relative URL (#5535)
* Add support for case when OAuth2 token URL is a relative URL
* Add support for case when OAuth2 token URL is a relative URL
* run scripts under bin
* [Java] fix runtime exception when there are multiple auth methods (#5530)
* fix runtime exception when there are multiple auth methods
* Refactor a bit so that it does not cause conflict with relative url token branch
* [markdown] Fix broken links when generating markdown (#5569)
* [markdown] Fix broken links when generating markdown
The `api.mustache` file generates links to the markdown model files.
These links were previously brokeen.
Additionally, the defaultPackage for markdown is "/Models", so this
looked pretty in the heading for model files. So this prefix has been
stripped from the header in `model.mustache`.
* Re-generate Petstore samples for markdown
* typescript-angular: fix zone-js version for angular 8 (#5585)
* Add a link to the slide (#5590)
* [Swift] fix URLSession file upload (#5546)
* [swift5] - fix URLSession file upload
* [swift5] - fix URLSession file upload
* [swift5] fix file upload
* [swift5] - fix URLSession file upload
* [swift] add unit tests for file upload
* [swift] update samples copyright
* [swift] add option for API prefix (#5567)
* [swift] add option for API prefix
* [swift] update docs
* [haskell-http-client] update stack; exclude problem time versions (#5589)
* [go-experimental] Do not generate HTTP signature unit test for every generated SDK (#5588)
* Do not generate HTTP signature unit test for every generated SDK
* Add golang 1.14 to CI environment
* fix unit test issues
* remove script commands that were commented out
* add support for ed25519 private keys
* PR to solve 2 open issues on enums: #5091 and #4293 (#5477)
* PR to solve 2 open issues on enums:
Issue 5091 needs to generate enums also when the enum is directly in a param to a API call, instead than in a model. I did that by copying and adapting enum code from *model* to *api*
Issue 4293 needs to decorate enums, for when enum names or enum values are repeated over the yaml definition.
* PR to solve 2 open issues on enums:
Issue 5091 needs to generate enums also when the enum is directly in a param to a API call, instead than in a model. I did that by copying and adapting enum code from *model* to *api*
Issue 4293 needs to decorate enums, for when enum names or enum values are repeated over the yaml definition.
* Enums decorated: with {{projectName}}_{{classVarName}}_{{enumName}}_ in the models, with {{projectName}}_{{classVarName}}_{{enumName}}_ in the operations.
* Changes to the c client:
- Removed white space.
- Removed ToJSON and FromJSON function for the enums, since they are not used
- Sanitized project name in the .java file. For example, this solves a problem with the issue #2338, where the yaml file had title: "Skycoin REST API."
* Changes to the c client:
- Removed white space.
- Removed ToJSON and FromJSON function for the enums, since they are not used
- Sanitized project name in the .java file. For example, this solves a problem with the issue #2338, where the yaml file had title: "Skycoin REST API."
* Adds parseFlattenSpec (#5526)
* Adds parseFlattenSpec, updates tests and helper functions
* Adds parseSPec invocation inside parseFlattenSpec
* Scala-Akka: Add missing body to PATCH requests (#5605)
* NodeJS - Adds missing keyword (#5606)
* [jaxrs-cxf-cdi] Support PATCH httpMethod (#5574)
Update the required CXF version to 3.1.2 since PATCH support appeared
with this version.
Add the cxf PATCH annotation to the imports so that the generated code
when defining a PATCH api compiles.
* fix default value for abstract scala and scalatra server impl (#5578)
* [Java] Generated API class has wrong dataType and does not compile Issue (#5331)
* add unit test assertion
* add check for composed schema
* add support for x-allOf-name
* change x-allOf-name to x-all-of-name
* Add more troubleshooting information
* Add more troubleshooting information
* Add more troubleshooting information
* Add more troubleshooting information
* [swift5] stop hiding network error (#5603)
* [swift5] stop hiding network error
* [swift5] stop hiding network error
* [scala][templates] java 8 dates support (#5291)
* [scala][akka-http-client] java8 dates support
* scala-akka readme doc updated
* DateSerializers renamed
* rename serializers
* move date-library option to abstractScala
* generators docs updated
* enum defined for date libraries
* Backport to scala-http-client
* fix scala-akka-client date serializers
* fix typo in docs
* switch scala templates to java8 (jsr-310) date library by default
* update scala samples with java8 date library
* update scala generators docs with java8 default date library
* fix scala-play-server generator cli options as only java8 dateLibrary supported
* fix scalaz DateTimeCodecs template to support java8
* scalaz ci test againt java7 removed as it generate scala 2.11.8 client which is java8 based
* update doc
* Adding Response Interceptor (#5500)
* added Response interceptor for native clients
* added Response interceptor for native clients
* [k6] Add blog post about using the k6 generator (#5608)
* [Kotlin] Remove kotlin-reflect dependency when not needed (#5502)
* Remove kotlin-reflect dependency when using CodeGen
* Update Kotlin tests
* Regenerated unit test samples
* Remove newline in generated build.gradle files
* [typescript-fetch] add interfaces, withInterfaces (#5612)
* typescript-fetch: interfaces, first draft
* fix name in description
* [scala] Regenerate akka sample (#5622)
* scala-version 2.11.12 (#5618)
* micheleISEP->michelealbano (#5625)
* [Powershell] refactor the client generator (#5629)
* add api client
* add local variables
* add configuration
* add header/query/form parameter support
* add partial header
* add auth, fix parameters type
* fix accept, content type
* url query string
* fix path, header
* remove dep on C# client
* fix method naming with package name
* fix object
* convert result from json
* better response handling
* remove tostring method
* fix model doc
* fix default module
* generate api test files
* better api, model tests
* fix add pet
* add appveyor
* fix accept, content type
* add petstore tests
* fix form parameters
* test delete
* better file handling (upload)
* better code sample
* add package version, better doc
* delete unused files
* fix header parameters
* clean up api client
* update samples
* support query parameter
* better method and parameter naming
* minor formatting change
* better doc, fix cookie parameter
* better doc
* add api prefix support
* better api nam prefix option
* fix configuration
* throw errors for required parameter
* fix authentication
* add try catch block to sample code
* rename model
* use debug, clean up comment
* revise code
* move bin script
* update doc
* add new file
* better map support
* [PowerShell] minor improvements and bug fixes (#5635)
* add output type, minor format fix
* minor test improvement
* Port client updates to server (#5634)
* Revert "scala-version 2.11.12 (#5618)"
This reverts commit 6b984a926a.
* update release date
* Handle negative response from the server (#5649)
* Fix integration tests (Travis, CircleCI) (#5672)
* fix php tests
* fix scala tests
* update ts angular v6 rest
* fix user create test
* fix spring cloud test
* comment out user delete
* fix angular v7 tests
* fix user test
* fix tests
* fix go exp tests
* commented out delete user tests
* comment out delete user tests in go openapi 3
* fix clojure tests
* [PowerShell] Fixes typo (#5648)
* Solving issue #5623 and supporting bools for C client label:"Client: C" (#5624)
* Removed stray "printf"s in
modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CLibcurlClientCodegen.java
* Support for booleans in C client
* Update README.md
* Change to C API mustache files to solve issue #5623
* Debugging of C's modle-body.mustache, as suggested by ityuhui
* Final changes suggested by ityuhui
* [PowerShell] Fix map type (#5638)
* fix map type
* remove output type, fix appveyor
* test macos
* comment out failing scala test
* fix typo: configuration
* Revert "comment out failing scala test"
This reverts commit 1dcf84ffcb.
* [powershell-experimental] Protects against stackoverflow when OAS spec has circular references (#5646)
* protects against stackoverflow when OAS spec has circular references
* protects against stackoverflow when OAS spec has circular references
* Adds configuration option to skip certificate check. Fixes a typo. Fixes an issue which was restricting from cookie to get consumed (#5657)
* [k6] bugfixes to improve the output script (#5614)
* [k6] Skip appDescription escaping
* [k6] Fix variable identifier in output
* [k6] Fix bug with reserved words handling
* [C][Client] Check the pointer before deleting operation to avoid core dump label:"Client C" (#5626)
* [C-libcurl] Check the pointer before deleting operation to avoid core dump
* [C-libcurl] Check the pointer before deleting operation, update sample
* [kotlin][client] Add Jackson to interface properties and remove extra line feed (#5459)
* [kotlin][client] Ensure Jackson annotations are consistent with interface vars
* [kotlin][client] Rebuild samples
* [kotlin][client] Some kotlin client enhancements
- Don't use JsonFormat for Date objects, this should be controlled via
a custom serializer/deserializer or a turning on and off serialization
features of Jackson. I've updated the jacksonObjectMapper config to
write the dates as strings, which I think was intended in the original
commit.
https://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/SerializationFeature.html#WRITE_DATES_AS_TIMESTAMPShttps://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/cfg/MapperConfig.html#getDateFormat--
- Dont' use @JsonFormat(shape = JsonFormat.Shape.OBJECT) for enums.
This causes Enums to be formatted as objects with an internal "value"
field. In reality, OpenAPI enums are just strings without properties
and should be treated as a string.
https://www.baeldung.com/jackson-serialize-enums#2-enum-as-json-object
- Add's Kotlin use site annotation @get: to JsonProperty for parent interface
properties. Otherwise Kotlin will warn:
"This annotation is not applicable to target 'member property without
backing field or delegate'"
- Add's JsonTypeInfo annotations to interfaces for inheritance. This
was copied verbatim from the kotlin-spring generator.
https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/main/resources/kotlin-spring/typeInfoAnnotation.mustache
* [kotlin][client] Rebuild kotlin samples
* Remove scala version in parent pom (#5647)
* [asciidoc] Allow the inclusion of additional documentation to t… (#5260)
* [asccidoc] Allow the inclusion of additional documentation to the asccidoc generated
Resolves#5228
* [jaxrs-reasteasy-eap] Fix invalid Bean Validation annotations for Longs (#5659)
* fix issue #5658
* update samples
* [PowerShell] Test powershell petstore client in Appveyor (#5674)
* remove scala version in parent pom
* test ps petstore in appveyor
* fix command
* build and import
* fix import module
* fix import
* skip module import
* run multiple commands
* move to test script
* test ps exit
* fix exit
* check last status code
* clean tests
* exit last code
* add import
* change dir
* skip build failure
* fix check
* trigger build failure
* fail fast
* restore c# test
* new line comment
* add powershell exp to ensure up to date script
* [PowerShell][Experimental] Better docstring (#5688)
* add docstring to powershell module
* add doc string
* Nodejs express js packages update (#5675)
* Updated to new nodejs packages, depending heavily on express-openapi-validator. Requires quite a change in code.
Updated the business-logic in the controllers/Controller.js file.
Logger now records also timestamp of events.
Files are uploaded according to definition in config.js file
* Removed commented-out code; Changed openApi document extensions to suit new express-openapi-validator definition; multipart and file uploading is supported now; Automatic response returns the values the were sent in the request
* fixed README documentation, fixed a mistage in package.json/mustache
* added generated files that were created when running the ./bin/test file
* [go-experimental] Fix nullable support (#5414)
* Fix nullable support in go-experimental client
* Fix support for models with parents and container fields
* Make sure that oneOf interfaces serialize properly even if they're required (non-pointers) on other models
* Spaces => tabs
* Regenerate samples
* Make some methods of nullables pointer-receivers, add tests
* Improve the Get/Set logic to make usage more convenient
* Address review
* [kotlin][client] make base path globally configurable (#5450)
* [kotlin][client] make base path configurable
* [kotlin][client] update pet project
* [kotlin][client] set default base path
* [kotlin][client] set default base path
* [kotlin][client] set default base path
* Add michelealbano to C technical committee (#5692)
* [Go][Experimental] Rename extensions from x-basetype to x-go-base-type (#5691)
* rename go vendor extension
* update go exp petstore samples oas3
* comment out powershell petstore in uptodate script
* remove processing of http_signature_test.mustache (#5696)
* Fix generation of oneOf interfaces for oneOf usage in properties (#5400)
* Fix generation of oneOf interfaces for oneOf usage in properties
* Only generate oneOf interface models when oneOf is defined
* use basic parsing (#5702)
* [python/asyncio] explicitly close client session via async context manager (#5621)
* [gradle] Include engine option for handlebars generation (#5686)
* [codegen][Go] Fix compilation error of generated go code when schema is free form object (#5391)
* Fix code generation for free-form objects in go-experimental
* Execute scripts in bin directory
* Add more use cases for open-ended types
* Add more use cases for open-ended types
* Add more use cases for open-ended types
* add code comments
* Better name for test properties
* handle scenario when type is arbitrary
* handle interface{} scenario
* handle interface{} scenario
* add helper function isAnyType
* isAnyType function
* implementation of isAnyType function
* fix javadoc issue
* handle interface{} scenario
* use equals comparison instead of ==
* merge from master
* Add code documentation
* add code comments, remove unused min/max attribute, fix equals method
* Handle 'anytype' use case
* add code comments
* override postProcessModelProperty to set vendor extension
* Use vendorExtensions.x-golang-is-container
* fix compilation error of generated code
* fix compilation error of generated code
* fix compilation error of generated code
* [Java] Update version of maven-surefire-plugin (#5509)
* use more recent version of maven-surefire-plugin
* use more recent version of maven-surefire-plugin
* higher debug level for troubleshooting ci issue
* temporarily increase debug log to help troubleshoot
* Use local instance of pet store service for unit test purpose
* Add more logging to troubleshoot unit test failures
* Add more logging to troubleshoot unit test failures
* Add more logging to troubleshoot unit test failures
* Add more logging to troubleshoot unit test failures
* Add more logging to troubleshoot unit test failures
* use random ID for Java unit test instead of fixed id
* add code comments and specify URL for java unit test
* reenable quiet argument
* fix java unit test issues
* fix java unit test issues
* Revert "fix java unit test issues"
This reverts commit e8508416ff.
* fix java unit test issues
* Generator for JavaScript/Apollo Client (#5645)
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Add yutaka0m to Kotlin Technical Committee (#5716)
* Add Scala client scripts to ensure-uptodate process (#5712)
* add scala client to ensure-upto-date
* new scala-akka petstore oas3 folder
* regenerate scala akka oas2 petstore
* remove script
* Minor improvments to JS apollo generator (#5714)
* minor improvments to js apollo generator
* comment out apollo
* [Rust Server] Handle text/xml correctly (#5660)
* [Rust Server] Handle text/xml correctly
Treat application/xml the same as text/xml as per RFC 7303
* [Rust Server] Add test for text/xml
* Update samples
* 4.3.0 release (#5721)
* update samples (#5722)
* 5211 - Use allVars instead of vars for Kotlin client (#5396)
* [C++] [Qt5] fixed cpp-client-qt5 HttpRequestWorker requests crashing on timeout... (#5651)
* - fixed cpp-client-qt5 HttpRequestWorker requests crashing on timeout when they have actually NOT timed out (were calling back into a deleted struct).
* #minor fixes after review
* Regenerate changed files
Co-authored-by: valentin Bisson <valentin@inrosoftware.com>
Co-authored-by: etherealjoy <sunn.ssb@live.com>
* Fix SSL setting in checkout script (#5725)
* fix ssl setting in checkout script
* add check for sbt-openapi-generator
* [C] fix decode funtion (#5642)
* fix function names and add parameter to return decoded bytes length from base64decode function
* format base64decode function to avoid unnecessary malloc and fix wrong length assigning
* update the pointer assigning
for some reason var++ / *var++ cannot be done on int *var, hence making a local variable which is incremented and at the end it is assigned to the pointer.
* Update bump.sh to go SNAPSHOT to version (#5727)
* Fix CI failures (#5734)
* update ci to use petstore 1.0.4
* comment out test
* comment out test
* comment out update user test
* comment out more tests
* use latest petstore
* comment out updatePetWithForm
* comment out update pet test
* fix file path in release_version_update_docs (#5724)
* better appveyor test (#5739)
* better readme, type mapping, new option (#5740)
* Remove warning for unused camel case vendor extension for Qt5 client and server (#5731)
* [PS][Experimental] Add multiple server support (#5741)
* code comment
* add get host setting
* add multiple server support
* add default headers support (#5746)
* [C][Client] Support SSL client authentication for the c client (#5719)
* [C][Client] Support SSL client authentication
* [C][Client] Support SSL client authentication, update sample
* [kotlin] Fix#5247 incorrect enum parameter type for arrays (#5435)
* [Erlang-Server] security definition context changes don't propagate to handler (#5751)
* Map Merge Context & Params
handler requires context and params to be merged before returned to user defined request_handler.
* post build & shell script
* Delete VERSION
* [PS][PowerShell] fix passthru, use switch instead of bool (#5768)
* fix passthru, use switch
* remove line
* comment out kotlin vertx server test (#5767)
* add support for common verbs (#5771)
* fix request.on_complete message when tempfile is nil (#5745)
* fix request.on_complete message when tempfile is nil
* update faraday client sample
* add openapi3 client samples
* use prepare instead of new (#5773)
* use Initialize instead of prepare (#5777)
* add map example (#5778)
* [PS][Experimental] Better common verb handling (#5783)
* better common verb handling
* better debugging
* add option to customize common verb
* [cli][docker] Better expose version/sha information of builds (#5736)
* [cli] Some CLI improvements…
* Introduce --version
* Introduce --help
* Add --sha to version command for short SHA display
* Output Version and SHA details
* In new --version output, display repo and doc site
Additional cleanup to suppress warnings and code quality.
* [docker] Adds labels for metadata
This adds image labels to store metadata on the online and cli docker
images, using standard labels:
* org.opencontainers.image.created
* org.opencontainers.image.revision
* org.opencontainers.image.title
* org.opencontainers.image.version
These can be inspected via 'docker inspect IMAGE_NAME' and may be useful
in tooling/automation or bug reports submitted by users.
For more details on these labels, see:
https://github.com/opencontainers/image-spec/blob/master/annotations.md
* Include version --full for equiv to --version
* [cli] Add --global-property for -D replacement (#5687)
-D option has been deprecated as it was previously used to:
* Pass "system properties"
* Pass additional properties
This was confusing because we already have --additional-properties and
because Java System Properties are passed as -D before program
arguments.
Confusion around the -D option had existed for some time, but when we
introduced the thread-safe GlobalSettings to avoid overwriting Java
System Properties, we created a hard break from Java System Properties
in the generator. This also disconnected the previous "system
properties" from accepting additional properties.
Once these newly deprecated methods are removed, we will have a clear
separation of concerns between:
* Java System Properties
* Global generator properties (used as workflow context)
* Additional properties (used as generator options)
This commit marks multiple places for cleanup in 5.0. These will be
breaking changes, and lower effort to break in 5.0 with deprecation
warnings now rather than adding sibling properties throughout the code
and potentially introducing logic errors.
* [dart-dio] Fixes --model-name-suffix having no effect (#5669)
Fixes#5409
* [go-experimental][go][client] Remove unreachable code in go client API methods (#5611)
* [go-experimental][go][client] Remove unreachable code in go client API methods
* Properly regenerate all samples
* please add openVALIDATION Project to readme (#5534)
* added openVALIDATION Project to readme
* Update README.md
Co-Authored-By: Akihito Nakano <sora.akatsuki@gmail.com>
Co-authored-by: Akihito Nakano <sora.akatsuki@gmail.com>
* [Csharp-client] Complex form parameters are not serialized as application/json (#5787)
* [csharp-client] Complex form parameters are now correctly serialized as json.
Reference: http://spec.openapis.org/oas/v3.0.3#special-considerations-for-multipart-content
* Updated bin/windows csharp sample generation scripts to point to the correct directories
* Updated csharp samples
Co-authored-by: Olivier Leonard <oleonard@ankama.com>
* fix scala-akka java8 serializers (#5742)
* fix scala-akka java8 serializers
* regenerate samples for akka-http
* [typescript-axios][client] Unnecessary imports occurs when using withSeparateModelsAndApi (#5797)
* add ts-ignore
* add petstore sample
* use write verbose in auth, better api doc (#5804)
* [PS][Experimental] add withHttpInfo support, fix "null" return (#5811)
* add with http support
* use full name in tests
* using full name in test
* skip type check
* [PS][Experimental] Add tests for array of object in response (#5814)
* debugging array response
* fix find pet tests
* better tests to ignore order
* [codegen] Use once(LOGGER) to reduce amount of identical warning messages (#5808)
* Warn once instead of many times when the log statement does not have contextual information
* Warn once instead of many times when the log statement does not have contextual information
* make name cache configurabl (#5775)
* [codegen] Cachesize config seconds (#5816)
* make name cache configurable
* Address review comments
* [Python-experimental] Documentation enhancement for oneOf schema and minor err msg improvement (#5791)
* Add documentation to generated code
* Improve error message
* Improve documentation
* Improve documentation
* Improve documentation
* Improve documentation
* Improve documentation
* Improve documentation
* Run sample scripts
* Address review comments
* Address review comments
* Fix problem in python error message
* rename hostsetting, validate base url (#5821)
* fix array return (#5822)
* Scala akka-http server (#5758)
* Scala akka-http server base implementation
* [scala-akka-http-server] petStore samples
* Improved the formatting of generated files
* Updated scala-akka-http server samples
* [scala-akka-http-server] the groupId, artifactId and artifactVersion default value are used as intended.
* Fixed the default operation not being correctly generated on parameterless operations
* Added build.sbt.mustache supporting file
* Updated scala-akka-http server samples
* ScalaAkkaHttpServer: Fixed a String.format call to use Locale.ROOT for locale
* [scala-akka-http-server] Fixed defaultValue being escaped during generation
* Added scala-akka-http.md
* Replaced all "⇒" character with "=>" to retain compatibility with scala 2.13
* [scala-akka-http] Added a config option akkaHttpVersion
It's set in the generated build.sbt.
* Updated scala-akka-http server samples
* [scala-akka-http] More accurate akkaHttpVersion parsing
* Updated scala-akka-http.md
* [scala-akka-http] Changed the akka-http version check to fix the generation of StringDirectives
* Updated scala-akka-http samples
* updated scala-akka-http.md
Co-authored-by: Olivier Leonard <oleonard@ankama.com>
* Minor improvements to scala akka server (#5823)
* minor improvements to scala akka server
* add samples
* update doc
* Update swagger parser to 2.0.19 (#5413)
* update swagger parser to 2.0.18
* fix online server exception
* Revert "fix online server exception"
This reverts commit fe3cb5221f.
* update parser to 2.0.19
* [jaxrs-cxf-cdi] fix allOf equals and hashCode (#5756)
When generating model that use allOf, the equals and hashCode methods
must take the parent class into account.
* [BUG] [KOTLIN] Fix default value generation for Kotlin Strings (#5776)
* fix default value generation for kotlin
* add updated pet templates
* Revert "add updated pet templates"
This reverts commit 7e8168ad
* regen pet store projects code
* tests for models for C-libcurl generator (#5699)
* First try to generate unit tests for the models of the C-libcurl client. Models into models are not supported yet.
* Added unit tests for the modules of the C-libcurl client to the git repository.
* Support for objects having other objects as properties, for the C-libcurl client generator
* Proper formatting of generated code
* use allVars to cover all properties (#5835)
* support enum in parameters (#5838)
* [C++] [Qt5] [Client] fixed cpp-client-qt5 HttpRequestWorker contentCompression variables initialization (#5834)
When contentCompression is not enabled, the variables isRequestCompressionEnabled and isResponseCompressionEnabled in HttpRequestWorker are not being initialized.
Without initialization the compress function could be called and the request content could be an empty QByteArray instead of original request body.
* minor fix to http basic auth (#5839)
* Scala akka http server - normalization of some vendor extensions (#5829)
* [scala-akka-http-server] Normalized vendor extension "paths" to "x-paths"
* [scala-akka-http-server] Normalized vendor extension "hasDefaultValue", "isDefault", "specificMarshallers", "fileParams", "nonFileParams"
Co-authored-by: Olivier Leonard <oleonard@ankama.com>
* Add Bouill to the Scala technical committee (#5843)
* C client generator improvements to support petstore. Solves #5836 (#5837)
* C client generator improvement to support:
openapi-generator/modules/openapi-generator/src/test/resources/3_0/petstore.yaml
* Improvements to the C client generator:
- moved base64* from apiClient.c to binary.h/binary.c
- changed CR/LF to LF in binary.h/binary.c
* C client generator: better support for base64encode / base64decode
* Add openapi.yaml file to Java clients (#5765)
* Add openapi.yaml file to Java client
* Move supporting template file to Java root
* Update petstore clients
* [codegen] Fix 'super.HashCode' for oneOf and allOf Implementations (retry) (#5830)
* Added hasVars after completion of all model post-processing (#5587)
* Post ensure-up-to-date
* Update to check the size of vars and not assume non-null
* update mysql samples
* Add default case to handle response code (#5825)
* add default case to handle response code
* fix default response code
* add test for isDefault
* fix user id in scala tc
* Fix for Issue #4840 [BUG][JAVA][spring-mvc] Generated Code for Map of Maps Return Type does not compile (#5240)
* add parent for allOf only (#5851)
* Add pythonSrcRoot option to python servers (aiohttp/flask/blueplanet) to support src/ layout projects [and reenable/fix all python server tests] (#5423)
* python server: Add pythonSrcRoot option
This will allow the python project to be in a subdirectory (as specified
in pythonSrcRoot). That could mean following the src layout with sources
under src/ or lib/. Multi-language projects might use a sub directory
like python/, or whatever makes sense for the project.
By default, the pythonSrcRoot is "", meaning the existing behavior is
the default.
* python server: update template files to support pythonSrcRoot
* python server: update docs to add pythonSrcRoot option
* python server: add pythonSrcRoot sample script
* python server: build sample srclayout project
* [Python] copy test files preserving history
* [Python] Make a conflict to preserve file copy history
* [Python] customize pom.xml for src layout tests
* [Python] add python-aiohttp-srclayout tests
* [Python] Fix server tests by updating requirements
Reverts the PR that disabled python2 server tests:
https://github.com/OpenAPITools/openapi-generator/pull/4949
Reverts commits that disabled python3 server tests:
9adfedbfbb17ee990baa
Issue about the python 3 tests:
https://github.com/OpenAPITools/openapi-generator/issues/5235
I couldn't find an issue about the python2 tests being disabled.
I'm guessing build errors like the following were the trigger:
https://travis-ci.org/github/OpenAPITools/openapi-generator/builds/634238181
Let's see what breaks!
* [Python] Copy setup.py to python-aiohttp
* [Python] Save history while copying setup.py to python-aiohttp
* [Python] Add aiohttp server setup.py
* [Python] Fix python server tests with src layout
* [Python] bump Flask-Testing version
* [Python] Pin pyyaml for py2.7 flask server
* [Python] simplify flask server requirements
* consolidate server tests
* [Python] rebuild python server samples
* [Python] Fix python server requirements for older pythons
Documented minimum python version for our aiohttp server is 3.5.
Documented minimum python version for our flask server is 3.4.
Connexion 2.3 is the last version to support python 3.4 and 3.5, so fix
the version pinning to correctly select <=2.3 for these EOL python
versions. Newer pythons should get the latest if possible as there many
relevant bug fixes.
Werkzeug also needs to be pinned for these old versions in the aiohttp
server just like for the flask server.
3.4 and 3.5 are EOL. We really should increase the minimum supported
version, but that is for another PR to do.
* stop error globally (#5858)
* [PS][Experimental] Add validations to model (#5842)
* add validations to model
* better error message
* improve validation
* Updates to allow the setting of the dateTime format string (#5763)
* [PS] Select Content-Type in the response (#5872)
* better return type handling
* update tempalte
* better documentation
* fix greater than
* various enhancement to ps exp generator (#5875)
* [C#] dependency upgrade (#5870)
* Updating packages version (#5313)
* Add support to RestSharp version 106.10.1
Restsharp 106.10.1 needs the Content Lenght as a parameter to AddFile method
* Updating RestSharp Version
Updating RestSharp Version
* Update netcore_project.mustache
* Update netcore_testproject.mustache
* Update Project.mustache
* Updating packages version
Updating packages version
* Updating packages version
Updating packages version
* Updating packages version
Updating packages version
* Updating packages version
Updating packages version
* Updating packages version
Updating packages version
* Updating packages version
Updating packages version
* Execute task async obsolete
Use ExecuteAsync instead
* update csharp samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [csharp] Library upgrade fix (#5848)
* On .net45 framework, Restsharp version is updated to 106.10.1 Otherwise, it stays on version 105.1.0
* Added additionalProperties for library versions and target frameworks
* Removed unused properties
* Added an additional property to test for a specific version of RestSharp
* Updated csharp samples
* Fixed nuspec.mustache to use library specific additional properties
* Updated csharp samples
* Updating CI/samples.ci csharp petstore test project file.
* Updated csharp.md
Co-authored-by: Olivier Leonard <oleonard@ankama.com>
* [csharp-client] Restored tests on csharp samples (#5879)
* Restored tests on csharp samples
* Restored a reference to the file used to test file uploads
Co-authored-by: Olivier Leonard <oleonard@ankama.com>
* update samples
Co-authored-by: Igor Quirino <iquirino91@gmail.com>
Co-authored-by: Bouillie <34162532+Bouillie@users.noreply.github.com>
Co-authored-by: Olivier Leonard <oleonard@ankama.com>
* [Csharp-client] Complex form parameters are not serialized as application/json (#5849)
* [csharp-client] Complex form parameters are now correctly serialized as json.
* Updated csharp samples
Co-authored-by: Olivier Leonard <oleonard@ankama.com>
* docs: removes Nico from technical committee (#5883)
* [PS] better handle special variables (#5885)
* add variable
* fix reserved words
* update ps doc
* [PS] add file post-processing to the PowerShell generator (#5864)
* add post process to ps generator
* add import
* fix merge issue
* consolidate header selection functions (#5889)
* [Java-client] Add maven-compiler-plugin in pom.xml and enable linter checks by default (#5866)
* Add maven-compiler-plugin plugin in Java pom.xml and enable linter checks by default
* Add maven-compiler-plugin plugin in Java pom.xml and enable linter checks by default
* Update enum.mustache (#5793)
https://github.com/OpenAPITools/openapi-generator/issues/5792
* Update modelGeneric.mustache (#5378)
* Update modelGeneric.mustache
If maxlength is specified for a property type enum it there should be .ToString() appended before length check
* ran the csharp petstore bar and updated the file
Co-authored-by: Shweta Shukla <shshukl@microsoft.com>
* Fix Scala sttp generator packages (#5890)
* Fix Scala sttp generator packages
* Change package to parameterised
* [Dart] Fix "basic" auth method and Add Bearer token support (#5743)
* added auth check and lint
* fixed basic auth condition
* Added bearer auth
* updated samples
* update dart petstore samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Add date time format annotation on pojo for model query parameters (#5437)
* Add date time format annotation on pojo for model query parameters
* Regenetare samples
* update spring samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [mysql] Add basic SQL queries (#5757)
* Add basic SQL queries template
* Add namedParametersEnabled option
* Move model related SQLs into Model folder
* Update README template
* Refresh samples
* [enhancement] [jaxrs-spec] Add builders to models (#4930)
* Update formatting in jaxrs-spec POJOs
* Add generateBuilders option
* Update formatting in jaxrs-spec POJOs
* Disable the builders generation by default
* Ensure samples are up-to-date
* Revert newline change
* Run ensure-up-to-date
* update doc
* fix merge conflicts
Co-authored-by: Artem Shubovych <ashubovych@atlassian.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Update generated build files for REST Assured (#5873)
* REST Assured 4.3.0
* Jackson 2.10.3
* Gson 2.8.6, GSON-Fire 1.8.4
* Okio 1.17.5
* Joda-Time 2.10.5
* ThreeTenBP 1.4.3
* Added missing dependencies for Bean Validation
* Added missing dependencies for `@Generated` annotation
* Refresh REST Assured sample project
* [Java][Feign] Bug fix in @Param annotation (#5250)
* FIX-5249 fix @Param annotation for Feign-client code generation
Use paramName instead of baseName in order to make mapping in @Headers
section fit the param-value.
* update samples
* FIX-5249 fix @Param annotation for Feign-client code generation
Use paramName instead of baseName in order to make mapping in @Headers
section fit the param-value.
Co-authored-by: Christoph Preißner <christoph.preissner@blu-pa.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [Java] Increase java compiler stack size to handle large files (#5901)
* increase java compiler stack size to handle large files
* increase java compiler stack size to handle large files
* Added emineo to list of companies on website (#5905)
* add emineo to the list
* [swift5] fix warning (#5900)
* update bitwise config (#5904)
* [Java] Discriminator lookup should not be case insensitive by default (#5894)
* Add 'discriminatorCaseSensitive' property
* Discriminator value lookup should not be case insensitive
* fix typo
* run scripts
* execute ./bin/utils/export_docs_generators.sh
* fix discriminator mapping, add code comments
* minor fix to users.yml
* Add a link to optim blog post (#5922)
* [Java] Fix inclusive max validation (#5908)
Co-authored-by: erikmolin <erik@zaver.se>
* add bearer auth support to csharp netcore (#5921)
* [Python][aiohttp] create venv as rule (#5913)
* create venv as rule
* create venv as rule II
* Fix for Result Model Name collision (#5923)
* Fix for Result Model Name collision
* Run Scripts
Co-authored-by: Sebastian Ohm <sebastian.ohm@ubimax.com>
* [Dart] Remove content type from header when content type is not specified (#5752)
* accept empty content type
* fixed test
* updated samples
* additional comment out
* update dependency for java client (#5926)
* Update axios dependency to the new minor version 0.19.0 (#5867)
* Update axios dependency to 0.19.0
Axios (version 0.18.0) used by typescript-axios generator is more than two years old (released in Feb 2018). Axios 0.19.2 released earlier this year contains a lot of fixes and functionality, I recommend updating to 0.19.2.
* Ran ./bin/typescript-axios-petstore-all.sh to update package.json in ./samples
Co-authored-by: Chandra Yalangi <chandra.yalangi@appklenz.com>
* fixed README/doc of bearer auth support for csharp-netcore (#5931)
* fix duplicated semi-colon in c# model (#5934)
* [Python-experimental] Use DER encoding for ECDSA signatures, add parameter to configure hash algorithm (#5924)
* Use DER encoding for ECDSA signatures
* Use DER encoding for ECDSA signatures
* Use DER encoding for ECDSA signatures
* Use DER encoding for ECDSA signatures
* fix python unit tests for http message signature
* Fix error message
* format python code
* format python code
* [Python-experimental] Fix TypeError: unhashable type: 'list' (#5810)
* handle scenario when value is a list, fix TypeError: unhashable type: 'list'
* Add __hash__ function
* use list instead of set
* use list instead of set
* use list instead of set
* use list instead of set
* use list instead of set
* use list instead of set
* [python/asyncio] fix passing proxy parameters to aiohttp (#5943)
* [C][Client]Fix data lost when libcurl write-data callback function is called multiple times (#5828)
* [C][Client]Fix the defect of data lost when libcurl write-data callback function (configured by CURLOPT_WRITEFUNCTION) is called multiple times.
* [C][Client]Fix data lost when libcurl write-data callback function is called multiple times (Reset count)
* [typescript-axios][client] Allow apiKey type Promise. (#5953)
* change apiKey type
* recreate sample
* Add YITU Technology to the user list (#5967)
* add yitu to the user list
* use yitu technology
* Use model as body param for generateAliasAsModel (#4569)
* generateAliasAsModel: Use model name as body param
* Update samples
* resolve merge conflicts in the core generator files
* fix merge conflicts in pom.xml
* Resolve Elm merge conflicts
* [Rust Server] Fix up merge conflicts
* Update samples
* [Rust Server] Add debug log for rust-server-petstore.sh
* update samples
* update more samples
* fix dart openapi-generator version
* remove deprecated c# files
* update meta codegen
* fix port in pom.xml
* fix port in sample
* update jaxrs cxf version
Co-authored-by: sunn <33183834+etherealjoy@users.noreply.github.com>
Co-authored-by: dwlabcube <46682038+dwlabcube@users.noreply.github.com>
Co-authored-by: Herve DARRITCHON <herve.darritchon@orange.com>
Co-authored-by: Akihito Nakano <sora.akatsuki@gmail.com>
Co-authored-by: Johnny Peck <johnnypeck@users.noreply.github.com>
Co-authored-by: Michele Albano <michele.albano@gmail.com>
Co-authored-by: Jim Schubert <james.schubert@gmail.com>
Co-authored-by: Nikita <nickita.davidenko@gmail.com>
Co-authored-by: Alexey Makhrov <amakhrov@gmail.com>
Co-authored-by: val <onzeonline@gmail.com>
Co-authored-by: Bruno Coelho <4brunu@users.noreply.github.com>
Co-authored-by: Aleksandr Nekrasov <snake_nas@mail.ru>
Co-authored-by: Akira Tanimura <autopp.inc@gmail.com>
Co-authored-by: Justin <JustinBusschau@users.noreply.github.com>
Co-authored-by: Justin Black <spacether@users.noreply.github.com>
Co-authored-by: Jiri Kuncar <jiri.kuncar@gmail.com>
Co-authored-by: Hui Yu <ityuhui@gmail.com>
Co-authored-by: Yutaka Miyamae <48900426+yutaka0m@users.noreply.github.com>
Co-authored-by: Mateusz Szychowski (Muttley) <muttleyxd@users.noreply.github.com>
Co-authored-by: Jorge Rodriguez <jorgerod84@gmail.com>
Co-authored-by: Gonzalo <gonzalo.nom.es@gmail.com>
Co-authored-by: ChristianCiach <christian.ciach@gmail.com>
Co-authored-by: Bodo Graumann <mail@bodograumann.de>
Co-authored-by: Yuriy Belenko <yura-bely@mail.ru>
Co-authored-by: Daniel Klessing <sakanaou@users.noreply.github.com>
Co-authored-by: copypasta-g <53397163+copypasta-g@users.noreply.github.com>
Co-authored-by: Mahdi Dibaiee <mdibaiee@pm.me>
Co-authored-by: Sebastien Rosset <serosset@cisco.com>
Co-authored-by: siada <siada@users.noreply.github.com>
Co-authored-by: Samuel Hoffstaetter <samuel@hoffstaetter.com>
Co-authored-by: Esteban Gehring <esteban.gehring@bithost.ch>
Co-authored-by: Jon Schoning <jonschoning@gmail.com>
Co-authored-by: Marcin Kubala <marcin@mkubala.pl>
Co-authored-by: anoohya-n <51289018+anoohya-n@users.noreply.github.com>
Co-authored-by: Antoine Reilles <areilles@gmail.com>
Co-authored-by: Clemens Angermann <clemens.tirsch@web.de>
Co-authored-by: Mostafa Moradian <mostafa@loadimpact.com>
Co-authored-by: Adam <adkapx@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: sullis <github@seansullivan.com>
Co-authored-by: Vikrant Balyan <vvb@users.noreply.github.com>
Co-authored-by: Matt Traynham <matt.traynham@pureport.com>
Co-authored-by: LEZIER-S2 <60382243+LEZIER-S2@users.noreply.github.com>
Co-authored-by: Thomas Enderle <dommaes@users.noreply.github.com>
Co-authored-by: YishTish <yishail@gmail.com>
Co-authored-by: Slavek Kabrda <slavek.kabrda@datadoghq.com>
Co-authored-by: Tomasz Prus <tomasz.prus@gmail.com>
Co-authored-by: Erica Kastner <dkastner@gmail.com>
Co-authored-by: Richard Whitehouse <richard.whitehouse@metaswitch.com>
Co-authored-by: valentin Bisson <valentin@inrosoftware.com>
Co-authored-by: etherealjoy <sunn.ssb@live.com>
Co-authored-by: Hemant Zope <42613258+zhemant@users.noreply.github.com>
Co-authored-by: Even André Fiskvik <even@myworkout.no>
Co-authored-by: ehansen31 <e.hansen31@live.com>
Co-authored-by: Timur Platonov <tpltn@users.noreply.github.com>
Co-authored-by: Josh Burton <josh@arklabs.nz>
Co-authored-by: Ilja leyberman <7ilya@gmx.de>
Co-authored-by: Bouillie <34162532+Bouillie@users.noreply.github.com>
Co-authored-by: Olivier Leonard <oleonard@ankama.com>
Co-authored-by: tanmen <yt.prog@gmail.com>
Co-authored-by: Alex Buchkovsky <alex.buchkovsky@gmail.com>
Co-authored-by: Natan Laverde <natanlaverde@gmail.com>
Co-authored-by: Nicholas Muesch <nicholas.muesch@datadoghq.com>
Co-authored-by: jburgess <11861789+jburgess@users.noreply.github.com>
Co-authored-by: emileonhardt <40421857+emileonhardt@users.noreply.github.com>
Co-authored-by: Jacob Floyd <cognifloyd@gmail.com>
Co-authored-by: Igor Quirino <iquirino91@gmail.com>
Co-authored-by: Nico König <npunktkoenig@gmail.com>
Co-authored-by: https://gitlab.com/selankon <selankon@selankon.xyz>
Co-authored-by: Shweta Shukla <25539662+shwetashukla@users.noreply.github.com>
Co-authored-by: Shweta Shukla <shshukl@microsoft.com>
Co-authored-by: Bartek Kowalik <bkowalik@users.noreply.github.com>
Co-authored-by: Shinya Sugmoto <34866626+gasugesu@users.noreply.github.com>
Co-authored-by: Artem Shubovych <shybovycha@gmail.com>
Co-authored-by: Artem Shubovych <ashubovych@atlassian.com>
Co-authored-by: Jochen Schalanda <jochen@schalanda.name>
Co-authored-by: Chr1st0ph <cpreissner@gmx.de>
Co-authored-by: Christoph Preißner <christoph.preissner@blu-pa.com>
Co-authored-by: Erikmolin <erik.johan.molin@gmail.com>
Co-authored-by: erikmolin <erik@zaver.se>
Co-authored-by: Nicolas Homble <nhomble@terpmail.umd.edu>
Co-authored-by: Sebastian <63457660+sebohdev@users.noreply.github.com>
Co-authored-by: Sebastian Ohm <sebastian.ohm@ubimax.com>
Co-authored-by: chandra-gh <63366477+chandra-gh@users.noreply.github.com>
Co-authored-by: Chandra Yalangi <chandra.yalangi@appklenz.com>
Co-authored-by: Fabian Freund <mail@fabi.online>
Co-authored-by: Erik Timmers <e.timmers@gmail.com>
* Fix Gradle and SBT builds for Java REST Assured generator
* Add missing jackson-databind-nullable dependency to SBT build
* Update rest-assured sample
* Add sample for Java client with REST Assured and Jackson
* Add new REST Assured sample as Maven sub-module
* Removing build path from gitignore as this causes npm publishing issues
* updating petstore example
* Adding npmignore to typescript-axios generator
* Updating petstore example
* 1441 fix visibility of body/response schemas
* Handle schemas with array items
* Point to template directory in bin script
* Regenerate sample
Co-authored-by: Jim Schubert <james.schubert@gmail.com>
* [scala-akka-http-server] When expecting an empty response, a response with an empty text/plain content is not produced anymore
* Updated scala-akka-http-server samples
Co-authored-by: Olivier Leonard <oleonard@ankama.com>
* [C][Client]Fix the defect of data lost when libcurl write-data callback function (configured by CURLOPT_WRITEFUNCTION) is called multiple times.
* [C][Client]Fix data lost when libcurl write-data callback function is called multiple times (Reset count)
* handle scenario when value is a list, fix TypeError: unhashable type: 'list'
* Add __hash__ function
* use list instead of set
* use list instead of set
* use list instead of set
* use list instead of set
* use list instead of set
* use list instead of set
* Use DER encoding for ECDSA signatures
* Use DER encoding for ECDSA signatures
* Use DER encoding for ECDSA signatures
* Use DER encoding for ECDSA signatures
* fix python unit tests for http message signature
* Fix error message
* format python code
* format python code
* [Rust Server] Fix Rust 1.39+ "Box<Future" and "as &Has" compile issue
* [Rust Server] Fix Rust server side pathRegEx and baseName not match issue
* [Rust Server] Add test case yaml with path parameter.
* Update axios dependency to 0.19.0
Axios (version 0.18.0) used by typescript-axios generator is more than two years old (released in Feb 2018). Axios 0.19.2 released earlier this year contains a lot of fixes and functionality, I recommend updating to 0.19.2.
* Ran ./bin/typescript-axios-petstore-all.sh to update package.json in ./samples
Co-authored-by: Chandra Yalangi <chandra.yalangi@appklenz.com>
* Add 'discriminatorCaseSensitive' property
* Discriminator value lookup should not be case insensitive
* fix typo
* run scripts
* execute ./bin/utils/export_docs_generators.sh
* fix discriminator mapping, add code comments
* FIX-5249 fix @Param annotation for Feign-client code generation
Use paramName instead of baseName in order to make mapping in @Headers
section fit the param-value.
* update samples
* FIX-5249 fix @Param annotation for Feign-client code generation
Use paramName instead of baseName in order to make mapping in @Headers
section fit the param-value.
Co-authored-by: Christoph Preißner <christoph.preissner@blu-pa.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [Rust Server] Support complex query parameters
* [Rust Server] Remove unused extern crate
* [Rust Server] tokio should be a dev-dependency
* [Rust Server] Add test for complex query params
* Update samples
Co-authored-by: Matt Williams
* Add date time format annotation on pojo for model query parameters
* Regenetare samples
* update spring samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Update modelGeneric.mustache
If maxlength is specified for a property type enum it there should be .ToString() appended before length check
* ran the csharp petstore bar and updated the file
Co-authored-by: Shweta Shukla <shshukl@microsoft.com>
* Add maven-compiler-plugin plugin in Java pom.xml and enable linter checks by default
* Add maven-compiler-plugin plugin in Java pom.xml and enable linter checks by default
* [csharp-client] Complex form parameters are now correctly serialized as json.
* Updated csharp samples
Co-authored-by: Olivier Leonard <oleonard@ankama.com>
* Updating packages version (#5313)
* Add support to RestSharp version 106.10.1
Restsharp 106.10.1 needs the Content Lenght as a parameter to AddFile method
* Updating RestSharp Version
Updating RestSharp Version
* Update netcore_project.mustache
* Update netcore_testproject.mustache
* Update Project.mustache
* Updating packages version
Updating packages version
* Updating packages version
Updating packages version
* Updating packages version
Updating packages version
* Updating packages version
Updating packages version
* Updating packages version
Updating packages version
* Updating packages version
Updating packages version
* Execute task async obsolete
Use ExecuteAsync instead
* update csharp samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [csharp] Library upgrade fix (#5848)
* On .net45 framework, Restsharp version is updated to 106.10.1 Otherwise, it stays on version 105.1.0
* Added additionalProperties for library versions and target frameworks
* Removed unused properties
* Added an additional property to test for a specific version of RestSharp
* Updated csharp samples
* Fixed nuspec.mustache to use library specific additional properties
* Updated csharp samples
* Updating CI/samples.ci csharp petstore test project file.
* Updated csharp.md
Co-authored-by: Olivier Leonard <oleonard@ankama.com>
* [csharp-client] Restored tests on csharp samples (#5879)
* Restored tests on csharp samples
* Restored a reference to the file used to test file uploads
Co-authored-by: Olivier Leonard <oleonard@ankama.com>
* update samples
Co-authored-by: Igor Quirino <iquirino91@gmail.com>
Co-authored-by: Bouillie <34162532+Bouillie@users.noreply.github.com>
Co-authored-by: Olivier Leonard <oleonard@ankama.com>
* python server: Add pythonSrcRoot option
This will allow the python project to be in a subdirectory (as specified
in pythonSrcRoot). That could mean following the src layout with sources
under src/ or lib/. Multi-language projects might use a sub directory
like python/, or whatever makes sense for the project.
By default, the pythonSrcRoot is "", meaning the existing behavior is
the default.
* python server: update template files to support pythonSrcRoot
* python server: update docs to add pythonSrcRoot option
* python server: add pythonSrcRoot sample script
* python server: build sample srclayout project
* [Python] copy test files preserving history
* [Python] Make a conflict to preserve file copy history
* [Python] customize pom.xml for src layout tests
* [Python] add python-aiohttp-srclayout tests
* [Python] Fix server tests by updating requirements
Reverts the PR that disabled python2 server tests:
https://github.com/OpenAPITools/openapi-generator/pull/4949
Reverts commits that disabled python3 server tests:
9adfedbfbb17ee990baa
Issue about the python 3 tests:
https://github.com/OpenAPITools/openapi-generator/issues/5235
I couldn't find an issue about the python2 tests being disabled.
I'm guessing build errors like the following were the trigger:
https://travis-ci.org/github/OpenAPITools/openapi-generator/builds/634238181
Let's see what breaks!
* [Python] Copy setup.py to python-aiohttp
* [Python] Save history while copying setup.py to python-aiohttp
* [Python] Add aiohttp server setup.py
* [Python] Fix python server tests with src layout
* [Python] bump Flask-Testing version
* [Python] Pin pyyaml for py2.7 flask server
* [Python] simplify flask server requirements
* consolidate server tests
* [Python] rebuild python server samples
* [Python] Fix python server requirements for older pythons
Documented minimum python version for our aiohttp server is 3.5.
Documented minimum python version for our flask server is 3.4.
Connexion 2.3 is the last version to support python 3.4 and 3.5, so fix
the version pinning to correctly select <=2.3 for these EOL python
versions. Newer pythons should get the latest if possible as there many
relevant bug fixes.
Werkzeug also needs to be pinned for these old versions in the aiohttp
server just like for the flask server.
3.4 and 3.5 are EOL. We really should increase the minimum supported
version, but that is for another PR to do.
* Added hasVars after completion of all model post-processing (#5587)
* Post ensure-up-to-date
* Update to check the size of vars and not assume non-null
* C client generator improvement to support:
openapi-generator/modules/openapi-generator/src/test/resources/3_0/petstore.yaml
* Improvements to the C client generator:
- moved base64* from apiClient.c to binary.h/binary.c
- changed CR/LF to LF in binary.h/binary.c
* C client generator: better support for base64encode / base64decode
When contentCompression is not enabled, the variables isRequestCompressionEnabled and isResponseCompressionEnabled in HttpRequestWorker are not being initialized.
Without initialization the compress function could be called and the request content could be an empty QByteArray instead of original request body.
* Remove test file erroneously checked in
* [Rust Server] Fix no features build
- Need serde_json for no-features build for undefined value structures
- Don't include `IntoHeader` type and implementations if we aren't including the client/server features
- Don't export the `IntoHeader` type at all - it's internal
* Update samples
* First try to generate unit tests for the models of the C-libcurl client. Models into models are not supported yet.
* Added unit tests for the modules of the C-libcurl client to the git repository.
* Support for objects having other objects as properties, for the C-libcurl client generator
* Proper formatting of generated code
* fix default value generation for kotlin
* add updated pet templates
* Revert "add updated pet templates"
This reverts commit 7e8168ad
* regen pet store projects code
* Scala akka-http server base implementation
* [scala-akka-http-server] petStore samples
* Improved the formatting of generated files
* Updated scala-akka-http server samples
* [scala-akka-http-server] the groupId, artifactId and artifactVersion default value are used as intended.
* Fixed the default operation not being correctly generated on parameterless operations
* Added build.sbt.mustache supporting file
* Updated scala-akka-http server samples
* ScalaAkkaHttpServer: Fixed a String.format call to use Locale.ROOT for locale
* [scala-akka-http-server] Fixed defaultValue being escaped during generation
* Added scala-akka-http.md
* Replaced all "⇒" character with "=>" to retain compatibility with scala 2.13
* [scala-akka-http] Added a config option akkaHttpVersion
It's set in the generated build.sbt.
* Updated scala-akka-http server samples
* [scala-akka-http] More accurate akkaHttpVersion parsing
* Updated scala-akka-http.md
* [scala-akka-http] Changed the akka-http version check to fix the generation of StringDirectives
* Updated scala-akka-http samples
* updated scala-akka-http.md
Co-authored-by: Olivier Leonard <oleonard@ankama.com>
* Warn once instead of many times when the log statement does not have contextual information
* Warn once instead of many times when the log statement does not have contextual information
-D option has been deprecated as it was previously used to:
* Pass "system properties"
* Pass additional properties
This was confusing because we already have --additional-properties and
because Java System Properties are passed as -D before program
arguments.
Confusion around the -D option had existed for some time, but when we
introduced the thread-safe GlobalSettings to avoid overwriting Java
System Properties, we created a hard break from Java System Properties
in the generator. This also disconnected the previous "system
properties" from accepting additional properties.
Once these newly deprecated methods are removed, we will have a clear
separation of concerns between:
* Java System Properties
* Global generator properties (used as workflow context)
* Additional properties (used as generator options)
This commit marks multiple places for cleanup in 5.0. These will be
breaking changes, and lower effort to break in 5.0 with deprecation
warnings now rather than adding sibling properties throughout the code
and potentially introducing logic errors.
* [cli] Some CLI improvements…
* Introduce --version
* Introduce --help
* Add --sha to version command for short SHA display
* Output Version and SHA details
* In new --version output, display repo and doc site
Additional cleanup to suppress warnings and code quality.
* [docker] Adds labels for metadata
This adds image labels to store metadata on the online and cli docker
images, using standard labels:
* org.opencontainers.image.created
* org.opencontainers.image.revision
* org.opencontainers.image.title
* org.opencontainers.image.version
These can be inspected via 'docker inspect IMAGE_NAME' and may be useful
in tooling/automation or bug reports submitted by users.
For more details on these labels, see:
https://github.com/opencontainers/image-spec/blob/master/annotations.md
* Include version --full for equiv to --version
* Map Merge Context & Params
handler requires context and params to be merged before returned to user defined request_handler.
* post build & shell script
* Delete VERSION
* [Rust Server] Don't use structs in models
This avoids namespace clashes between model names and types used.
* [Rust Server] Handle models named after results
* [Rust Server] Add test for result models
* Update samples
* update ci to use petstore 1.0.4
* comment out test
* comment out test
* comment out update user test
* comment out more tests
* use latest petstore
* comment out updatePetWithForm
* comment out update pet test
* fix function names and add parameter to return decoded bytes length from base64decode function
* format base64decode function to avoid unnecessary malloc and fix wrong length assigning
* update the pointer assigning
for some reason var++ / *var++ cannot be done on int *var, hence making a local variable which is incremented and at the end it is assigned to the pointer.
* - fixed cpp-client-qt5 HttpRequestWorker requests crashing on timeout when they have actually NOT timed out (were calling back into a deleted struct).
* #minor fixes after review
* Regenerate changed files
Co-authored-by: valentin Bisson <valentin@inrosoftware.com>
Co-authored-by: etherealjoy <sunn.ssb@live.com>
* [Rust Server] Handle text/xml correctly
Treat application/xml the same as text/xml as per RFC 7303
* [Rust Server] Add test for text/xml
* Update samples
* use more recent version of maven-surefire-plugin
* use more recent version of maven-surefire-plugin
* higher debug level for troubleshooting ci issue
* temporarily increase debug log to help troubleshoot
* Use local instance of pet store service for unit test purpose
* Add more logging to troubleshoot unit test failures
* Add more logging to troubleshoot unit test failures
* Add more logging to troubleshoot unit test failures
* Add more logging to troubleshoot unit test failures
* Add more logging to troubleshoot unit test failures
* use random ID for Java unit test instead of fixed id
* add code comments and specify URL for java unit test
* reenable quiet argument
* fix java unit test issues
* fix java unit test issues
* Revert "fix java unit test issues"
This reverts commit e8508416ff.
* fix java unit test issues
* Fix code generation for free-form objects in go-experimental
* Execute scripts in bin directory
* Add more use cases for open-ended types
* Add more use cases for open-ended types
* Add more use cases for open-ended types
* add code comments
* Better name for test properties
* handle scenario when type is arbitrary
* handle interface{} scenario
* handle interface{} scenario
* add helper function isAnyType
* isAnyType function
* implementation of isAnyType function
* fix javadoc issue
* handle interface{} scenario
* use equals comparison instead of ==
* merge from master
* Add code documentation
* add code comments, remove unused min/max attribute, fix equals method
* Handle 'anytype' use case
* add code comments
* override postProcessModelProperty to set vendor extension
* Use vendorExtensions.x-golang-is-container
* fix compilation error of generated code
* fix compilation error of generated code
* fix compilation error of generated code
* [kotlin][client] make base path configurable
* [kotlin][client] update pet project
* [kotlin][client] set default base path
* [kotlin][client] set default base path
* [kotlin][client] set default base path
* Fix nullable support in go-experimental client
* Fix support for models with parents and container fields
* Make sure that oneOf interfaces serialize properly even if they're required (non-pointers) on other models
* Spaces => tabs
* Regenerate samples
* Make some methods of nullables pointer-receivers, add tests
* Improve the Get/Set logic to make usage more convenient
* Address review
* Updated to new nodejs packages, depending heavily on express-openapi-validator. Requires quite a change in code.
Updated the business-logic in the controllers/Controller.js file.
Logger now records also timestamp of events.
Files are uploaded according to definition in config.js file
* Removed commented-out code; Changed openApi document extensions to suit new express-openapi-validator definition; multipart and file uploading is supported now; Automatic response returns the values the were sent in the request
* fixed README documentation, fixed a mistage in package.json/mustache
* added generated files that were created when running the ./bin/test file
* remove scala version in parent pom
* test ps petstore in appveyor
* fix command
* build and import
* fix import module
* fix import
* skip module import
* run multiple commands
* move to test script
* test ps exit
* fix exit
* check last status code
* clean tests
* exit last code
* add import
* change dir
* skip build failure
* fix check
* trigger build failure
* fail fast
* restore c# test
* new line comment
* add powershell exp to ensure up to date script
* Run rustfmt over rust-server output
Automatically run rustfmt over rust-server output if --enable-post-process-file is set
* Update samples
* Add note about configuring post processing
* Removed stray "printf"s in
modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CLibcurlClientCodegen.java
* Support for booleans in C client
* Update README.md
* Change to C API mustache files to solve issue #5623
* Debugging of C's modle-body.mustache, as suggested by ityuhui
* Final changes suggested by ityuhui
* fix php tests
* fix scala tests
* update ts angular v6 rest
* fix user create test
* fix spring cloud test
* comment out user delete
* fix angular v7 tests
* fix user test
* fix tests
* fix go exp tests
* commented out delete user tests
* comment out delete user tests in go openapi 3
* fix clojure tests
* Remove kotlin-reflect dependency when using CodeGen
* Update Kotlin tests
* Regenerated unit test samples
* Remove newline in generated build.gradle files
* [scala][akka-http-client] java8 dates support
* scala-akka readme doc updated
* DateSerializers renamed
* rename serializers
* move date-library option to abstractScala
* generators docs updated
* enum defined for date libraries
* Backport to scala-http-client
* fix scala-akka-client date serializers
* fix typo in docs
* switch scala templates to java8 (jsr-310) date library by default
* update scala samples with java8 date library
* update scala generators docs with java8 default date library
* fix scala-play-server generator cli options as only java8 dateLibrary supported
* fix scalaz DateTimeCodecs template to support java8
* scalaz ci test againt java7 removed as it generate scala 2.11.8 client which is java8 based
* add unit test assertion
* add check for composed schema
* add support for x-allOf-name
* change x-allOf-name to x-all-of-name
* Add more troubleshooting information
* Add more troubleshooting information
* Add more troubleshooting information
* Add more troubleshooting information
Update the required CXF version to 3.1.2 since PATCH support appeared
with this version.
Add the cxf PATCH annotation to the imports so that the generated code
when defining a PATCH api compiles.
* PR to solve 2 open issues on enums:
Issue 5091 needs to generate enums also when the enum is directly in a param to a API call, instead than in a model. I did that by copying and adapting enum code from *model* to *api*
Issue 4293 needs to decorate enums, for when enum names or enum values are repeated over the yaml definition.
* PR to solve 2 open issues on enums:
Issue 5091 needs to generate enums also when the enum is directly in a param to a API call, instead than in a model. I did that by copying and adapting enum code from *model* to *api*
Issue 4293 needs to decorate enums, for when enum names or enum values are repeated over the yaml definition.
* Enums decorated: with {{projectName}}_{{classVarName}}_{{enumName}}_ in the models, with {{projectName}}_{{classVarName}}_{{enumName}}_ in the operations.
* Changes to the c client:
- Removed white space.
- Removed ToJSON and FromJSON function for the enums, since they are not used
- Sanitized project name in the .java file. For example, this solves a problem with the issue #2338, where the yaml file had title: "Skycoin REST API."
* Changes to the c client:
- Removed white space.
- Removed ToJSON and FromJSON function for the enums, since they are not used
- Sanitized project name in the .java file. For example, this solves a problem with the issue #2338, where the yaml file had title: "Skycoin REST API."
* Do not generate HTTP signature unit test for every generated SDK
* Add golang 1.14 to CI environment
* fix unit test issues
* remove script commands that were commented out
* add support for ed25519 private keys
* [markdown] Fix broken links when generating markdown
The `api.mustache` file generates links to the markdown model files.
These links were previously brokeen.
Additionally, the defaultPackage for markdown is "/Models", so this
looked pretty in the heading for model files. So this prefix has been
stripped from the header in `model.mustache`.
* Re-generate Petstore samples for markdown
* [Rust Server] Make parse error displayable
Change error type to be displayable to prevent compile errors
* [Rust Server] Add test for enum in path
* Update samples
The helper methods for sanitize/underscore/camelize were recently
updated to cache values in static maps. This would lead to a memory leak
in hosted environments as the maps had no cleanup/expiry.
This moves those cached entries to Caffeine caches with expiry based on
last access to allow the edge-case performance improvement gains on very
large documents, without the memory leak in hosted or embedded
environments.
* Add failing tests for typescript type declaration
* Refactor array and map child type string fallback
* Add unaliasSchema to typescript getTypeDeclaration
* TypeScriptRxjs: Use Blob as file type declaration
This was inadvertantly changed in
https://github.com/OpenAPITools/openapi-generator/pull/5266
* [C++][Pistache] Use reserved words to replace incorrect names
discard old decision to truncate reservedWords
* [C++][Pistache] Update struct model to use name instead of baseName
* [C++][Pistache] Update Petstore sample
* [C++] Add option to have lowercase variables
* [C++] Update generated docs
Don't change the API version which is exposed in `crate::API_VERSION`.
- If the API version isn't set, we don't expose it.
- If it is set, we leave it well alone.
- Always pass a package version:
- Pass in the passed package version by preference
- Pass in the API version if it's not.
- If the API version isn't set, we use 1.0.0
- If it is set, and isn't a valid semver, we append .0 such that we have
something with three digits (so that an API version of 1 works).
* If not required, need `? = null`
* run ./bin/kotlin-server-petstore.sh
* Added `?` when value is `required` and `isNullable`
* Rerun ./bin/kotlin-server-petstore.sh. But No differences
* [cli] Validate now uses parseOptions w/setResolve
The validate command now uses ParseOptions#setResolve(true) to match how
we parse in CodegenConfigurator and online's Generate. Without this
option, the OpenAPI 3 parser skips the "resolve" block, which made lead
to validations in the command not matching validations during
generation.
* [gradle] Validate now uses parseOptions w/setResolve
The Graldle validate command now uses ParseOptions#setResolve(true) to match how
we parse in CodegenConfigurator and online's Generate. Without this
option, the OpenAPI 3 parser skips the "resolve" block, which made lead
to validations in the command not matching validations during
generation.
* [go-experimental] Support aliasing of API keys
* Use {{.}} inside condition
* Use name instead of keyParamName for lookup
* x-lookup to x-auth-id-alias
* [Rust Server] Suffix reserved words with _
Suffix reserved words with an underscore instead of prefixing them.
This follows convention in the Rust community, as prefixing with an underscore
indicates an unused variable in Rust.
* Update samples
* [Rust Server] Support RFC 7386
Support application/merge-patch+json as defined by RFC 7386 -
https://tools.ietf.org/html/rfc7386
Handle exactly the same as application/json.
* [Rust Server] Add test for RFC 7386
* Update samples
* Adds oneOf + anyOf schemas, models and tests to python-experimental
* Adds setUpClass and tearDownClass
* Removes newline in method_init_shared.mustache
* Regenerated v3 spec sample for python-experimental
* Fxes test for discard_unknown_keys
* Moves new models into existing spec, regen python-exp and go-exp
* Also fix python-exp windows file
* Use the dataType if the baseType is not set
* add tests for passing enum as parameter
* updated requirements file in samples
* Update spec to explicitly name objects and prevent `inline_object`
* use the correct scripts to generate samples (`bin/openapi3/python-flask*`)
* stripped parameter enabled for all scala based generators
* scala samples updated
* docs generators updated
* fix scalatra. regenerated by openapi3 script.
manually removed enum default value from scalatra example due bug in schema extraction
* fix obsolute configuration in generated .rubocop.yml
* fix style of `expect` with block in generated ruby client's test code
* update sample of ruby client
* scala-sttp-client template
* invoker for sttp fixed and tests added
* clean up pet api test from redunant comments
* docs updated
* fix artefact name, model comments and redunant generic
* code optimization
* cross scala versions 2.11 2.12 2.13
* date serializers extracted and joda enabled as default
* basic and bearer authorization added, apikey in query supported
* [swift] make some small improvements
* [swift][client] revert model to use allVars
* PostProcessModelProperty with allVars
* PostProcessModelProperty with vars
* [swift] improve objc interoperability
* [swift] fix swift4 for CI to pass
* [swift] improve objc interoperability
* [swift] improve objc interoperability
* Swift - try to fix build
* [swift] remove pods from git
When I originally implemented the feature set code, I added the
getter/setter on DefaultCodegen and CodegenConfig as well as on
GeneratorMetadata. GeneratorMetadata also includes the library variation
features. When I went to add library-specific features, I realized the
discrepancy.
This removes the public setter from DefaultCodegen/CodegenConfig, and
adds a protected modifyFeatureSet which accepts a lambda and hides the
builder logic away in the method.
This will be a breaking change for anyone who's created a custom
generator in 4.2.3, so the impact is very limited.
* Added support for msvc builds
Moved GCC-specific compile flags to non msvc builds, and added equivalent flags for msvc.
* CMakeLists condition cleanup
* [typescript] Clean up modelPropertyNaming across generators
Fixes https://github.com/OpenAPITools/openapi-generator/issues/2976
Generators without runtime models conversion use "original" property naming by default. It's still possible to change it via cli options
Generators with runtime conversion keep using "camelCase"
* Refactoring: use enum instead of string for modelPropertyNaming
* Restore the original camelCase for var names, decouple it from property names
* Swap toParamName and toVarName logic (looks like I've mistaken them)
* Regenerate docs
* Remove a no longer used private method
* Fix OpenAPITools#5086 handling date examples in openapi 3.0
* Fix OpenAPITools#5086
created test for handling date value
renamed variable p to schema
created field birthday in test yaml
* Fix OpenAPITools#5086
reverted birthday, because breaking tests
* Fix OpenAPITools#5086
create String in ISO format for date default. That can be converted to LocalDate
fixed Test
make the import conditional, and add a few that were missing
without this, setting `featureCORS` or `featureConditionalHeaders` to true produces invalid code
* add discard_unknown_key parameter
* add discard_unknown_key parameter
* add discard_unknown_key parameter
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* discard unknown keys in composed schema if configuration.discard_unknown_keys is set
* run sample scripts for python
* code reformatting
* execute script in bin directory
* improve unit tests for discarding properties
* [PHP] Remove model prefix/suffix from inline enum var names
This resolves issue #4403.
On a model `Foo` with an inline enum `Bar` which has a possible string
value `baz`. we should generate a `FooDTO::BAR_BAZ` constant, not
`FooDTO::BAR_DTO_BAZ`.
* Empty commit for another CI run
* [go-experimental] Add model constructors to initialize non-container vars with defaults
* Add docstring and extend model_doc to include the constructor
* Make variable names in constructor follow Go naming guidelines
* Provide 2 different constructurs as suggested + couple fixes to generate constructors right under all circumstances
* Fix defaults for enums
* Properly escape vars that have reserved names
* python: Respect useNose option in generated CI templates
Travis and Gitlab CI now use nosetests or pytests depending on the "useNose" option that is passed.
* python: Update CI samples
They now respect the "useNose" option
* Resolves `An error has occurred in Javadoc report generation: [ERROR] Exit code: 1 - javadoc: error - The code being documented uses modules but the packages defined in https://docs.oracle.com/javase/8/docs/api/ are in the unnamed module` error that happens when using Java 11
* Resolves `An error has occurred in Javadoc report generation: [ERROR] Exit code: 1 - javadoc: error - The code being documented uses modules but the packages defined in https://docs.oracle.com/javase/8/docs/api/ are in the unnamed module` error that happens when using Java 11
* Fix duplicate configuration entries
* Fix okhttp poms
* Remove letter that shouldn't be there
* Add test case to reproduce the issue
https://github.com/OpenAPITools/openapi-generator/issues/2574
* Fix: an alias of "an alias of simple OAS type" has an incorrect property `isAlias: false`
* Use ModelUtils instead of referring the "type" value directly
* Delete an unnecessary condition
* Tweak: the order of conditions
* Fix wrong "isAlias" value on ComposedSchema
* Added toString to enum_class script
This toString avoids using the enum var name and uses the enum's value instead. This will fix cases when enum var name and value are quite different.
* Updated enum template
Co-Authored-By: Jim Schubert <james.schubert@gmail.com>
Co-authored-by: Jim Schubert <james.schubert@gmail.com>
* :shirt:🎨 Minor refactor DefaultGenerator
This cleans up some lint warnings and improve general code cleanliness
of DefaultGenerator.
Specifically:
* logger strings are now using the built-in log formatter rather than
constructing new strings regardless of log level.
* Diamond operators are used where possible
* Some long-unused commented code has been removed
* Lambdas are used where possible
* Redundant operations are merged (HashMap constructor used rather than
subsequent putAll on a collection, for example)
* [cli][core] Add support for dry-run and display
CLI now supports `--dry-run`, which will output a file change status
similar to git status --porcelain.
The user may also specify `--verbose` for a one-liner below each file
explaining why the change operation might take place.
* [typescript-rxjs] fix coalescing in Configuration
- eliminate nully "" (empty string) value via conditional check
- use concrete "string" type in typeof check
("function" may be returned for Object types
* [typescript-rxjs] update petstore sample
* run petstore-all
- run the script for updating all petstores
./bin/typescript-rxjs-petstore-all.sh
* [maven] improve documentation regarding depedencies issues
* Improve english on the documentation
Co-Authored-By: Jim Schubert <james.schubert@gmail.com>
* Improve the english on the documentation
Co-Authored-By: Jim Schubert <james.schubert@gmail.com>
Co-authored-by: Jim Schubert <james.schubert@gmail.com>
* python: Add gitlab-ci.mustache
It does the same stuff as in the .travis.yml but just for Gitlab CI
#5340 - Python .gitlab-ci.yml
* python: Run all scripts in bin
find bin/ -type f -name 'python*.sh' -exec {} \;
Had to update all samples
* Remove DateTime mapping from concrete TypeScript generators that do not have full support for Date deserialization
* Fix model unit tests
* Regenerate samples
* [doc] Fix level 2 header on cutomization.md
* [doc] Specify https on API/online link
* [docs] Invert github/twitter links in dark mode
* [doc] Pin version for alpha release artifacts
* [kotlin][client] remove null message on server error
* [kotlin][client] avoid breaking change
* [kotlin][client] add response to client and server exceptions
* [kotlin][client] improve message on ClientException and ServerException
* [templates] Update to vendor extension standard keys
* Fix missed value in Java template, also implements=>x-implements. Evaluate Haskell Client changes
* Fix missing accept/content-type update for vendor extension format
* type aliasing issue
* Add example OpenAPI document from issue 3589
https://github.com/OpenAPITools/openapi-generator/issues/3589
* Add test to reproduce the issue
- type of TypeAlias changed from 'string' to 'object'
(not sure if importMapping is supposed also for 'string' types...)
- there might be better ways to write the test, it's kind of a brute
force test (generate a file and parse it with a regexp)
* Remove duplicate test file
* Add new method override handleMethodResponse
Fixes broken unit test after merge from master
Co-authored-by: bkoziak <bkoziak@gmail.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
* 3432 Use builder api of OkHttpClient to avoid UnsupportedOperationEx
The reason for the UnsupportedOperationException was an invalid access to the interceptors list of OkHttpClient. That list is unmodifiable as stated by the JavaDoc. Instead accessing the list directly, the interceptors should always be passed when building the client by the builder api.
* 3432 Use builder api of OkHttpClient to avoid UnsupportedOperationEx
The reason for the UnsupportedOperationException was an invalid access to the interceptors list of OkHttpClient. That list is unmodifiable as stated by the JavaDoc. Instead accessing the list directly, the interceptors should always be passed when building the client by the builder api.
* 3432 Follow-up fix to make samples compile again
* 3432 Updated sample implementation for okHttp-Gson-ParcelableModel
* initial commit for null type
* Add openAPI attribute to validation and recommendation
* improve code comments. the warning used to notify the users to use instead of defining the schema inline, but now the InlineModelResolver has been enhanced
* Add validation rule for the supported values of the 'type' attribute
* [typescript] Don't hardcode the date type if user has mapped it
If the user has set --type-mappings Date=foo, respect this setting
instead of hardcoding the date type.
* Use default type mappings for date/date-time
* Use typeMapping mechanism correctly
* Add default mapping for angular and node to preserve behavior
* One more change to keep current behavior
* Add default type mappings to the other TS generators
* [docs] Upgrade to Docusaurus 2
Due to formatting issues with Docusaurus 1 and code blocks, and upcoming
4.3 and 5.0 releases, this is an upgrade to have more control over
formatting and other functionality.
This adds behavior to have light/dark themes.
As a consequence of upgrading, columnar format on ul element in
generated generator docs had to be moved to css. This will not impact
users viewing the markdown on GitHub because it didn't display the
column format.
This upgrade should improve syntax highlighting and performance.
* Fix user page layout, choose theme with clear diff colors
* [go-experimental] Add oneOf support
* Fix docs for the oneOf models
* isOneOfInterface => x-is-one-of-interface
* Add proper warnings when inline models are used in oneOf choices
* Add a convenience method to oneOf implementing structs to cast them as the oneOf interface
* Update modules/openapi-generator/src/main/resources/go-experimental/model.mustache
Co-Authored-By: Jiri Kuncar <jiri.kuncar@gmail.com>
* Fix retrieving data from additionalDataMap
* Add basic tests
Co-authored-by: Jiri Kuncar <jiri.kuncar@gmail.com>
* [typescript-fetch] Make additional properties access safer
Instead of asserting that any key access returns a valid property, force
the consumer to check that the value is defined.
* Update tests
* Put null-safe additional props behind and flag and share
* Undo over copy
* Update docs
* Rearrange code
* Move to unit tests
The maven documentation was missing a few option, a couple of option
properties, and was inconsistent regarding selective generation for apis
an models. This adds properties and options where appropriate and
updates the docs. All options in the README have been reordered to match
property declaration order in CodegenMojo, hopefully making it easier
for maintainers to recognized when there are docs missing or out of
date.
This also slightly refactors the code in CodegenMojo to reduce the
cyclomatic complexity of the `execute` method.
This fixes issue #3796 for JavaSpring. It's a very straightfoward extension
of #5120 for the JavaSpring generator (that PR was just for the Java generator).
* Reduce redundancy in python docs
This is a followup to PR #5094, which had a few unresolved comments at
merge time. This reduces the amount of redundant lines in the api
example doc templates, and ensures that referenced Configuration objects
are actually instantiated.
* Regenerate samples
* Add real assertions in DefaultCodegenTest.java testAllOfXXX methods
* Add test to DefaultCodegenTest for an allOf composition with a single ref and no own props
* Ensure model.parent is also added to model.allParents when multipleInheritance is supported
* Cleanup: remove LOGGER.debug, renamed refedParentNames to refedWithoutDiscriminator
* [core] Normalizing vendor extension naming
According to [OAS 2.0][1] and [OAS 3.0][2] Specifications:
> Allows extensions to the OpenAPI Schema. The field name MUST begin with x-,
> for example, x-internal-id. The value can be null, a primitive, an array or an object.
> Can have any valid JSON format value.
This commit attempts to define a [clear identifier design format][3] of
maintaining lower-kebab casing and following the x- prefix defined by
OAI Specification.
Following a convention that matches that used by others (see [autorest][4]), we will remove
any confusion about naming strategies for template authors and
customizers. Following the lower-kebab convention will allow us to
convert from camelCase and missing prefixes to the desired format. For
example, these conversions are simple to make for template consistency:
* customValue => x-custom-value
* x-customValue => x-custom-value
* x-custom-value => x-custom-value
This convention also allows us to define a single standard for use
across all generators. This means no occurrence of x-operationId in one
generator and x-operation-id in another.
[1]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#patterned-objects
[2]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#specificationExtensions
[3]: https://tools.ietf.org/html/draft-wilde-registries-01#section-3.4
[4]: https://github.com/Azure/autorest/tree/master/docs/extensions
* Incorporate feedback to avoid race/blocking in OnceLogger
* Remove unnecessary additional log config
* Add tests,comments for OnceLogger
* Test caffeine cache with FakeTicker
* [kotlin] Fix compile of reserved word in client
A number of places in the client code need to be escaped for reserved
words.
That is, this should be:
(git log formatted): `as` rather than as
(markdown formatted): \`as\` rather than `as`
There are only a handful of places using `{{paramName}}` which HTML
encodes backticks, rather than `{{{paramName}}}` which outputs literal
values.
Added unit test to maintain the reserved word standard for Kotlin.
* don't use kotlin-codegen-escaped parameters in parameter-map
Co-authored-by: Andreas Müller <andreas@stapelspeicher.org>
* fix map as query parameter, use RequestPart instead of RequestParam in
FormParams, add filename for parameters of type file
* fix brace
* fix tests
* run bin/windows bat files
* test if this solves linending problem part 1
* test if this solves linending problem part 2
* test if this solves linending problem part 3
* test if this solves linending problem part 4
* test if this solves linending problem part 5
* test if this solves linending problem part 6
* manually set back version in pom
* update spring samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* improve python documentation and add import to __init__package.mustache
* improve python documentation and add import to __init__package.mustache
* add signing_info parameter conditionally
* add code comments and remove 'Content-Length' header from example
* Remove debug log statement
* set access_token to None by default
* set access_token to None by default
* fix unit tests for Python experimental
* fix trailing space
Adds a more prominent Slack block on the main doc site in response
to a few users not setting the Slack chat links on the Readme or in the
"Learn how" block.
Fixes a rendering issue in the "Try via NPM" block.
Adds a one-liner about the recently added `-Dcolor` option for
optionally colorizing output in the CLI.
* Flatten feature sets for display
* [cli] Add feature set output to config-help
This includes markdown and plain text outputs for config-help.
* [docs] FeatureSet on generator docs
* add support for ECDSA keys
* Add support for HTTP signature
* use bytes.Buffer instead of strings.Builder
* Add unit tests, compliance with HTTP signature draft version 12
* Support (expires) parameter
* Validate list of signed headers does not have duplicate values
* move method to ProcessUtils
* Add http-signature security scheme
* add http_signature_test to security scheme
* remove http signature from petapi
* Add separate OAS file with support for HTTP signature
* Include HTTP signature in README file
* Add generated files for HTTP signature
* Add helper function to return public key, and add more unit tests for signature validation
* some people save their private key with file extensions other than .pem, so I am relaxing the validation of the private key suffix
* [gradle] Add recommendations to validate task
* Use current version of Gradle Plugin in build checks.
* Fix gradle project build version confusion in CI
* [gradle] Bump samples to 5.2.1 wrapper
Previously, the Gradle plugin was building in CI against
openapi-generator 4.2.0 and Gradle version 4.10.2. At some point, a
contribution was made with an API which is incomatible at 4.10.2 and due
to a release script error which pinned the local-spec version to release
4.2.0, we didn't notice this inconsistency.
This bumps the project to build against Gradle 5.2.1.
* [doc] Update versions missed during release
Removed old script bin/utils/release_version_update_docs.sh to avoid
confusion. New script solves issues of not "globally" replacing.
New script is at:
bin/utils/release/release_version_update_docs.sh
* Update Gradle Plugin README with correct version
* Update gradle.properties to correct version
* Fixes issue with templates loading via classpath
The templating engines were originally written to load templates via the
classpath, but this functionality was blocked by file-only checks
further up the stack. This loosens those file-only checks, allowing
files and relatively imported files to be included via classpath.
* [docs] Add details about classpath-level templates
* [feat][maven] templateResourcePath for template on classpath
- NOTE templateResourcePath is not needed for gradle, as it accepts
a string for the target template directory, which supports classpath
* [core] Extracting recommendations to validation framework
This is work to extract recommendation logic out of the CLI validate command
into a shared evaluation instance which can be used elsewhere (such as Gradle,
or the Online tool).
For now, these validations are in addition to those provided by swagger-parser and
are only the following recommendations:
* Apache/Nginx warning that header values with underscore are dropped by default
* Unused models/schemas
* Use of properties with oneOf, which is ambiguous in OpenAPI Specification
I've allowed for disabling recommendations via System properties, since this is
something that has been requested a few times by users. System properties in this
commit include:
* openapi.generator.rule.recommendations=false
- Allows for disabling recommendations completely. This wouldn't include all warnings
and errors, only those we deem to be suggestions
* openapi.generator.rule.apache-nginx-underscore=false
- Allows for disabling the Apache/Nginx warning when header names have underscore
- This is a legacy CGI configuration, and doesn't affect all web servers
* openapi.generator.rule.oneof-properties-ambiguity=false
- We support this functionality, but the specification may not intend for it
- This is more to reduce noise
* openapi.generator.rule.unused-schemas=false
- We will warn when a schema is not referenced outside of Components, which
users have requested to be able to turn off
* openapi.generator.rule.anti-patterns.uri-unexpected-body=false
* Move recommendation/validations to oas package and add javadoc comments
* Refactor and test recommendation validations
* Refactor validation function signatures to return explicit state rather than boolean
* Add operation recommendation for GET/HEAD w/body
* [typescript] Generate enum name independently on model name, ignoring modelSuffix
* Add `enumSufix` cli option for all typescript generators
* Add ENUM_NAME_SUFFIX to to TypeScript***ClientOptionsProvider
* Add a typeMapping for OAS2 built-in "file" type
* Re-generate samples
* Introduce `v4-compat` mode for enumNamePrefix
* Update TypeScriptFetchModelTest - make sure codegen options are processed before running assertions
* Regenerate samples
* Regenerate docs
* Regenerate docs
* Add enumPropertyNaming option to typescript generators
* Regenerate docs
* Add Locale.ROOT to toUpperCase() call
* Use actual enum values in an error message, instead of hardcoding them
* Add tests for "UPPERCASE" and "snake_case" enum var namings
* Add LOCALE.ROOT to String#format call
* [core] Move overwrite ownership to SupportingFile
Previously, there was a writeOptional method in DefaultCodegen which
allowed *Codegen instances to immediately write out a supporting file if
it did not exist. This would allow a codegen implementation to skip
user-facing options such as definitions in .openapi-codegen-ignore, the
"supportingFiles" system property, and support for the experimental
handlebars templating engine. While our implementation only modified the
supportingFiles list conditionally, it added confusion as it seemed to
imply that file writes were somewhat the responsibility of
DefaultCodgen (it's DefaultGenerator which handles file manipulation).
This commit moves the definition of whether a file supports overwriting
existing files into the SupportingFile type itself, allowing that
functionality to be determined at time-of-write rather than
time-of-definition. This would allow us, for example, to dump the list
of files which would be generated using a --dry-run option or similar.
This will be a breaking change for anyone who has extended
DefaultCodegen and called "writeOptional". The path to migrate is to add
the SupportingFile to the supportingFiles list and chain the method call
`.doNotOverwrite()` on the instance.
This has the added benefit of clarifying this behavior, considering the
write behavior wasn't previously "optional" writes but optionally
defining the list of supportingFiles based on the state of the file
system.
* [samples] Regenerated
* Updates ap.mustache for python-experimental, adds test test_test_endpoint_enums_length_one
* Removes sortParamsByRequiredFlag from python-experimental
* Removes duplicate params from docstring
* add Deprecated in kotlin dataClass
* add deprecated in CodegenProperty
* format (Column limit: 100)
* set property.deprecated
* add test
* run ./bin/kotlin-springboot-petstore-all.sh
* trim space
* [feature] Log "debounce" filter to remove spam.
* [log] slf4j-simple should be optional
This also sets the default log level to ERROR during CI builds for many
mvn invocations. This should reduce noise in the logs.
* [log] Rely only on mvn loglevel=error for now
* [cli] Clean up unused dependency
* [log] Change level to error/warn in more CI
* [python] Cleanup ThreadPool with atexit rather than __del__
This removes the `__del__` function from the generated Python client,
and replaces it with a `cleanup` function. When a ThreadPool is created,
the cleanup function is registered with the `atexit` module.
This fixes#5093, where the API client could hang indefinitely at
garbage collection.
* Update petstore examples
* Test to ensure threadpool is cleaned up
* Docs now encourage using the context manager
* Regenerate docs
* Update samples
* Make api to models from a single model/models.ts instead of individual model files.
Fixes inconsistent usage of file names with inline models (inline-model-1, inline-model-2, ...)
* Remove additional mapped filename prop from api imports (since it's not reliable)
* Rerun ./bin/typescript-angular-petstore-all.sh
* Restore the `filename` property passed to the templates, with a comment it's no longer used
* https://github.com/OpenAPITools/openapi-generator/pull/4407 squashed from original, and better author (I failed to refer the right PR the first time)
* removed isArrayLike in favour of Array.isArray
* support collectionFormat the old way
* fixed type and rebuild samples
* revert samples/client/petstore/typescript-angular-v8-provided-in-root/builds/with-npm/package.json
* reverted samples/client/petstore/typescript-angular-v8-provided-in-root/builds/with-npm/tsconfig.json
* rebase-to-master-fix: isDateTime stuff is now handled within this.addToHttpParams
* run bin/typescript-angular-petstore-all.sh on the rebased PR
* applying proposed fix of @macjohnny
* run bin/typescript-angular-petstore-all.sh to regenerate samples
Co-authored-by: aanno <aanno@users.noreply.github.com>
* start implementation of HTTP signature
* add api key parameters for http message signature
* HTTP signature authentication
* start implementation of HTTP signature
* add api key parameters for http message signature
* HTTP signature authentication
* HTTP signature authentication
* start implementation of HTTP signature
* fix merge issues
* Address formatting issues
* Address formatting issues
* move python-experimental-openapiv3-sample to a separate PR
* Add support for HTTP signature
* Add code comments
* Add code comments
* Fix formatting issues
* Fix formatting issues
* Fix formatting issues
* add code comments
* add code comments
* fix python formatting issues
* Make PKCS1v15 string constant consistent between Python and Golang
* fix python formatting issues
* Add code comments in generated Python. Start adding unit tests for HTTP signature
* compliance with HTTP signature draft 12
* compliance with HTTP signature draft 12
* working on review comments
* working on review comments
* working on review comments
* working on review comments
* working on review comments
* working on review comments
* working on review comments
* working on review comments
* working on review comments
* fix python formatting issues
* fix trailing white space
* address PR comments
* address PR comments
* address PR comments
* Add suppport for '(expires)' signature parameter
* address PR comments
* address PR comments
* Fix python formatting issues
* Fix python formatting issues
* Starting to move code to dedicated file for HTTP signatures
* Continue to refactor code to dedicated file for HTTP signatures
* Continue to refactor code to dedicated file for HTTP signatures
* Continue to refactor code to dedicated file for HTTP signatures
* Continue to refactor code to dedicated file for HTTP signatures
* move method to ProcessUtils
* conditionally build signing.py
* move method to ProcessUtils
* Code reformatting
* externalize http signature configuration
* address PR review comments
* address PR review comments
* run samples scripts
* Address PR review comments
* Move 'private_key' field to signing module
* Move 'private_key' field to signing module
* code cleanup
* remove use of strftime('%s'), which is non portable
* code cleanup
* code cleanup
* code cleanup
* run sample scripts
* Address PR review comments.
* Add http-signature security scheme
* Run sample scripts for go
* Fix issue uncovered in integration branch
* Fix issue uncovered in integration branch
* Fix issue uncovered in integration branch
* Fix issue uncovered in integration branch
* Run samples scripts
* move http signature tests to separate file
* move http signature tests to separate file
* unit tests for HTTP signature
* continue implementation of unit tests
* add http_signature_test to security scheme
* add unit tests for http signature
* address review comments
* remove http signature from petapi
* Add separate OAS file with support for HTTP signature
* Add support for private key passphrase. Add more unit tests
* Add unit test to validate the signature against the public key
* remove http signature from petstore-with-fake-endpoints-models-for-testing.yaml
* fix unit test issues
* run scripts in bin directory
* Refact unit test with better variable names
* do not throw exception if security scheme is unrecognized
* change URL of apache license to use https
* sync from master
* fix usage of escape character in python regex. Fix generated python documentation
* write HTTP signed headers in user-specified order. Fix PEP8 formatting issues
* write HTTP signed headers in user-specified order. Fix PEP8 formatting issues
* http signature unit tests
* Fix PEP8 format issue
* spread out each requirement to a separate line
* run samples scripts
* run sample scripts
* remove encoding of '+' character
* Spotbugs, PMD and Checkstyle #33
* Reducing Spotbugs effort to min #33
* Also using project.parent.basedir and avoiding relative paths in pom files.
* Filtering out samples.
* Move PMD/Spotbugs to static-analysis profile
This moves the static-analysis checks to a standalone profile. Core
contributors may run static analysis with:
```
mvn -Pstatic-analysis install
```
The analysis is separated from default functionality to reduce impact to
community contributions. SpotBugs/PMD may add a non-trivial amount of
time to builds on some machines.
Co-authored-by: Tomas Bjerre <tomas.bjerre85@gmail.com>
* Add support for HTTP signature
* Add http-signature security scheme
* add http_signature_test to security scheme
* Add separate OAS file with support for HTTP signature
* change URL of apache license to use https
* add log warning to indicate the 'http signature' security scheme is still a draft
* Update RestSharp and improve async methods
* Fixed missing type parameter
* Update sample code
* Update README
* Update RestSharp version for CI
* Fixed sample test projects
* 🐛 Fixing some issues with threading and NPE
After running Sonar on the master branch, some major analysis
opportunities were displayed.
This fixes the use of SimpleDateFormat stored as static fields.
SimpleDateFormat is not thread-safe, and may retain data across threads.
While there's no indicator that this has caused any issues (these are
mostly used for example code), we should follow these best practices.
This also fixes a handful of NPE and other minor issues such as
comparing Boolean.TRUE to strings and no wrapping some closeables in
try-with-resources.
* [cli] Unit test GenerateBatch custom deserialization helper
* Quiet batch mode in sonar.yml
* Suppress unnecessary warnings (ThreadLocals in static fields)
* Adds jacoco for code coverage
This sets up jacoco instrumentation for code coverage. Preparing for
master and PR coverage reporting via sonarcloud.
* Set initial required coverage to 0
* fix go compilation error for properties of type map and array
* fix go compilation error for properties of type date and datetime
* add missing shell script to bin/utils/ensure-up-to-date
* add missing shell script to bin/utils/ensure-up-to-date
* add missing shell script to bin/utils/ensure-up-to-date
* fix issue with 'date' type
* fix time import problem
* Add missing pom.xml files for golang
* Add missing unit test files for golang
* Add missing unit test files for golang. Must use class name prefix for enums
* Fix unit tests for go-experimental in OAS3
* Fix unit tests for go-experimental in OAS3
* Add code comments in codegen
* Fix compilation errors of generated go code
* Fix compilation errors of generated go code
* remove antihax from go-experimental, it is no longer used
* copy python testfile for ut purpose
* add error checkout in unit tests
* add unit tests
* add code comments
* move test foo.png file to correct location
* run samples scripts
* run samples scripts
* [elm] Fix generating arrays of enums
* [elm] Add suffix to operation parameters
So there are no longer conflicts between parameters or
parameters and operation names.
* [Slim4] Support byte data format
* [Slim4] Support date and date-time data formats
* [Slim4] Support password data format
* [Slim4] Support uuid data format
* [Slim4] Fix test of password format mocking
'00000' is numeric type, because PHPUnit doesn't make strict type
comparison.
* [Slim4] Fix data format key in object mocking
* [Slim4] Support binary data format
* [Slim4] Support email data format
* [Slim4] Base64 encode binary format output
Raw bytes string breaks PHP stdout output, so I've decided to use base64
encoding format for binary format too.
* [Slim4] Refresh samples
* [test] Removes jmockit in favor of mockito
We use mockito in many tests. This removes jmockit which is run as a
javaagent in favor of Mockito which is not.
This work is in preparation for applying some static analysis tools,
while evaluating others such as Jacoco. I'm also look at ways to improve
build times while also decreasing "ramp up time" for contributions from
the community. Reducing the number of mock frameworks and dependencies
is a step toward that goal.
* Rename method in new.sh
* [cli] Mock the generate task
Tests for python client, comprising support for additional_properties and arrays.
There are ugly workarounds for when there are discriminators, since the python client generator does not fully handle them.
Cool indentation of test files.
* [aspnetcore] Fix duplicate generation of enums
Fixes template issue where enums defined within a class were generated
regardless of whether they were a complexType (externally defined
"model") or an inlined enum.
* [dart-dio+time_machine] Add missing import, serializer
* [dart-dio] Remove bad import from `http` package
* [dart-dio] Use raw strings for those that contain variable name.
This should eliminate potential issue with variables like `$ref`.
* [dart-dio] Use `_path` instead of `path` to avoid potential conflict with op params.
See 1bec0b47b1/Kubernetes.json, there are a few with `{path}` param.
* [dart-dio+time_machine] Use `OffsetXxx` classes for date time values
* [config-help] Sort all outputs
* Remove old/stale generator docs (these have been renamed previously)
* Sort config doc outputs, making it easier to find relevant info
* Fixes cliOptions duplicates
Erlang client/proper improperly set the version option as packageName
(causing duplicate for packageName).
The java and swift option removals are because the options are added in
parent classes, resulting in duplication of the options.
* Add --github-nested-index for generating docs/generators/README.md
* 📝 Regenerate generator docs
This continues on work in #5033 and #5034 which convert all http usage
to https to unblock CircleCI builds.
In #5034, mavenCentral() DSL was updated to explicitly target the https
maven repo because Gradle didn't force TLS 1.2 until v4.8.1 and many of
our examples use earlier versions of Gradle. The Kotlin meta generator
was missed because it is a .kts build file rather than build.gradle, and
the mustache filename doesn't have kts in it; the file was updated as if
it was build.gradle (groovy syntax).
* Use builder pattern for requests
* petstore
* Add @throws annotation
* regenerate jersey2 test files
* Also group bodyParam in builder class
* petstore java6
* regenerate java8
* ensure up to date
- due to the addition of the timemachine library, models were importing ‘DateTime’ when using the core library, which is not a valid import.
- the parameterToString function was copied from the dart2 generator and had some errors when some enums were classes.
* Updates spring generator to omit type suffixes from int float double defaults, adds testDefaultValuesFixed
Adds the test testDefaultValuesFixed
* Updates SpringCodegen to only remove character suffixes from CodegenParameter defaultValues, updates tests
* Updates java function comment
* Adds early return in postProcessParameter
* Removes unneeded imports
* Fixes decorators on java method postProcessParameter
* Fixes typo
* Fixes paste error
* Removes unused import
* [elm] Remove support for Elm 0.18
* [elm] Drop `Main.elm`
* [elm] Put all models in a single file
* [elm] Put generated code in `Api` package
* [elm] Introduce Request type for operations
* [elm] Generate list of enum variants
* [elm] Make default Time module
* [elm] Small improvements & fixes
* [elm] Improve support for allOf
* All of types are now nested;
* Adding a discriminator creates a custom type wrapping all variants
and a 'catch-all' fallback variant.
* [elm] Add support for recursive types
* [elm] Add catch-all type for allOf
* [elm] Drop support for post-processing of files
* [elm] Only import required packages
* [elm] Handle reserved and unsafe words
* [elm] Minor improvements
* [elm] Add support for integer enums
* [elm] Remove additional slash in path
* [elm] Add link to docs
* [elm] Update CI test file & scripts
* [Slim4] Add new method to Mocker interface
* [Slim4] Add implementation and tests for new method
* [Slim4] Add test fixture to encrease code coverage
* [Slim4] Add ref support to mockArray method
* [Slim4] Add mockFromRef method
* [Slim4] Add ref support to mockObject method
* [Slim4] Add ModelInterface
* [Slim4] Refresh samples
* [Slim4] Add ref support to mockFromSchema method
* [Slim4] Run all test suites by default test command
As it turnes out to generate coverage report for a whole project I need
to run all test suites at once.
* [Slim4] Fix enum option of string mocking
* [csharp] Change enum value suffix name
'enumValueNameSuffix' and 'enumNameSuffix' were introduced in a recent
commit. This changes 'enumValueNameSuffix' to 'enumValueSuffix' to
better differentiate between the two options. This also adds a caveat to
the default description which explains that this flexibility may cause
issues when used by client generator.
* [csharp][aspnetcore] Regenerate samples
[Rust Server] Hyper 0.12 Support
- Hyper upgraded to Hyper 0.12.
- NewService becomes MakeService
- Request on MakeContext is not parameterised - instead, ReqBody, and ResBody are parameterized, and must implement hyper::body::Payload.
- This means that our existing tuples (i.e. (Body, Context)) don't work - instead we have a type ContextualPayload, which implements Payload, and derefs to an inner payload (the body), and contains a context.
- This is handled by the work done in Metaswitch/swagger-rs#63 but has some fall out here as well.
- tokio-proto/tokio-core is no longer supported, and hyper instead depends on tokio.
- Hyper depends on mime 0.3, but multipart depends on mime 0.2, so we now import both
- Hyper TLS 0.2 and native-tls 0.1
- Use Swagger Support library 3.x
- Futures are now Send. This forces ApiImpl to be need to Send as a result, and all forces Clients to be Send + Sync.
[Rust Server] Fix panic handling headers
If we have an API which has multiple auth types, we may panic. This is because
in Hyper 0.11, the following code will panic:
```
use hyper::header::{Authorization, Basic, Bearer, Headers};
fn main() {
let mut headers = Headers::default();
let basic = Basic { username: "richard".to_string(), password: None };
headers.set::<Authorization<Basic>>(Authorization(basic));
println!("Auth: {:?}", headers.get::<Authorization<Bearer>>());
}
```
as it mixes up an `Authorization<Basic>` and `Authorization<Bearer>` as both
have `Authorization:` as the header name.
This is fixed by using `swagger::SafeHeaders` added in
https://github.com/Metaswitch/swagger-rs/pull/90
* [scala] Set support for unique arrays
This includes and builds upon community contribution for better Set support in Scala.
It makes property + model work as expected with Set and default values
across all Scala generators. Included tests to account for new changes.
This also reverts the community contribution to remove ListBuffer
imports and change the default for array to ListBuffer. Users should use
the instantiation types map to modify the desired array instantiation
type. Any new default should target a new minor release after community
discussion, as it affects all existing SDKs generated with
openapi-generator.
* [scala] Improve default handling of monadic collection type
* [scala] Regenerate samples
* Update ScalaPlayFrameworkServerCodegen.java
Scala Play defaulted to List and should continue to do so.
Co-authored-by: František Kocun <frantisek.kocun@gmail.com>
* Added ability to work with `defaultHeaders` and fixed authentication for code generated by openapi-generator for typescript-node:
- added getter/setter for `defaultHeaders` property
- fixed authentication for clients that support several auth methods (use auth method only if auth credentials are set)
* Update petstore templates
* [swift5] introduce new generator
* [swift5] add Swift Package Manager integration and update dependencies
* [swift5] run petstore
* [swift] update Swift 5 generator with Swift 4 changes
* [swift] update Swift 5 generator with Swift 4 changes
* [swift] make CodableHelper more customizable
* [swift] update pet projects
* [swift] update pet projects
* [swift] add nullable support
* [swift] make enums conform to CaseIterable
* [swift] date formatter add support for ISO8601 with and without milliseconds
* [swift] add urlsession support
* [swift] remove unecessary sample unwrapRequired
* [swift] rename JSONEncodableEncoding.swift to JSONDataEncoding.swift
* [swift] use result in generator internals
* [swift] cocoapods remove deprecated docset_url and add watchos deployment target
* [swift] Add ability to pass in a dedicated queue for processing network response (Fix for 230)
* [swift] update pet projects
* [swift] update docs
* [swift] add support for combine
* [swift] update docs
* [swift] update windows bat scripts
* [swift] update windows bat scripts
* [swift] update swift pet project tests
* [swift] update depencies
* [swift] make urlsession the default http client
* [swift] add urlsession sample project
* [swift] add urlsession sample project
* [swift] update docs
* [swift] improve combine unit tests
* [swift] update docs
* Fix for Issue #2205
Because when we have tags on OpenAPI Specification, there can be more than 1 Feign Beans being generated and the title field is share by all the clients. This makes the code to stop working in runtime.
Here is a PR which uses the classVarName instead, which follows the standards and should be enough to solve this issue.
For more info please refer to: https://github.com/OpenAPITools/openapi-generator/issues/2205
* fix java feign parameter request name (#4883)
* update sprign cloud feign sample
* [JAVA][SPRING][2195] added missing getter for enum value (#2346)
* [2195] added missing getter for enum value
* updated samples
* re-generate spring samples
* Removed @JsonValue from toString and regenerated samples
* re-generate spring samples
Co-authored-by: Esteban Gehring <esteban.gehring@gmail.com>
* update samples
* [kotlin][client] make Request date converter toJson as default
* [kotlin][client] update windows scripts
* [kotlin][client] update docs
* [kotlin][client] update scripts
* [kotlin][client] update scripts
Co-authored-by: Filipe Manuel Couto Pinheiro <filipemcpinheiro@gmail.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
Co-authored-by: Lukáš Vasek <bilaak@gmail.com>
Co-authored-by: Esteban Gehring <esteban.gehring@gmail.com>
* fix dart dio option tests
* minor format change
* fix dart option provider
* minor change to tests
* rearrange test order
* update test value
* comment out set author test
* commet out tests
* Added three configuration values for Dart 2 to be able to publish the generated code to pub without changes:
pubAuthor - contains the name of the author
pubAuthorEmail - contains the email address of the author
pubHomepage - contain the homepage of the project
Changed the name of the output directory from docs to doc as this is the path required by pub
* Added three configuration values for Dart 2 to be able to publish the generated code to pub without changes:
pubAuthor - contains the name of the author
pubAuthorEmail - contains the email address of the author
pubHomepage - contain the homepage of the project
Changed the name of the output directory from docs to doc as this is the path required by pub
* [Kotlin] enumPropertyNaming UPPERCASE should separate words with _
* Add unit cases for issue 4062
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Example of broken multi-level hierarchy
* Support for multiple levels of hierarchy in model objects
* Support for multiple levels of hierarchy in generators
* Regenerated samples
* Temporarily skip scalaz sample verification, which is having issue with Java version in CI container
* Re-enable scalaz in verify samples
Co-authored-by: Rob Oxspring <roxspring@imapmail.org>
* Use propertyBaseName instead of propertyName for discriminator
* Revert "Use propertyBaseName instead of propertyName for discriminator"
This reverts commit 389c5471ba.
* Use propertyBaseName instead of propertyName for discriminator
* [MySQL] Add identifierNamingConvention option
Possible values are "original" to not transform original names and
"snake_case".
* [MySQL] Add option tests
* [MySQL] Update doc
* [MySQL] Add original name to comment
* [Ada] Operation security scopes are ignored when generating the server (#1043)
- Update fromOperation() to keep the operation required scopes for each auth
method and store that information in the x-scopes vendor extensions attribute
- Update postProcessOperationsWithModels() to process the operation required
scopes and build a list of authMethods which only contain the required scopes
for the operation and store these authMethods in the x-auth-scopes attribute.
- Update postProcessAuthMethod() to handle the logic of filtering and building
the operation authMethod (new instances are created because we must not
modify the global authMethod definitions)
- Update the Ada server templates to use the x-auth-scopes instead of authMethods
Add a URL prefix parameter for the Ada server instantiation
* Fix Ada code generator
- update to generate Ada style type names (broken by the use of Camelize)
- update the templates for Ada Util and Swagger libraries
* Update generated GNAT project to add the 'utilada_xml' dependency
* Update the Ada samples
* Fix compilation of the petstore Ada sample
- Ensure response IDs are unique, even if the first sentence is identical
- Handle responses where different responses produce a different type of data
- Use the correct mime type for plain text and byte streams
- Tidy up whitespace in client-mod.mustache
- Specify locale for String.format
- Add test for multiple response types
- Update samples
* [Slim4] Add integration tests
* [Slim4] Remove unnecessary syntax check script
Composer package called "phplint" processes the same syntax check and
even faster. It can use cache when files hasn't been changed.
* [Slim4] Exclude composer.lock from codebase
Travis CI fails, it cannot install dependencies from lock file under
different PHP(7.1.33) version.
If there was a type that had a nested type of List or Map, e.g. `Map<String, List<String>>` only the outer types would be replaced with the Built variants, causing issues when running the builder.
* Switches python generators to use pytest, useNose CLI option added if to allow nose to be used instead
* Adds ensure-up-to-date changes
* Adds setup.cfg to python clients so we can configure nose when useNose=true
* Adds fix for python-aiohttp testing, adds files missing from ensure-up-to-date
* [REQ][GO] add awsv4 signature support for client
OpenAPI format does not support AWS Signature method.
This commit add support for AWSv4 signature in GO client generation by adding "withAWSV4Signature" option.
"withAWSV4Signature" option is false by default.
Signed-off-by: Jérome Jutteau <jerome.jutteau@outscale.com>
* [REQ][GO] update samples for awsv4 signature support
Signed-off-by: Jérome Jutteau <jerome.jutteau@outscale.com>
DefaultCodegen#procesOpts sets up quite a bit which may be expected by
users (template directory overrides, git user/repo, etc). The way the
dart-dio and dart-jaguar processOpts methods were written, these things
did not work. This makes it work.
* fix(typescript-angular): Fix date-timing-parsing is truncating the time
* fix(typescript-angular): Fix date-timing-parsing is truncating the time (#4330)
* fix(typescript-angular): Fix date-timing-parsing is truncating the time (#4623)
* Added new cli option to define the request date converter
* Fixed a few build errors
* Update api.mustache
* Fixed api mustache
* Removed unused import
* Fixing mustache templates
* Tweaking mustache templates
* Added sample and new bat file
TODO create new openapi 2.0 source file to simulate the datestring via schema.
* Tweaking mustache templates
* Updated templates and samples
* Fixed build error
* Updated samples
* Fixed path
This adds some conistency to how validation properties are persisted to
the Codegen* types. Whenever we extract metadata from an OpenAPI Schema,
that metadata may include properties defined in the JSON Schema
Validation specification section 6 (see
https://json-schema.org/draft/2019-09/json-schema-validation.html#rfc.section.6).
Previously, only some of these were copied.
This creates an interface allowing for consistent type access across:
* CodegenModel
* CodegenParameter
* CodegenProperty
* CodegenResponse
This does _not_ change existing public fields which previously exposed
these on some of the above type (see CodegenParameter).
CodegenModel has a legacy edge case where primitive types could be
represented at that level rather than as a referenced schema. This adds
the sync of validation properties to these primitive constructs for
CodegenModel with a note that they're legacy and likely to be removed
later.
* Expanding CodableHelper with a more customisable dateFormatter and JSON en-/decoder.
* Ran ./bin/swift4-petstore.sh
* Ran ./bin/swift4-petstore-all.sh again after merge from master.
* Ran ./bin/swift4-petstore-all.sh again after building.
* Ran ./bin/swift4-petstore-all.sh again after rebase latest from upstream master.
* sync master, update samples
* Built and ran ./bin/swift4-petstore-all.sh
* Re-adding code which disappeared in rebase from master.
* Fixed test
* [swift] remove old classes
* [Slim4] Add OpenApiDataMocker interface template
* [Slim4] Implement scalar types in data mocker
* [Slim4] Cleanup, remove unused variables
I've rejected the idea to keep Composer dependencies in Java/codegen
variables at some point of time. It seems that after Git rebase I forgot
to delete them.
* [Slim4] Refresh samples
* [Slim4] Add pattern option to mockString method
[ref] https://tools.ietf.org/html/draft-wright-json-schema-validation-00#section-5.8
* [Slim4] Add enum option to mockString method
[ref] https://tools.ietf.org/html/draft-wright-json-schema-validation-00#section-5.20
* [Slim4] Refactor mockInteger and mockNumber tests
* [Slim4] Refactor mockString tests
* [Slim4] Use null coalescing operator
* [Slim4] Implement enum option in mockString method
* [Slim4] Add tests for enum option of mockString
* run all script in circleci
* test kotlin clients
* add new files
* undo chanages to circleci script
* update samples
* update bitwise config
* fix typo
* Some clean code.
* Add support for retrofit2 in models and apis. Need work in ApiClient, but it's not urgent.
* Add ApiClient with retrofit2 support.
* Remove unnecessary package.
* Add scripts to generate samples.
* Generate sample of retrofit2
* Change toUpperCase to toUpperCase(Locale.ROOT) to fix compile.
* Added GSON library when it's needed
* Fix typo.
* Add some missing common files.
* Execute bin script.
* Remove copy&paste error in script.
* [kotlin] update outdated files
* Fix apis with no params.
* Add missing import in ApiClient
* Add support for CSV, SSV, TSV, PIPES, SPACES in retrofit 2 library.
* Fix package name.
* Execute kotlin-client-retrofit2.sh script.
* force rebuild.
* execute script again.
* Add missing imports from okhttp3.
@Deprecated has a message param that java not. Add it with a default message.
* Execute retrofit2 script.
* Rerun script.
* Adds composed model support for allOf oneOf anyOf
* Moves discriminator into discriminator() class method, adds test_deserialize_lizard, adds setting discriminator using allOf schema
* [typescript-angular] Control response mime type via param
* [typescript-angular] Update samples.
* [typescript-angular] Wrap httpHeaderAccept in an options object.
* [typescript-angular] Updated samples.
* Fix multi-part binary array strings
Multi-part binary array strings as outlined in #3139 resulted in `MultipartFile` rather than `List<MultipartFile>`. This PR attempts to resolve this by adjusting the templates.
Two tests have been added: one for `spring-boot` and one for `spring-cloud`.
Resolve#3139
* Fix multipart file name and description
* Handle array of MultipartFile for delegate
* Update samples due to file description being picked up
* Upload result of bin/spring-stubs
OAS 3.x specification isn't entirely clear on oneOf support. JSON Schema
defines oneOf in such a way that the Schema is only valid if it
validates against exactly one of the referenced Schemas. This suggests
that a Schema defined with oneOf can't include additional "dynamic"
properties. OpenAPI extends on this by adding the necessary
discriminator object, which allows tooling to decide the intended
Schema.
As tooling, openapi-generator may support loose or confusing definitions
in the Specification to better support our user's use cases. In this
case, we may warn that while this usage is technically valid the two
target specifications are unclear about the actual constraints regarding
oneOf.
* [Go] Add multiple servers support to Go-experimental client
* [Go] Use same configuration in go and go-experimental
* [Go] Use Replace -1 instead of ReplaceAll
* [Go] Fix typo and add bound check
* [Go] Regenerate missing templates
* Adds comment in java test where we need to check the fruit model
* Adds oneOf test to DefaultCodegenTest.java, adds code to include properties in composed schema
* Add debug flag for go-experimental generator
* Check for errors before dumping the response in Go generator
* samples/openapi3: update samples for Go generators
* Add support for dumping request and response in Go generated clients
The following change adds a new configuration setting, which
controls whether clients want to dump the HTTP request and response.
Useful when debugging API calls and clients.
* samples: Update Go samples with XML
* Use log.Logger when dumping HTTP request and response in Go client
* Make typescript-node support bearer token authentication and add support for intercepting request
* Explicit typing of interceptors
* Update modules/openapi-generator/src/main/resources/typescript-node/api-single.mustache
Formatting
Co-Authored-By: Esteban Gehring <esteban.gehring@gmail.com>
* Build Petstore
* [swift] introduce result type as response library
* iOS - run petstore samples
* [swift4] add result sample to testing pipeline
* [swift] update docs with result type
* [swift] update result visibility
* [swift] update docs
* Add queue parameter to API
* Apply queue to response function argument
* Update petstore sample
* Update all sample projects
Run ./bin/swift4-all.sh then remove unrelated diff.
* Refactor variable name
Rename queue to apiResponseQueue, because apiResponseQueue is more clear for explaining the context.
* Update Gradle in generated Java projects from 2.14.1 to 6.0.1
* Upgrade Java 11 native Gradle from 5.5 to 6.0.1
When Java 11 native client library was introduced it was introduced with an overridden version of the Gradle wrapper (5.5 instead of 2.14.1). From looking at that PR, there doesn't appear to be any specific reason for the versions to differ. This removes the only override of the Gradle wrapper so all the Java projects are up to date and shares the same version.
* [swift] implement non public api
* [swift] add petstore for non public api
* [swift] fix error in extension that cannot be internal
* [swift] update docs
* Convert not string enum default value to string by toString.
* Add some test cases for enum's default value.
* Convert string default value to enum var name format.
* sync master, update samples
* Initial work on a redux-query client generator.
* Update to match the required redux-query version w/ fixed TS defs.
* Fixes for query parameters, add samples.
* Add windows versions of redux-query scripts.
* Fix for form data handling.
* Initial work on multiple inheritance support.
* Tweaks for discriminator usage + from/to JSON.
* Fix initialization of queryParameters if needed.
* Copy over more QueryConfig values into the final generated QueryConfig.
* Fix for imports that are combined types.
* [cli][batch] Better glob support
If invoked as `openapi-generator batch *.yaml`, the command might
previously fail in some shells where `*.yaml` expands to file name only.
This supports globs without path-part in the filename to prevent
possible NPE.
* [cli] Document batch command
* FIXES#4539 replace line comment with block comment
eslint requires you to use a block comment for ignoring whole files.
* changed comment style in other templates
* generated samples
* generated openapi3 samples
* Revert "generated openapi3 samples"
This reverts commit 98af3dfc
* generated missing samples
* missing indent on the new feature pull request.
* One indentation to much
* Import for application was still missing
* some middleware got in the runServer name
* #2526 support the delegate pattern for kotlin-spring
* fix the diamond
* update the doc
* fix ci
* use Resource? instead of MultipartFile when dealing with files
* bump after rebase on master
* [java] Improve assumptions about artifactVersion
The logic to apply a default artifactVersion was faulty, resulting in
generation without an explicit version specified either on the OpenAPI
Document or at the CLI/plugin level would result in poms generated with
<version></version>
As an example, in any commit made up to 5 weeks before this commit, run:
./bin/java-pkmst-petstore-server.sh
The solution is to ensure that artifactVersion isn't overwritten by an
"in-process" additonalProperties map, and also to ensure that
additionalProperties is synced with the artifactVersion property once it
has been modified.
As a future task, we'll want to move any modification of
additionalProperties outside of preprocessOpenAPI (to processOpts).
We're hiding manipulation of the "Opts" at a point where we should
really only be applying logic on top of the OpenAPI doc.
* [sample] Regenerate java-pkmst sample
* Validation script batches only samples
In this change, the validation script will batch only sample generation.
For meta and documentation, it will always be iterative.
Also made changes to meta-codegen*.sh so conditionals which may invoke
maven are explicitly rooted.
* [ci] batch python-experimental, include new springboot option
Scalaz is not re-generated by users or CI (only verified), so some
compilation issues have been introduced into the generator.
Specifically, the generator previously didn't handle defaults well (or
even correctly, maybe?). This broke when array models were added to the
openapi document used to generate samples. The inclusion of Date-related
mappings being mapped to joda time in DefaultCodegen also caused some
issues with new DateTime properties on models.
Over the course of what appears to be Nov 10-17 2019, CircleCI seems to
be having intermittent issues with Scalaz verification. I found that
green builds were picking up SBT 0.13.x and failed builds were SBT
1.1.0. It's not clear where the system level SBT is being defined, but a
simple fix has been to enforce the sbt version in the generator.
For those unfamiliar with SBT; the SBT command acts as a launcher script
which may switch to older/newer versions of SBT. A Scala project invoked
with SBT 1.1.0 will look for an sbt.version override and happily attempt
compilation with the available SBT 1.1.0. The problem is that SBT 1.1.0
uses Scala 2.12 and this is not binary compatible with Scala 2.11. This
can cause issues with builds due to plugins or incompatible Java version.
* 4383: Client resttemplate and webclient. Form Params are badly added when they are lists
* 4383: Force redeploy
* 4383: Fix test
* 4383: Fix map
* 4383: revert change
* 4383: Fix test resttemplate-withXml
Because when we have tags on OpenAPI Specification, there can be more than 1 Feign Beans being generated and the title field is share by all the clients. This makes the code to stop working in runtime.
Here is a PR which uses the classVarName instead, which follows the standards and should be enough to solve this issue.
For more info please refer to: https://github.com/OpenAPITools/openapi-generator/issues/2205
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
@@ -91,7 +91,12 @@ To test the templates, please perform the following:
(`git add -A` if added files with new test cases)
- For new test cases, please add to the [Fake Petstore spec](https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml)
To start the CI tests, you can run `mvn verify -Psamples` (assuming you've all the required tools installed to run tests for different languages) or you can leverage http://travis-ci.org to run the CI tests by adding your own openapi-generator repository.
To start the CI tests, you can:
- Run `mvn verify -Psamples`, assuming you have all the required tools installed to run tests for different languages.
- Leverage http://travis-ci.org to run the CI tests by adding your own openapi-generator repository.
- Run some of the CI tests in your local workspace.
See [OpenAPI Tools wiki](https://github.com/OpenAPITools/openapi-generator/wiki/Integration-Tests) for more information about the integration tests.
### Tips
- Smaller changes are easier to review
@@ -101,5 +106,5 @@ To start the CI tests, you can run `mvn verify -Psamples` (assuming you've all t
- Make sure test cases passed after the change (one way is to leverage https://travis-ci.org/ to run the CI tests)
- File a PR with meaningful title, description and commit messages.
- Recommended git settings
-`git config --global core.autocrlf input` to tell Git convert CRLF to LF on commit but not the other way around
-`git config core.autocrlf input` to tell Git convert CRLF to LF on commit but not the other way around
- To close an issue (e.g. issue 1542) automatically after a PR is merged, use keywords "fix", "close", "resolve" in the PR description, e.g. `fix #1542`. (Ref: [closing issues using keywords](https://help.github.com/articles/closing-issues-using-keywords/))
[](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)
[](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.openapitools%22%20AND%20a%3A%22openapi-generator%22)
[](https://twitter.com/oas_generator)
</div>
@@ -53,23 +43,26 @@ 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:
@@ -105,12 +98,10 @@ OpenAPI Generator allows generation of API client libraries (SDK generation), se
The OpenAPI Specification has undergone 3 revisions since initial creation in 2010. The openapi-generator project has the following compatibilities with the OpenAPI Specification:
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.3.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/4.3.0-SNAPSHOT/)| 29.02.2020 | Minor release (breaking changes with fallbacks)
| 5.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/5.0.0-SNAPSHOT/)| 17.06.2020 | Major release with breaking changes (no 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.
(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.2.0/openapi-generator-cli-4.2.0.jar)
You can also download the JAR (latest release) directly from [maven.org](https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/4.3.1/openapi-generator-cli-4.3.1.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`
@@ -557,11 +554,13 @@ Here is a list of community-conitributed IDE plug-ins that integrate with OpenAP
- Visual Studio: [REST API Client Code Generator](https://marketplace.visualstudio.com/items?itemName=ChristianResmaHelle.ApiClientCodeGenerator) by [Christian Resma Helle](https://christian-helle.blogspot.com/)
- Visual Studio Code: [Codewind OpenAPI Tools](https://marketplace.visualstudio.com/items?itemName=IBM.codewind-openapi-tools) by [IBM](https://marketplace.visualstudio.com/publishers/IBM)
## [4 - Companies/Projects using OpenAPI Generator](#table-of-contents)
Here are some companies/projects (alphabetical order) using OpenAPI Generator in production. To add your company/project to the list, please visit [README.md](README.md) and click on the icon to edit the page.
@@ -617,9 +633,13 @@ 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/)
- [Woleet](https://www.woleet.io/)
- [WSO2](https://wso2.com/)
- [Vouchery.io](https://vouchery.io)
- [Xero](https://www.xero.com/)
- [Yahoo Japan](https://www.yahoo.co.jp/)
- [Vonage](https://vonage.com)
- [YITU Technology](https://www.yitutech.com/)
- [Yelp](https://www.yelp.com/)
- [Zalando](https://www.zalando.com)
@@ -630,6 +650,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- 2018/05/15 - [REST API仕様からAPIクライアントやスタブサーバを自動生成する「OpenAPI Generator」オープンソースで公開。Swagger Codegenからのフォーク](https://www.publickey1.jp/blog/18/rest_apiapiopenapi_generatorswagger_generator.html) by [Publickey](https://www.publickey1.jp)
- 2018/06/08 - [Swagger Codegen is now OpenAPI Generator](https://angular.schule/blog/2018-06-swagger-codegen-is-now-openapi-generator) by [JohannesHoppe](https://github.com/JohannesHoppe)
- 2018/06/21 - [Connect your JHipster apps to the world of APIs with OpenAPI and gRPC](https://fr.slideshare.net/chbornet/jhipster-conf-2018-connect-your-jhipster-apps-to-the-world-of-apis-with-openapi-and-grpc) by [Christophe Bornet](https://github.com/cbornet) at [JHipster Conf 2018](https://jhipster-conf.github.io/)
- 2018/06/27 - [Lessons Learned from Leading an Open-Source Project Supporting 30+ Programming Languages](https://speakerdeck.com/wing328/lessons-learned-from-leading-an-open-source-project-supporting-30-plus-programming-languages) - [William Cheng](https://github.com/wing328) at [LinuxCon + ContainerCon + CloudOpen China 2018](http://bit.ly/2waDKKX)
- 2018/07/19 - [OpenAPI Generator Contribution Quickstart - RingCentral Go SDK](https://medium.com/ringcentral-developers/openapi-generator-for-go-contribution-quickstart-8cc72bf37b53) by [John Wang](https://github.com/grokify)
- 2018/08/22 - [OpenAPI Generatorのプロジェクト構成などのメモ](https://yinm.info/20180822/) by [Yusuke Iinuma](https://github.com/yinm)
@@ -637,6 +658,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- 2018/10/31 - [A node package wrapper for openapi-generator](https://github.com/HarmoWatch/openapi-generator-cli)
- 2018/11/15 - [基于openapi3.0的yaml文件生成java代码的一次实践](https://blog.csdn.net/yzy199391/article/details/84023982) by [焱魔王](https://me.csdn.net/yzy199391)
- 2018/11/18 - [Generating PHP library code from OpenAPI](https://lornajane.net/posts/2018/generating-php-library-code-from-openapi) by [Lorna Jane](https://lornajane.net/) at [LORNAJANE Blog](https://lornajane.net/blog)
- 2018/11/19 - [OpenAPIs are everywhere](https://youtu.be/-lDot4Yn7Dg) by [Jeremie Bresson (Unblu)](https://github.com/jmini) at [EclipseCon Europe 2018](https://www.eclipsecon.org/europe2018)
- 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)
@@ -648,6 +670,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- 2019/02/26 - [Building API Services: A Beginner’s Guide](https://medium.com/google-cloud/building-api-services-a-beginners-guide-7274ae4c547f) by [Ratros Y.](https://medium.com/@ratrosy) in [Google Cloud Platofrm Blog](https://medium.com/google-cloud)
- 2019/02/26 - [Building APIs with OpenAPI: Continued](https://medium.com/@ratrosy/building-apis-with-openapi-continued-5d0faaed32eb) by [Ratros Y.](https://medium.com/@ratrosy) in [Google Cloud Platofrm Blog](https://medium.com/google-cloud)
- 2019-03-07 - [OpenAPI Generator で Spring Boot と Angular をタイプセーフに繋ぐ](https://qiita.com/chibato/items/e4a748db12409b40c02f) by [Tomofumi Chiba](https://github.com/chibat)
- 2019-03-16 - [A Quick introduction to manual OpenAPI V3](https://vadosware.io/post/quick-intro-to-manual-openapi-v3/) by [vados](https://github.com/t3hmrman) at [VADOSWARE](https://vadosware.io)
- 2019-03-25 - [Access any REST service with the SAP S/4HANA Cloud SDK](https://blogs.sap.com/2019/03/25/integrate-sap-s4hana-cloud-sdk-with-open-api/) by [Alexander Duemont](https://people.sap.com/alexander.duemont)
- 2019-03-25 - [OpenAPI generatorを試してみる](https://qiita.com/amuyikam/items/e8a45daae59c68be0fc8) by [@amuyikam](https://twitter.com/amuyikam)
- 2019-03-27 - [OpenAPI3を使ってみよう!Go言語でクライアントとスタブの自動生成まで!](https://techblog.zozo.com/entry/openapi3/go) by [@gold_kou](https://twitter.com/gold_kou)
@@ -690,7 +713,44 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- 2019-10-24 - [Microprofile OpenAPI - Code First or Design First?](https://github.com/pe-st/apidocs/blob/master/MicroProfile-OpenAPI-all-slides.pdf) by [Peter [pɛʃə] Steiner](https://twitter.com/pesche) at [eclipsecon Europe 2019](https://www.eclipsecon.org/europe2019/sessions/microprofile-openapi-code-first-or-design-first)
- 2019-11-06 - [Generating API clients based on OpenAPI v3 specifications](https://98elements.com/blog/generating-api-clients-based-on-openapi-v3-specifications) by [Dominik Jastrzębski @ 98elements](https://98elements.com)
- 2019-11-06 - [OpenAPIを利用して自前のAPIサーバー(Sinatra)を移植した時のメモ](https://qiita.com/YasuhiroABE/items/c73920eab2d9d6e97fd9) by [Yasuhiro ABE](https://twitter.com/YasuhiroABE)
- 2019-11-07 - [API First development with OpenAPI - You should you practise it !?](https://www.youtube.com/watch?v=F9iF3a1Z8Y8) by [Nick Van Hoof](https://www.nickvanhoof.com/) at [Devoxx Belgium 2019](https://devoxx.be/)
- 2019-11-08 - [JHipster beyond CRUD - API-First for Enterprises by Enrico Costanzi](https://www.youtube.com/watch?v=m28JFovKQ20) by [Enrico Costanzi](https://twitter.com/enricocostanzi) at [JHipster Conf 2019 in Paris](https://jhipster-conf.github.io/)
- 2019-11-11 - [TypeScript REST APIクライアント](https://qiita.com/unhurried/items/7b74f7d3c43545dadd2b) by [@unhurried](https://qiita.com/unhurried)
- 2019-11-11 - [One Spec to Rule them all - OpenAPI in Action](https://www.youtube.com/watch?v=MMay_nht8ec) by [Andreas Litt](https://github.com/littldr) at [code.talks 2019](https://www.codetalks.com/)
- 2019-11-13 - [OpenAPI 3.0 Editor And Generator With A Spring Boot Example](https://simply-how.com/design-and-generate-api-code-from-openapi) at [Simply How](https://simply-how.com/)
- 2019-11-17 - [OpenAPI Generator YouTube playlist](https://www.youtube.com/playlist?list=PLtJyHVMdzfF6fBkOUV5VDVErP23CGgHIy) at [YouTube](https://www.youtube.com)
- 2019-11-20 - [Introduction to OpenAPI](https://noti.st/lornajane/HvDH7U/introduction-to-openapi) by [Lorna Mitchell](https://twitter.com/lornajane) at [GOTO Copenhagen 2019](https://gotocph.com/2019/)
- 2019-11-20 - [How to Generate Angular code from OpenAPI specifications](https://dotnetthoughts.net/how-to-generate-angular-code-from-openapi-specifications/) by Anuraj
- 2019-11-23 - [Swagger ではない OpenAPI Specification 3.0 による API サーバー開発](https://www.slideshare.net/techblogyahoo/swagger-openapi-specification-30-api) by [Tetsuya Morimoto](https://github.com/t2y) at [JJUG CCC 2019 Fall](https://ccc2019fall.java-users.jp/)
- 2019-11-24 - [Accelerate Flutter development with OpenAPI and Dart code generation](https://medium.com/@irinasouthwell_220/accelerate-flutter-development-with-openapi-and-dart-code-generation-1f16f8329a6a) by [Irina Southwell](https://medium.com/@irinasouthwell_220)
- 2019-11-25 - [openapi-generatorで手軽にスタブサーバとクライアントの生成](https://qiita.com/pochopocho13/items/8db662e1934fb2b408b8) by [@pochopocho13](https://twitter.com/pochopocho13)
- 2019-11-26 - [CordaCon 2019 Highlights: Braid Server and OpenAPI Generator for Corda Client API’s](https://blog.b9lab.com/cordacon-2019-highlights-braid-server-and-openapi-generator-for-corda-flows-api-s-d24179ccb27c) by [Adel Rustum](https://blog.b9lab.com/@adelrestom) at [B9lab](https://blog.b9lab.com/)
- 2019-12-03 - [A Road to Less Coding: Auto-Generate APILibrary](https://www.corda.net/blog/a-road-to-less-coding-auto-generate-apilibrary/) at [Corda Blog](https://www.corda.net/blog/)
- 2019-12-04 - [Angular+NestJS+OpenAPI(Swagger)でマイクロサービスを視野に入れた環境を考える](https://qiita.com/teracy55/items/0327c7a170ec772970c6) by [てらしー](https://twitter.com/teracy55)
- 2019-12-17 - [OpenAPI Generator で OAuth2 アクセストークン発行のコードまで生成してみる](https://www.techscore.com/blog/2019/12/17/openapi-generator-oauth2-accesstoken/) by [TECHSCORE](https://www.techscore.com/blog/)
- 2019-12-23 - [Use Ada for Your Web Development](https://www.electronicdesign.com/technologies/embedded-revolution/article/21119177/use-ada-for-your-web-development) by [Stephane Carrez](https://github.com/stcarrez)
- 2019-12-23 - [OpenAPIのスキーマを分割・構造化していく方法](https://gift-tech.co.jp/articles/structured-openapi-schema) by [小飯塚達也](https://github.com/t2h5) at [GiFT, Inc](https://gift-tech.co.jp/)
- 2020-01-17 - [OpenAPI demo for Pulp 3.0 GA](https://www.youtube.com/watch?v=mFBP-M0ZPfw&t=178s) by [Pulp](https://www.youtube.com/channel/UCI43Ffs4VPDv7awXvvBJfRQ) at [Youtube](https://www.youtube.com/)
- 2020-01-19 - [Why document a REST API as code?](https://dev.to/rolfstreefkerk/why-document-a-rest-api-as-code-5e7p) by [Rolf Streefkerk](https://github.com/rpstreef) at [DEV Community](https://dev.to)
- 2020-01-28 - [Get Your Serverless Swagger Back with OpenAPI](https://dev.to/matttyler/get-your-serverless-swagger-back-with-openapi-48gc) by [Matt Tyler](https://dev.to/matttyler)
- 2020-01-30 - [OpenAPI Generatorへのコントリビュート](https://www.yutaka0m.work/entry/2020/01/30/163905) by [yutaka0m](https://github.com/yutaka0m)
- 2020-02-01 - [Using OpenAPI to Maximise Your Pulp 3 Experience](https://fosdem.org/2020/schedule/event/openapi/) by [Dennis Kliban](https://github.com/dkliban/) at [FOSDEM](https://fosdem.org/)
- 2020-02-07 - [Why you should use OpenAPI for your API design](https://www.youtube.com/watch?v=zhb7vUApLW8&t=927s) by [Nick Van Hoof](https://apiconference.net/speaker/nick-van-hoof/) at [API Conference](https://apiconference.net/)
- 2020-02-17 - [Rubynetes: using OpenAPI to validate Kubernetes configs](https://www.brightbox.com/blog/2020/02/17/using-openapi-to-validate-kubernetes-configs/) by Neil Wilson at [Brightbox](https://www.brightbox.com/)
- 2020-02-20 - [Building SDKs for the future](https://devblog.xero.com/building-sdks-for-the-future-b79ff726dfd6) by [Sid Maestre (Xero)](https://twitter.com/sidneyallen)
- 2020-02-27 - [Nuxt利用プロダクトでIE11と仲良くするためのE2E](https://tech.medpeer.co.jp/entry/e2e-ie11) at [Medpeer.co.jp Tech Blog](https://tech.medpeer.co.jp/)
- 2020-02-29 - [Providing Support to IoT Devices Deployed in Disconnected Rural Environment (Conference paper)](https://link.springer.com/chapter/10.1007/978-3-030-41494-8_14) by Sergio Laso, Daniel Flores-Martín, Juan Luis HerreraCarlos, CanalJuan Manuel, MurilloJavier Berrocal
- 2020-03-02 - [How To Generate Angular & Spring Code From OpenAPI Specification](https://www.mokkapps.de/blog/how-to-generate-angular-and-spring-code-from-open-api-specification/) by [Michael Hoffmann](https://www.mokkapps.de/)
- 2020-03-02 - [OpenAPI Generator + TypeScript で始める自動生成の型に守られた豊かなクライアント生活](https://gift-tech.co.jp/articles/openapi-generator-typescript) by [五百蔵 直樹](https://gift-tech.co.jp/members/naokiioroi) at [GiFT株式会社](https://gift-tech.co.jp/)
- 2020-03-10 - [OpenAPI Generator Meetup #1](https://speakerdeck.com/akihito_nakano/openapi-generator-meetup-number-1) by [中野暁人](https://github.com/ackintosh) at [OpenAPI Generator Meetup #1](https://openapi-generator-meetup.connpass.com/event/168187/)
- 2020-03-15 - [Load Testing Your API with Swagger/OpenAPI and k6](https://k6.io/blog/load-testing-your-api-with-swagger-openapi-and-k6)
- 2020-04-13 - [俺的【OAS】との向き合い方 (爆速でOpenAPIと友達になろう)](https://tech-blog.optim.co.jp/entry/2020/04/13/100000) in [OPTim Blog](https://tech-blog.optim.co.jp/)
- 2020-04-22 - [Introduction to OpenAPI Generator](https://nordicapis.com/introduction-to-openapi-generator/) by [Kristopher Sandoval](https://nordicapis.com/author/sandovaleffect/) in [Nordic APIs](https://nordicapis.com/)
- 2020-04-27 - [How we use Open API v3 specification to auto-generate API documentation, code-snippets and clients](https://medium.com/pdf-generator-api/how-we-use-open-api-v3-specification-to-auto-generate-api-documentation-code-snippets-and-clients-d127a3cea784) by [Tanel Tähepõld](https://medium.com/@tanel.tahepold)
- 2020-05-09 - [OpenAPIでお手軽にモックAPIサーバーを動かす](https://qiita.com/kasa_le/items/97ca6a8dd4605695c25c) by [Sachie Kamba](https://qiita.com/kasa_le)
- 2020-05-18 - [Spring Boot REST with OpenAPI 3](https://dev.to/alfonzjanfrithz/spring-boot-rest-with-openapi-3-59jm) by [Alfonz Jan Frithz](https://dev.to/alfonzjanfrithz)
- 2020-05-19 - [Dead Simple APIs with Open API](https://www.youtube.com/watch?v=sIaXmR6xRAw) by [Chris Tankersley](https://github.com/dragonmantank) at [Nexmo](https://developer.nexmo.com/)
- 2020-05-22 - [TypeScript REST API Client](https://dev.to/unhurried/typescript-rest-api-client-4in3) by ["unhurried"](https://dev.to/unhurried)
## [6 - About Us](#table-of-contents)
@@ -705,8 +765,9 @@ OpenAPI Generator core team members are contributors who have been making signif
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.