Compare commits

..

391 Commits

Author SHA1 Message Date
William Cheng
f2e2b30f23 fix some tests, update default generator 2020-12-08 14:50:05 +08:00
William Cheng
37cec1695c better code format 2020-12-08 01:57:47 +08:00
William Cheng
4a275b24f7 update tests, generators and more 2020-12-08 01:56:42 +08:00
William Cheng
8c06f96529 refactor modelutils (partial) 2020-12-08 00:21:37 +08:00
William Cheng
36d366b19b refactor isAnyTypeSchema, isFreeFormType 2020-12-07 23:09:05 +08:00
Peter Leibiger
751ffad8db [dart] Cleanup and OAS3 support (#8085)
* [dart] Cleanup and regnerate old/wrong tests and docs

* docs path seems to be doc now in all dart generators
* generated tests are very old and use wrong classes

* [dart-dio] Improve formatting

* [dart][dart-dio] Restructure tests to same layout

* remove duplicate/old openapi sample for which there is no generation config
* generate to `petstore_client_lib` for both generators
* run generated tests as integration tests for dart2 even if empty - this makes it easier to find compile errors

* [dart] Improve gitignore handling for Dart generators

* globally ignore all dart related files that should not be commited
* remove old ignores that are no longer valid

* [dart][dart-dio] Add OAS3 generation and integration tests

Dart2 doesn't compile, needs fixes.

* [dart] Do not attempt to deserialize binary content from JSON fields

Not sure if that case is ever relevant but for now there doesn't seem to be a better option.

* [dart] Fix integration tests for OAS3 petstore

Some POST operations now return 200 with content.

* [dart] Generate Petstore Fake API but don't add to integration tests yet

Explicitly not adding the new integration tests to the master POM. They do not work but having them allows for quickly iterating on open issues without breaking existing basic OAS2/OAS3 petstore examples. Instead they should be run manually until everything is fixed.
2020-12-07 21:38:39 +08:00
William Cheng
ed72843668 better operationId in elm client generator (#8109) 2020-12-07 18:29:38 +08:00
BrMtssk
e732804a68 [BUG][typescript-axios] Sets 'isCollectionFormatMulti' flag to true on multiple file uploads (#8105)
* [typescript-axios] Sets 'isCollectionFormatMulti' to true on file uploads.

Fixes #8104

* Safely checks if dateFormat is "binary" #8105

Co-authored-by: Bruno Matissek <bruno.matissek@gmail.com>
2020-12-07 09:27:33 +01:00
sahan
a3aa19927e feat(config): pull the basePath from config is exists (#8078)
* feat(config): pull the basePath from config if the basePath doesn't exist

* chore: update samples

* chore: use the basePath from the base class

* chore: update all the samples
2020-12-07 09:25:02 +01:00
Toby Murray
cbe1fd9728 Bump Gradle in generated Java projects to 6.7.1 (#8079)
* Bump Gradle in Java projects from 6.0.1 to 6.7.1

Regular maintenance, 6.0.1 was released November 18th, 2019 and the latest release (November 16th, 2020) is 6.7.1. This updates all the wrapper templatesto the latest version.

* Updated generated Java samples

Generated via `./bin/generate-samples.sh bin/configs/java-*`

* update samples

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-12-07 10:44:23 +08:00
Javier Velilla
c0c2f2b804 [Eiffel] various enhancements (#8076)
* Updated Eiffel code generator.
	Added missing language reserved words.

Updated mustache templates to use the latest Eiffel rules to avoid obsolte
feature calls and Cat-Calls.
Updated Eiffel configuration files (ecf's)
Updated comments styles.
Updated Travis CI file to use the latest Eiffel compiler.
Updated EIffel sample to use https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml

* Added missing mapping decimal to REAL_64
Added Eiffel Kernel classes to importMapping to avoid generate models for
them.
Fixed issue with Eiffel feature name generation, updated toOperationId(String) method.
Simplified toInstantiationType method implementaetion.
Improved model.mustache to generate Eiffel models.

* Updated Eiffel sample.

* Removed unneeded tabs.

* Added AnyType mapping to ANY
Removed unneeded tab
Updated model name, remane models that starts with _.

* update doc

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-12-07 10:07:03 +08:00
Hui Yu
3195338c47 [C][Client] Fix memory leak when free a map (#8107) 2020-12-07 08:59:03 +08:00
kannkyo
43fa47a51d Support mediaType (#8100) 2020-12-07 08:58:13 +08:00
sullis
b54dade079 mockito 3.6.28 (#8106) 2020-12-07 08:51:31 +08:00
Sergey
13f1c610d9 [python] Re-merge Subclass Python exceptions (#7321) (#8095)
* Subclass Python exceptions (#7321)

* Subclass Python exceptions:
- UnauthorizedException (401)
- ForbiddenException (403)
- NotFoundException (404)
- ServiceException [500 - 599]

Fixes #2151

* add generated sample code

* use Python 2 flavor inheritance

* regenerate samples

* update samples

Co-authored-by: Ryan Rishi <ryan@ryanrishi.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-12-05 12:02:00 -08:00
Ajith Kumar
3de537062d [Java][Spring] Fixes incorrect request body for map type in reactive spring (#8046)
* [java][spring] updated template to support proper reactive map type

* [java][spring] supporting unit test for spring boot reactive request map issue

* [java][spring] updated samples

* [java][spring] refactoring the issue test spec
2020-12-05 18:32:57 +08:00
Julien Feltesse
adcf54bc09 [ruby] document the *_with_http_info methods (#8094) 2020-12-05 18:27:49 +08:00
fuxs
38dbcdd752 [Go] Fixes missing return statement (#8072) (#8090) 2020-12-05 18:24:22 +08:00
Hui Yu
bac913f384 [C][Client] Fix memory leak when the type of query parameter in request url is integer or boolean (#8096) 2020-12-05 18:23:56 +08:00
kannkyo
5e4d0978dc Support body params for jmeter (#8101) 2020-12-05 18:23:22 +08:00
stephanpelikan
a4f1d1b5b1 Fix for 'Reactive paramter ServerWebExchange's properties appear in Swagger-UI' (#8031) (#8032)
* [Spring] Add @ApiIgnore to parameter ServerWebExchange of reactive style (#8031)

* [Spring] Apply contribution guidelines (#8031)
2020-12-04 15:09:06 +08:00
nitoqq
25c7ccf30c JS Client: Allow dot in path parameter name (#6116)
* JS Client: Allow dot in path parameter name

* JS Client: Allow dot in path parameter name

* Delete ApiClient.js

* Delete ApiClient.js

Co-authored-by: Nikolai Konovalov <konovalov.nikolai@gmail.com>
2020-12-04 12:27:44 +08:00
William Cheng
64c57e3f52 Add a script to detect changes in test files (#8020)
* add script to detect changes in test files

* remove build failure test
2020-12-04 12:22:35 +08:00
William Cheng
bcf4f8ade6 [C#] Fix oneOf derserialization with additional properties (#8057)
* fix oneOf derserializaoneOf deserialization with additonal prop

* fix tests due to better handlding of additional prop
2020-12-04 10:50:26 +08:00
William Cheng
b0ecaab8fb Add a link to massive art blog (#8082)
Add a link to massive art blog
2020-12-03 16:35:02 +08:00
Robert Pyke
7644f3ee83 [R] Bug - Invalid code generated for POST with no request object (#8067)
* Default body to NULL

* update samples

* Update to set body to NULL only when no hasBodyParam

* Revert any whitespace changes.

* Makes defaulting body conditional on hasFormParams also not being set

Co-authored-by: William Cheng <wing328hk@gmail.com>
Co-authored-by: Robert Pyke <robertpyke@fb.com>
2020-12-03 16:21:08 +08:00
William Cheng
ebac0a8ed4 Add a link to saki-engineering blog post (#8081) 2020-12-03 15:06:20 +08:00
Peter Leibiger
033d985cf7 [Dart-dio] Add basic integration testing and fix compile errors (#8025)
* [dart-dio] Add basic integration test POM

This basically just fetches dependencies, runs the built_value generator and empty test cases. Even running empty test cases is more than is currently possible and at least finds compile errors.

There are compile errors atm which need to be fixed.

* [dart-dio] Fix missing BuiltSet import in models that use enums

* [dart-dio] Fix compile error when the return type is a Map

* the compile error was `serializerForType(Map<String, int>)` in `StoreApi` which needs to be  `serializerForType(Map)`
* use final instead of var in response handling

* [dart-dio] Generate docs after changes

* [dart-dio] Add integration test to CI execution list
2020-12-02 21:35:07 +08:00
William Cheng
82c5021df2 Revert "Bugfix swift5 code generation 2966 (#7301)" and provide a better (#8066)
fix for the stackoverflow issue
2020-12-02 21:20:44 +08:00
Thomas Hervé
634c4c09e4 Fix generation of map model examples (#8063)
When generation examples of objects with additional properties, we use
the map syntax inside a model instantiation, which is incorrect. This
fixes it by checking for model at the right place.
2020-12-01 19:04:23 -08:00
Ghufran Zahidi
64ade2ce8f [powershell] Implemented the psdata property for module manifest file (#8048)
* Implemented the psdata property for module manifest file (Tags, LicenseUri, ProjectUri, IconUri, ReleaseNotes)

* fix string.format

* update doc

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-12-01 16:52:12 +08:00
William Cheng
e040a5fdde Fix port when the URL doesn't have port specified (#8049)
* fix port missingin oas 3 spec

* update samples
2020-12-01 15:24:28 +08:00
Dalibor Karlović
adcf9ffa20 feature(PHP): include the current value with enum failure (#7993)
When the value is not in the enum, the exception will now
include the actual value, helping spec designers.
2020-11-30 21:49:52 +08:00
Thomas Hervé
a8fbcb0db2 Properly generate email examples (#8035)
Those are not primitive types, but not model either, they need to be
handled explicitely.
2020-11-30 21:48:51 +08:00
sunn
16e9011d5b Add handling of x-www-form-urlencoded and handling float without decimal if model is declared with float/double (#8043) 2020-11-30 21:47:55 +08:00
basyskom-dege
cb1a620628 [C++][Qt5] added Authentication Support (#8004)
* first commit of api Key feature.

* added multi key and URL query key support

* fixed error in mustache files, updated samples and tests

* added Basic Auth with Base64 encoding.

* updated Readme, added bearer token

* added check that authentication credentials are set. fixed typo in README
2020-11-28 15:02:09 +08:00
Ülgen Sarıkavak
045d05fa72 Fix pyhton typo (#8041) 2020-11-28 15:00:23 +08:00
William Cheng
2801c0cb88 [Java][Play] Fix compilation issues when using the supportAsync option (#7864)
* fix async in java play generator

* add async operation option

* Remove the return null and replace with a return at the right place.

Co-authored-by: Jean-François Côté <jcote@stingray.com>
2020-11-27 23:30:46 +08:00
Thomas Hervé
3f75691da2 Fix list examples in Python (for real) (#8034)
The patch in #7967 forgot the prefix, this fixes it, and change the
sampels so that we can see the effect this time.
2020-11-26 14:28:27 -08:00
William Cheng
9334909bcd update samples 2020-11-26 18:44:18 +08:00
Florian Kamella
c950384a5d [JAXRS-CXF] Generate missing jackson annotations in inner enum (#7879)
* [JAXRS-CXF] Introduce petstore sample for jaxrs-cxf-client with additional property jackson (preparational commit)

generated using: ./bin/generate-samples.sh ./bin/configs/other/jaxrs-cxf-client-jackson.yaml

* [JAXRS-CXF] Generate missing jackson annotations in inner enum

fix for generators jaxrs-cxf and jaxrs-cxf-client
2020-11-26 18:26:15 +08:00
Thomas Hervé
616b44f3b1 Improve generated Java examples (#8012)
* Add basic types imports to generated examples

This adds an extension to include basic types imports to generated Java
examples.

* Make some fixes to example generation

* Generate OffsetDatetime correctly

* Create a useful sample for enums, regenerate samples

* Fix BigDecimal as well
2020-11-26 18:14:26 +08:00
Thomas Hervé
157ad1ce73 Fix list examples in python (#7967)
* Fix list examples in python

When a model has an example in an array, it wrongly wraps it again in a
list instead of returning the list examples. This fixes it.

* Add comment
2020-11-26 18:01:34 +08:00
David Yee
cf185d559b Expose JsonSerializerSettings in ApiClient (#7582)
* Expose JsonSerializerSettings in ApiClient

* Update generated petstore sample

* Add XML comments for SerializerSettings and match new OverrideSpecifiedNames default

* Add GetSerializerSettingsTest
2020-11-26 13:06:53 +08:00
Hui Yu
4dc8d2a351 [C][Client] Support progress function of libcurl (#7974) 2020-11-26 00:00:28 +08:00
Julien Feltesse
2b6b7746f3 make the generated ruby oneOf specs pass (#8019) 2020-11-25 23:47:22 +08:00
bgong-mdsol
ca6c63f7e5 fix java incompatible types error for number (#8018) 2020-11-25 17:54:49 +08:00
Troy P
8cfc9b015a [JS] (#7913) Adding support for multi file upload. Also adding the option for individual CodeGens to specify a collectionFormat (#7914)
* updated samples as well
2020-11-25 16:00:08 +08:00
Vithursa
596d9a1d1d [jaxrs-cxf-cdi] Fix issue when generating code for header params when there are defaultValues defined (#7872)
* Update headerParams if there are defaultValue

* remove new line

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-11-25 10:04:53 +08:00
Adam Dobrawy
be07bd13af Allows install typescript client via npm from Git (#7878)
* Allows install typescript client via npm from Git

'prepublishOnly' is run before the package is published. 'prepack' is run before the package is published and after installation local installation eg. via Git.

* Update examples for Typescript
2020-11-24 21:05:07 +01:00
Gilbert Gilb's
9c0850f2d7 [Dart2] Fix compile errors for required enums without default value. (#7877)
Also fix display of minimum/maximum comment.
2020-11-25 00:20:31 +08:00
Nico Schäfer
d64586c223 Fix keyParamName not used for query API token (#7906) 2020-11-24 22:33:53 +08:00
David Ruppelt
4f0e75b32d remove default ContentType for java webclient (#7945) 2020-11-24 22:28:23 +08:00
Christophe Bornet
2e3cfe7695 [kotlin-spring] Fix required requestBoby of kotlin spring (#7985) 2020-11-24 22:27:47 +08:00
Julien Feltesse
522faf835a [ruby] fix oneOf handling (#5706)
* [ruby] fix oneOf handling

* use previous ruby configs due to issue #4690

* check for oneOf model in base_object

* validate the attributes in partial_oneof_module
2020-11-23 22:43:34 +08:00
NickUfer
6f6822a1b7 [php][bug] Fixes exceptions with API's with too high date-time nanosecond precision (#7943)
* [php] Fixes problems with API's with too high date-time nanosecond precision

* update samples

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-11-23 22:30:57 +08:00
William Cheng
33f4827a06 Add isRange in CodegenResponse (#7854)
* add isRange

* undo changes to spec
2020-11-23 17:16:44 +08:00
William Cheng
4984f9c3d5 Correct allOf with only one child schema (no discriminator) (#7855)
* Correct allOf with only one child schema (no discriminator

* fix tests
2020-11-23 17:16:36 +08:00
Thomas Hervé
14ff8e0ffd Remove links to basic types in java API docs (#7989)
* Remove links to basic types in java API docs

This removes (most) wrong links to basic types in Java API docs.

* Regenerate some more samples
2020-11-23 16:24:31 +08:00
Troy P
70bc472b86 [JS] (#7910) Fixing undefined error caused by no this instances (#7911) 2020-11-23 16:17:09 +08:00
Thomas Hervé
1c1e4f4476 Fixes to go API documentation generation (#7963)
* More fixes to go doc generation

* Regenerate samples

* Fix indent

* Remove additonal bracket on time objects
2020-11-23 16:08:55 +08:00
Noor Dawod
91e64f47fc [DART2] A couple of bug fixes (#7969)
* Fixed a couple of problems with current implementation.

1) When encoding non-String header values, the client will forwar to parameterToString() for encoding.
2) fromJson() now accepts a dynamic value since the type transformer accepts a dynamic value.

* Updated Pet Store files.

* Proper spacing between blocks.

* Adjust spacing.

* Make fromJson() as a static function, thus not instantiating a new object if JSON is null.

* Adjust doc for fromJson() function.
2020-11-23 16:07:38 +08:00
William Cheng
08c8296e33 test openapi3 java native in drone.ci (#8001) 2020-11-23 16:01:34 +08:00
William Cheng
aed8086d0e fix string comparision in go generator (#7998) 2020-11-22 20:55:21 +08:00
William Cheng
67271b72f2 Add contact about security vulnerabilities (#7997) 2020-11-22 15:53:27 +08:00
William Cheng
2578ef5e63 Prepare snapshot (v5.0.0) (#7986)
* Revert "prepare 5.0.0-beta3 release"

This reverts commit 3ebe774df3.

* revert to snapshot

* update samples
2020-11-20 19:19:59 +08:00
William Cheng
2715f1371a Prepare 5.0.0 beta3 (#7984)
* prepare 5.0.0-beta3 release

* update samples

* remove beta3 from readme
2020-11-20 15:18:58 +08:00
William Cheng
dd26e406b5 Fix duplicated mappedModels (#7924)
* fix duplicated mapped models

* replace discriminatorExplicitMappingVerbose with legacyDiscriminatorBehavior in comments

* use mappingName for comparison

* improve template

* fix tests

* update comments

* update ts samples
2020-11-20 11:57:48 +08:00
William Cheng
cf8ea9120a fix additional properties without variables (#7978) 2020-11-20 11:54:39 +08:00
William Cheng
c02fc812fe add warning about unsupported libraries in python client generator (#7981) 2020-11-20 11:54:16 +08:00
William Cheng
5e02a5bd45 Set generateAliasAsModel to false in tests (#7979)
* set generateAliasAsModel false in tests

* add missing import
2020-11-20 10:56:05 +08:00
William Cheng
b5ce7cec8b comment out angular v6, v7 tests 2020-11-18 16:13:09 +08:00
William Cheng
78611b3e38 update samples 2020-11-18 14:46:36 +08:00
William Cheng
3bf8ca7484 [python] Renames python generators (#7965)
* python->python-legacy, python-experimental->python

* test with openjdk8

* test with openjdk11

* comment out rm

* move kotlin tests to circleci

* move kotlin tests

* move tests to circleci

* fix circleci

* rearrange test

* move tests

* use wrapper

Co-authored-by: Justin Black <justin.a.black@gmail.com>
2020-11-18 14:34:00 +08:00
Justin Black
c08f14500e Revert "Do not use cached properties for additionalProperties (#7955)" (#7971)
This reverts commit 057647cf1e.
2020-11-17 21:08:55 -08:00
Justin Black
057647cf1e Do not use cached properties for additionalProperties (#7955)
* Fixes additionalProperties, do not use cached properties for additonalProperties

* Regnerates samples
2020-11-16 11:26:54 -08:00
Alexis Cote
36aba267a0 [typescript-fetch] Allow to generate client without runtime checks (#7894)
* Add CLI options to remove runtime checks (serialization/deserialization).

* Update templates to support the new parameter

- Generates all the models in a same file to avoid import complexity
- Extract interfaces creator templates to reuse them

* Fix formatting and generate client examples

* Add documentation
2020-11-16 14:17:29 +01:00
Alexander Rashed
54d6257865 Fix parameter uniqueness for form- and body-params (#7577)
If a form-parameter had the same name as another (header-, query-,
path-, or cookie-)parameter, a conflict could be caused (for example
in the typescript generator). This fix executes the same uniqueness-
check and renaming for form- and body-parameters as it is done for
all other parameters.

@see issue #7575

Co-authored-by: Alexander Rashed <alexander.rashed@ntsretail.com>
2020-11-16 21:16:53 +08:00
William Cheng
aca6927ce0 add lvm_versicherungen logo (#7946) 2020-11-16 15:35:12 +08:00
patst
023e6dd9ed typescript-angular: Angular 11 support (#7937)
* #7935 typescript-angular: support angular 11

* regenerate angular 11 sample project

* Update ngVersion to 11.0.0 in typescript-angular.md
2020-11-14 08:23:13 +01:00
Kai Brandes
88dc21959d Add "LVM Versicherungen" to list of companies (#7931) 2020-11-13 22:33:08 +08:00
William Cheng
a3a0af7c84 [C#][netcore] Add test for AdditionalProperties in both child and parent (#7921)
* add test for ap in both child and parent

* add cat test to net47
2020-11-13 21:13:16 +08:00
Esteban Gehring
e725c4e56f update typescript-fetch samples (#7936) 2020-11-13 13:42:55 +01:00
berlysia
920eafc9c1 [typescript-fetch] add samples of nullable enum (#7754)
* [typescript-fetch] add sample

* [typescript-fetch] add sample for nullable enums
2020-11-13 13:17:35 +01:00
William Cheng
405aa24737 fix shippable issue (#7932) 2020-11-13 19:48:55 +08:00
Thomas Hervé
777031f24f Fix a few issues with go examples generation (#7873)
* Fix a few issues with go examples generation

This fixes a bunch of issues seen when generating go examples, namely
 - Numbers aren't casted to the right type
 - The time import is missing
 - Enums are treated as regular models

* Rebuild more samples

* Use examples properly

* Handle multiple instances in the same doc

* Fix wrong array closure

* Handle model arrays

* Fix file and enum namespace

* Regenerate samples

* Handle maps of complex types

* Handle oneOf

* Fix padding

* Fix enum doc

* Removes links to basic types in arrays

* Remove links to basic types in maps

* Fix enum links

* Minor indent fix

* Handle review comments
2020-11-12 23:36:40 +08:00
Daniel Varnai
3b84e8bb55 Fix missing parenthesis (#7923) 2020-11-12 11:13:50 +01:00
Jeff Brower
ec13288c02 Fix NPE in CodegenIgnoreProcessor.java (fixes #3356) (#7846)
Fixes NullPointerException when using an override ignore file with no parent.
2020-11-11 10:22:51 -05:00
Justin Black
13673962cb Adds tests case showing not sending optional params (#7918) 2020-11-10 08:52:43 -08:00
William Cheng
eab26d493b Better decimal support in Scala generators (#7876)
* fix decimal mapping in scala generators

* add mapping for decimal, number in scala generators

* update doc

* use scala.math.BigDecimal
2020-11-10 11:29:50 +08:00
William Cheng
f8766d591c [C#][Nancyfx] fix incorrect import (#7907)
* fix incorrect import

* remove importMapping
2020-11-10 09:33:34 +08:00
William Cheng
b1b64cb356 throw exception for invalid framework (#7901) 2020-11-10 09:33:07 +08:00
Rocky Warren
81e0e8dfa8 [typescript-axios]: Check configuration is defined in api.ts so it compiles with strict flag (#7892)
* Check configuration is defined

* Update samples
2020-11-09 20:56:08 +01:00
Nicholas Muesch
eceac6a63c Skip validation if input_value is None (#7845) 2020-11-08 12:27:58 -08:00
William Cheng
eacf61de7e fix decimal mapping (#7875) 2020-11-08 11:46:33 +08:00
Justin Black
08fb59009a Removes secondaryParam and hasMore (#7882)
* Removes secondaryParam and hasMore

* Fixes tests

* Only uses bodyParam in groovy template
2020-11-07 11:04:12 +08:00
Ghufran Zahidi
05515040d5 [csharp-netcore]Fixed the null serialization issue for dotnet47 (#7884)
* Fixed the null serialization issue for dotnet47

* c# codeing style

* Updated the sample for csharp netcore

* corrected the typos
2020-11-06 16:15:38 +08:00
Justin Black
bc76d8e58d Adds vars and requiredVars to Schema classes (#7893)
* Adds vars to all schema classes, adds partial test

* Adds tests and addVarsRequiredVarsAdditionaProps

* Adds CodegenProperty test

* Adds requiredVars

* Adds vars and requiredVars cloning for CodegenProperty
2020-11-05 19:22:50 -08:00
William Cheng
b5473d2fda [c#][netcore] Skip readonly properties in serialization (#7883)
* skip readonly in serialization (c# netcore)

* minor wording change
2020-11-06 10:15:11 +08:00
debugman
01d0b5d478 added serialize option in to_dict function in python generated model (#7555)
* added to_json_dict in python generated model

* update to_dict

* updated to_dict

Co-authored-by: sunkaicheng <sunkaicheng@bigo.sg>
2020-11-05 09:42:35 -08:00
Tomasz Prus
b3bc926b1d [python] check output content-type only if preload_content is set (#7847) 2020-11-04 08:41:00 -08:00
William Cheng
739249917c fix null json payload in net47 (#7870) 2020-11-04 17:19:05 +08:00
Noor Dawod
aff1af7be5 [Dart2] Fix a bug when asking to upload a MultipartFile as body. (#7736)
* Fix a bug when asking to upload a MultipartFile as body.

* Make finalizing MultipartFileRequest simpler.

* Restrict creating a MultipartFileRequest when not part of a multipart-form.

* Simplified the upload to use a StreamedRequest.

* Wrap all requests with try-catch.
2020-11-04 09:35:42 +08:00
Florian Kamella
2f30960349 [JAXRS-CXF] Improve handling of additional properties in JavaCXFClientCodegen (#7866) 2020-11-04 09:32:57 +08:00
Pedro Fonseca
e3121af4b4 [typescript-axios] serialize complex type in multipart/form-data as JSON (#7658) (#7816)
Complex types need to be serialized as JSON to avoid FormData.append() from converting them into strings through .toString().
2020-11-03 17:28:14 +01:00
William Cheng
b6091571aa Add presentation at FEConf 2020 (#7863) 2020-11-03 11:10:52 +08:00
Jean-François Côté
998e0fdaa2 [Play Framework] Update Play Framework Generator to latest version (#7860)
* First iteration to support new mechanism that needs to have the handle of the result.

* Most of the samples now build except "async". Also, everything is messed up.. need to understand the mustache way to handle this.

* New version to support play 2.8

* Fix conflict

* Fix error when multiple file in forms
2020-11-03 10:48:29 +08:00
Matthew Eppelsheimer
ebf2f2e30f Fix use of eslint-config-airbnb-base (#7844)
Closes #7843
2020-11-03 10:36:18 +08:00
Ghufran Zahidi
d179574b4e Fixed the HttpSigning issue for query string (#7859) 2020-11-02 21:32:37 +08:00
William Cheng
9377dbca56 Add "decimal" support (#7808)
* rename BigDecimal to decimal

* add isDecimal

* fix tests

* minor fixes

* fix mapping, update doc

* update test spec

* update c# samples
2020-11-02 21:31:32 +08:00
William Cheng
ca6fcaf92a beter code format for protobuf java files (#7857) 2020-11-02 19:42:52 +08:00
guidoussin
4f2f80766e Fix support for AllOf in protobuf-schema (#7813)
Co-authored-by: Guillaume Doussin <guillaume.doussin@amadeus.com>
2020-11-02 18:28:52 +08:00
Christophe Bornet
ca3fcd882e [Kotlin] Fix Spring Kotlin generation of array/map models (#7829)
* Fix Spring Kotlin generation of array/map models

* update doc

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-10-31 17:38:37 +08:00
Thibault Duperron
4f1934c3c7 [Spring] Use default jackson-databind (#7744)
* [Spring] Use default jackson-databind

fix #7743

* Samples
2020-10-31 16:52:18 +08:00
Tomohiro Suwa
46b36c2e65 [Ruby][faraday] fix download_file (#7842)
* Fix download_file

* Generate samples with f1df6acdee

* fixup! Fix download_file

* Generate samples with 3e3ea88b0d
2020-10-31 16:20:31 +08:00
William Cheng
d5a7102785 [Protobuf] tests protobuf-schema generator in CI (#7841)
* test protobuf schema

* remove sudo

* use different image

* proto files

* test with go

* test with go

* test with go

* test with go

* break the build

* Revert "break the build"

This reverts commit 81c10e7d96.

* remove comment

* move config

* remove old protobuf-schema.yaml
2020-10-31 14:43:21 +08:00
William Cheng
96efc76ed5 update samples 2020-10-30 11:37:33 +08:00
Hui Yu
8f06876a2a [C][Client]Fix coredump in multi-thread environment (#7835) 2020-10-30 10:57:14 +08:00
William Cheng
70323adf9f [C#] support .NET framework 4.7 (#7833)
* add net47 support to the csharp generator

* update doc, fix appveyor
2020-10-29 22:41:08 +08:00
William Cheng
d5212ac834 add anytype mapping to object in dart (#7822) 2020-10-29 10:59:31 +08:00
William Cheng
a8bd859397 use System.Environment.OSVersion in .net standard (#7831) 2020-10-29 10:54:09 +08:00
William Cheng
0e994eabf7 use WriteRawValue instead of WriteRaw (#7830) 2020-10-29 10:53:50 +08:00
Alexander Presber
ab93cec952 Update users.yml to include Giant Monkey GmbH (#7823)
* Update users.yml

We are happily using this, too!

* add our logo, too

* sort in our company alphabetically

Co-authored-by: Alexander Presber <alexander@giantmonkey.de>
2020-10-28 22:01:58 +08:00
Dalibor Karlović
b43103a029 Tweaks for PHP client Markdown files suggested by markdownlint (#7779) 2020-10-28 14:52:21 +08:00
William Cheng
913ec2019e Add link to React Native Client article (#7826) 2020-10-28 11:47:06 +08:00
William Cheng
87b4f45d40 add adesso logo (#7825) 2020-10-28 11:46:32 +08:00
Steve B
ea2cdd23c2 [python] add socket_options to configuration for the rest client (#7795)
* [python] add socket_options to configuration for the rest client

* (python-experimental) add socket_options to configuration for the rest client

This mirrors work done on the python generator

* (python-experimental) add test to cover socket_options is passed on from configuration

Co-authored-by: steve brazier <steve.brazier@trioptima.com>
2020-10-27 18:22:28 -07:00
Sascha Grebe
44f5f2bdd8 Added adesso as users (#7817)
adesso is using openapi tools as well.
2020-10-27 22:15:17 +08:00
timo-a
d90fd10a75 Update CONTRIBUTING.md with typo corrections - no semantic changes (#7811)
* Update CONTRIBUTING.md

typos

* update doc

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-10-27 22:14:08 +08:00
William Cheng
44ec0caba4 use originl value in comments (#7803) 2020-10-27 18:14:46 +08:00
William Cheng
042fc81f31 add anyOf support (#7801) 2020-10-27 17:02:05 +08:00
Julien Herr
5d27799bad [typescript-axios] Fix multipart with file array (#7814)
* Force isCollectionFormatMulti in case of binary/file

* Manage multipartFormData in isCollectionFormatMulti

* Update petstore

Co-authored-by: Julien Herr <julien@nabu.io>
2020-10-27 08:58:08 +01:00
Francesco Montorsi
4860eb65e1 [cpp-restbed-server] make the restbed SERVER generator more extensible (#7679)
* Simple fix to allow users to override the Api class and set handlers

* fix definition order

* Regen petstore example files
2020-10-27 15:35:10 +08:00
William Cheng
3d6bd48b67 [JAX-RS] replace isListContainer with isArray (#7806)
* replace isListContainer with isArray

* update serviceFormParams.mustache
2020-10-26 12:38:01 +08:00
Dénes Harmath
1b67171d39 [javascript-flowtyped] Fix Flow error (#7382) (#7786)
* [javascript-flowtyped] Fix Flow error (#7382)

Fix deletion of search field

* [javascript-flowtyped] Regenerate sampe (#7382)
2020-10-26 10:28:33 +08:00
William Cheng
fe38a50365 [Ruby][faraday] fix response streaming (#7734)
* test file return

* fix stream response

* use options

* use local var

* fix nil tempfile

* fix tempfile

* fix tempfile

* use stream

* check content

* open temp file

* test ruby file download

* fix stream data

* test faraday

* catch connection error

* catch Faraday::ConnectionFailed

* catch all error

* use sream

* refactor

* fi download file in faraday

* local fix

* fi streaming download

* undo changess to spec, test

* undo changes to spec
2020-10-26 10:07:45 +08:00
Jon Schoning
37743c059b [haskell-http-client] have applyOptionalParemeter (-&-) append values in headers or querystrings instead of replacing values (#7805) 2020-10-25 19:15:43 -05:00
Maksym Melnychok
b70edd7f1b [python] Add option to return None instead of raising exception when accessing unset attribute (#7784)
* add option to return None instead of raising exception when accessing unset attribute

* update python samples

* reimplement getattr using getitem or get depending on attrNoneIfUnset

* move getattr and setattr to respective templates

* update docstrings, def get/setattr methods to have docstrings in them, use __dict__ to avoid recursion issues

* revert required_properties change

* add manual tests for .get method
2020-10-25 09:13:22 -07:00
William Cheng
07c23f4d1a comment out tests causing failure 2020-10-25 18:54:12 +08:00
itaru2622
3c62cc4867 Fix multi-part binary form parameters for jaxrs-jersey templates (#7363)
* Fix [jaxrs-jersey][java][jersey] multipart/form-data file array issue on generating jaxrs-jersey.

This commit aims to fix https://github.com/OpenAPITools/openapi-generator/issues/7330 with described solution 'choice C'.

* add test code [jaxrs-jersey][java][jersey] for multipart/form-data file on generating

* update test code [jaxrs-jersey][java][jersey] for multipart/form-data file on generating

followed latest master branch of OpenAPITools/openapi-generator

* update samples/* by executing ./bin/generate-samples.sh

* update mustaches for JavaJaxxRS/libraries/jersey1/* and samples/* to resolve failure of CI test on PR.
2020-10-25 18:05:43 +08:00
Aidan Hobson Sayers
c0e36b3ff6 Add impls for Error trait for Rust reqwest (#7462)
* Add impls for Error trait for Rust reqwest

* Update Rust samples
2020-10-25 18:00:50 +08:00
Rainer
e11a427cf5 changed request method from protected to public (#7603)
* changed request method from protected to public

* update samples

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-10-25 17:54:21 +08:00
Jim Schubert
f30d6c8399 Update check-supported-versions.yaml
Run Maven integration only on Java 8
2020-10-24 11:01:36 -04:00
Dean Eastwood
3be89e4c00 Fixes #7791 (#7792) 2020-10-23 19:51:13 +08:00
Andreas Metsälä
490068ad90 [typescript-fetch] serialize complex type in multipart/form-data as JSON (#7658) (#7677)
Complex types need to be serialized as JSON to avoid FormData.append()
from converting them into strings through .toString(). The generated
ToJSON mapper is used in case the value name has underscores or other
unusual characters.

Signed-off-by: Andreas Metsälä <andreas.metsala@gmail.com>
2020-10-23 09:01:21 +02:00
BenICE
9af73d0a0c [typescript-rxjs] Added support for servers (#7771)
* adding multiple servers support to typescript-rxjs

* regenerated typescript-rxjs samples

Co-authored-by: Schwartz, Benjamin <benjamin.schwartz@cgi.com>
2020-10-22 13:09:03 +02:00
Jim Schubert
a5aeb5fdec [core] Remove java specific imports from DefaultCodegen (#7763) 2020-10-22 17:43:17 +08:00
William Cheng
50f3706c5c Add gitignore to C# 2.0, Nancyfx generators (#7776)
* add gitignore to c# 2.0, nancyfx generators

* comment out csharp netstandard
2020-10-22 15:43:32 +08:00
cgensoul
aa28775295 Fixes #7757. Replace '.' characters by '_' in enum type names since OCaml doesn't allow to use '.' in any kind of identifiers. (#7767) 2020-10-22 15:35:00 +08:00
bullett445
8c084e2dc0 [php] Implement JsonSerializable in php Model class (#7768)
* Update model_generic.mustache

Implemented the JsonSerializable interface which allows to use json_encode() on the model object.
2020-10-22 10:34:15 +03:00
Jakesterwars
7e7bfc74de [cwiki] Path parameter generation fix for split rows (#6894)
* fix: path parameter issues

* chore: run generate samples once again

Co-authored-by: Jacob Keith <jkeith@aegistg.com>
2020-10-22 11:25:25 +08:00
William Cheng
e09d1bee43 [Java][webclient] fix missing dependencies in build.gradle (#7777)
* fix build.gradle in java webclient

* update junit version in samples
2020-10-21 21:29:53 +08:00
William Cheng
ee3dd70636 chagne codegen type to schema (#7775) 2020-10-21 18:56:56 +08:00
Dalibor Karlović
240c046f35 Small tweaks for php generator, PHPStan level 3 (#7616) 2020-10-21 10:38:10 +03:00
William Cheng
ec74b06d2c [Ruby] Replace DateTime with Time (#7656)
* replace DateTime with Time

* add require time

* update doc
2020-10-21 14:13:59 +08:00
William Cheng
b059b786a5 update c# gitignore (#7774) 2020-10-21 13:41:41 +08:00
Justin Black
28e92f9e32 Adds additionalProperties to core schema classes (#7761)
* Implements additionalProperties in CodegenParameter

* Implements additionalProperties in CodegenProperty

* Adds additionalProperties to CodegenModel

* Adds additionalProperties to CodegenResponse

* Adds additionalProperties examples for CodegenModel and CodegenProperty

* Adds test cases for CodegenParameter and CodegenResponse

* Adds testAdditionalPropertiesPresentInModelProperties

* Adds testAdditionalPropertiesPresentInResponses

* Adds underscore name for additionalProperties property, needed for CppTizenClientCodegen

* Changes prop name back to empty string, fixes CppTizenClientCodegen
2020-10-20 12:19:13 -07:00
William Cheng
19249e597c [C#][netcore] Add custom converters for oneOf models (#7766)
* add custom converter for oneof models

* remove custom logic when deserializing oneof response
2020-10-20 23:10:31 +08:00
William Cheng
072b309100 [C#][netcore] Add nullable support to oneOf models (#7750)
* add nullable support to C# oneOf models

* fix null reference exception
2020-10-20 14:50:03 +08:00
Ghufran Zahidi
12acf2eb72 [C#][netcore]Fixed the HTTPSigning to calculate the body diegest without CamelCase (#7755)
* Fixed the HTTPSigning to calculate the body diegest without CamelCase

* update samples

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-10-20 14:26:38 +08:00
Thibault Duperron
b1ea1ece87 [Ocaml] Fix missing space on models (#7742)
fix #7738
2020-10-20 13:32:12 +08:00
Jim Schubert
b28c3ee14a [maven] Run integration on master checks (#7762)
This adds the Maven integration tests to the Check Supported Java
Versions job which runs on master.

Maven on Windows was previously broken with templateDirectory. This was
fixed previously in a pull request, but the Maven plugin integration
testing did not work in our other CI vendors. This was tested and
verified in a private repo. The difference is likely due to vCPUs
available in GitHub Workflows differing from other free CI we use
elsewhere.
2020-10-19 22:23:36 -04:00
agilob
7318ff72d7 [Java][JVM] Move java specific import mappers to JVM specific code gen (#7569)
* Move java specific import mappers to java specific code gen

* Use JVM specific import mappers in kotlin, scala, groovy

* Update generators docs

* Add autogenerated files
2020-10-19 22:15:44 -04:00
William Cheng
d6c71ff0fb [java][jersey2] add proxy support (#7752)
* add client config getter and setter

* update gradle, sbt config

* update client config

* update samples

* add code sample to set proxy
2020-10-20 10:11:01 +08:00
William Cheng
c1f2b1cad9 [c#][netcore] add proxy support (#7741)
* add proxy support to c# netcore client

* add test, update doc
2020-10-20 10:05:37 +08:00
Go Shibata
5bac98cd99 [kotlin][jvm-retrofit2] Update templates (#7592)
* Fix indent of return tag

* Trim trailing whitespace

* Update samples

Co-authored-by: Jim Schubert <james.schubert@gmail.com>
2020-10-19 21:55:49 -04:00
Alex Facciorusso
1dec9ebfb8 [kotlin][jvm-retrofit2] Better code for OkHttp client passed to Retrofit builder (#7556)
* Better code for building Retrofit

By removing the nullable `usedClient` passed to Retrofit, the code is compatible with newer Retrofit versions which don't allow null as client.

* Updated Kotlin retrofit2 samples ApiClient
2020-10-19 21:48:14 -04:00
William Cheng
b733312707 update doc to include proxy instruction (#7749) 2020-10-19 22:14:34 +08:00
William Cheng
e8ba2901df auto load system web and net (#7748) 2020-10-19 13:55:43 +08:00
Justin Black
3d337db207 Unifies naming for isArray in Schema class properties (#7691)
* Updates key java files

* Adds all lingering isArray fixes

* Adds two files

* Reverts two cs files

* Fixes lingering isListContainer + isArrayModel references

* Some ensure up to date updates
2020-10-18 21:58:59 -07:00
Justin Black
2ee0913d4a Changes lingering isMapContainer to isMap (#7747)
* Changes lingering isMapContainer to isMap

* Adds ensure up to date updates
2020-10-18 20:07:33 -07:00
Cody Mikol
fed9d0637a CHORE[CORE]: replace deprecated methods (#7600)
replace setConfig and setOpenApi with the
non-deprecated config / openAPI methods

Co-authored-by: Peter Somogyvari <petermetz@users.noreply.github.com>
2020-10-18 21:56:43 -04:00
William Cheng
30fad9defa [PS] Add proxy support (#7739)
* add proxy support to powershell

* update api_client

* add proxy tests

* fix check

* add more check

* update samples

* fix proxy setting

* update docstring
2020-10-19 09:30:23 +08:00
Jim Schubert
ee1cbf6f4b [bug][maven] Fix custom windows classpaths in maven plugin (#7587)
* [maven] Fallback to templates using classpath rather than OS-specific paths

Previous checks would cause logic in Windows to return early, for
built-in templates only. This reorganizes and simplifies the ordering
behavior.

* Match classpath check in WorkflowSettings with that in TemplateManager

* [maven] Much needed unit/integration tests

This follows similar approach used in PMD and other plugins managed by
maven.

Unit tests simply verify we can load configuration as expected into the
Mojo.

Integration tests execute actual sample projects bound to the current
build's Maven plugin. This uses maven-invoker-plugin, which also allows
for specifying the maven options in invoker.properties to execute the test.
It also provides a verification framework using groovy files with the
required naming convention of "verify.groovy". This allows us to quickly
and easily check that certain files are outputted by generation, and we
may also spotcheck file contents.

templateResourcePath option is skipped on windows. I've tested back to
version 3.3.3 and this doesn't seem to have worked consistently with how
the property works on non-Windows.

* Set groovy 3.0.5 for test harness

* Print stacktrace on Maven error in Travis

* [maven] Set groovy version in tests to supported in Java 11+

* Puts maven integration tests in separate profile called 'integration'
2020-10-18 12:05:56 -04:00
Ben Sorohan
34d2e25899 [Typescript][Angular] Fix generated README when using apiModulePrefix (#7725) 2020-10-16 17:15:47 +02:00
William Cheng
c387d58d26 remove outdated scala files (#7723) 2020-10-16 22:50:34 +08:00
Ben Sorohan
cc5e0fee2d [FEAT][TYPESCRIPT-ANGULAR] Add configurationPrefix option to allow generating unique configuration token (#7731)
Closes #4101
2020-10-16 15:02:44 +02:00
Jim Schubert
41851b45e1 [bug] Fix FILES sort and path provider issue (#7729)
The FILES metadata is supplementary, but was logging a warning while
generating Ada client that FILES couldn't be written. An exception was
being thrown because Path was being reported as two different "types of
Path". One would be reported as mac file, while the other was reported
as a unix file. The fix here is to disconnect path details from the
underlying file system provider by creating a new Path based on the
file's absolute path. This change also fixes sorting so it works
alphabetically in ascending order.
2020-10-16 00:34:34 -04:00
William Cheng
e1e38c8783 better csharp tests (#7727) 2020-10-16 10:24:11 +08:00
Hippolyte HENRY
8afb067ec9 [go] Improve examples generation (#7576)
* fix go examples

* use constructor with required args
2020-10-16 00:04:30 +08:00
Michał Zubkowicz
e58b1f6abb Fixes #7635: typescript-inversify generator wrongly handles array type parameters (#7636) 2020-10-15 17:10:10 +02:00
Ioannis Ioannou
0ad39cc533 [Java] Fix import mapping for arrays with reference items of type string (#7182)
* fixed import mapping for arrays with component of type string

* changed test title

* generated samples

* Revert "generated samples"

This reverts commit b86a6fcdee.
2020-10-15 22:08:55 +08:00
bgong-mdsol
edf153eede [Java][Native] Support oneOf/anyOf schemas (#7263)
* Java-native add models of oneOf/anyOf

* Java-native refresh samples

* Java-native add a sample project for openapi3
2020-10-15 17:29:51 +08:00
William Cheng
f76d72edf1 [BUG][Ada] Incorrect client Ada code generated (#7719)
* Fix #7594: [BUG][Ada] Incorrect client Ada code generated

- Fix the identification of path parameters
- Fix the model and client to support FreeFormObject

* update doc

* fix errors, update samples

Co-authored-by: Stephane Carrez <Stephane.Carrez@gmail.com>
2020-10-15 17:26:07 +08:00
William Cheng
53eb67166b add cake, sbt integration (#7713) 2020-10-14 16:51:27 +08:00
William Cheng
b888423fd8 Use 3.0 spec in documentations, update docs (#7710)
* update npm set version, use 3_0 spec

* use 3_0 spec in website
2020-10-14 10:13:17 +08:00
William Cheng
6046c3da94 remove github.com/antihax/optional from go.sum (#7692) 2020-10-14 10:11:05 +08:00
William Cheng
b768e42704 Update junit to newer version (4.13.1) (#7690)
* update junit to newer version

* update junit to newer version
2020-10-14 10:10:32 +08:00
Noor Dawod
3c869d5b12 [Fix/Dart2] Resolve an exception with status 204 and no body. (#7647)
* Resolve an exception situation when a remote server returns 204 with no body.

* Only return a value when needed.

* Use HttpStatus codes instead of magic numbers.

* Drop checking for a body as it will consume too much memory.

* Cosmetic changes.
2020-10-13 23:30:49 +08:00
Dmitry Grachikov
177e536bdf [typescript-angular] pass array as a single JSON string to url query when queryParamObjectFormat=json (fix #7620) (#7649) 2020-10-13 08:32:26 +02:00
William Cheng
305d30102b Add back HttpSigningConfiguration.cs 2020-10-13 13:30:51 +08:00
William Cheng
45e6accf99 remove HTTPSigningConfiguration.cs 2020-10-13 13:28:55 +08:00
William Cheng
94c5a80551 add AnyType support to Swift generators (#7644) 2020-10-13 10:58:34 +08:00
William Cheng
a5083398de fix warning, remove trailing spaces (#7659) 2020-10-13 10:32:43 +08:00
Justin Black
0cfe02348b Unifies naming for isMap in Schema class properties (#7640)
* Updates isMapModel + isMapContainer -> isMap

* Removes git conflict characters
2020-10-12 09:12:37 -07:00
William Cheng
f8a71cab5c convert fromjson to static method (#7650) 2020-10-12 15:25:37 +08:00
William Cheng
bd329c13fb update website (#7655) 2020-10-12 15:21:34 +08:00
Justin Black
8fd9991ec2 Adds isDateTime to CodegenModel (#7657)
This reverts commit 2ec96f7f90.
2020-10-12 00:08:08 -07:00
Justin Black
2ec96f7f90 Revert "Adds isDateTime to CodegenModel"
This reverts commit 0a51c81f2e.
2020-10-11 21:14:35 -07:00
Justin Black
0a51c81f2e Adds isDateTime to CodegenModel 2020-10-11 21:12:16 -07:00
William Cheng
874b4a6472 [Ruby] fix DateTime default value (#7648)
* fix ruby default datetime value

* update samples for testing

* use datetime parse

* use Date.parse

* revert changes to spec
2020-10-12 11:49:03 +08:00
Justin Black
ee2a7352a1 Adds isDate to CodegenModel, adds test, adds isDate getter and setter to IJsonSchemaValidationProperties (#7652) 2020-10-11 11:06:47 -07:00
William Cheng
b208a311db [C#][netcore] Rename HTTPSigningConfiguration.cs to HttpSigningConfiguration.cs (#7630)
* rename HTTPSigningConfiguration.cs to HttpSigningConfiguration.cs

* update samples

* minor change
2020-10-11 12:25:38 +08:00
William Cheng
b0fa00b860 Fix typos in templating.md (#7646) 2020-10-11 11:12:35 +08:00
agilob
25d10bb6cc [dart] Move dart-dio to sit with other dart configs (#7593)
* Move dart-dio to other dart configs

* Run ./bin/generate-samples.sh
2020-10-10 18:22:52 +08:00
William Cheng
4acc8eab45 [C#][netcore] Add discriminator support to oneOf lookup (#7626)
* add discriminator support to oneOf lookup

* fix type check, removed unused code

* fix type check

* add options

* setLegacyDiscriminatorBehavior

* fix typo

* replace break with return

* use packageName
2020-10-10 18:20:30 +08:00
William Cheng
931c4e361f update samples 2020-10-10 17:10:32 +08:00
Michael Ramstein
242f648379 [Elixir] Fixes Typespec for multiple return definitions (#7604)
* Respects multiple responses during typespec generation

* Generate Samples
2020-10-10 11:18:04 +08:00
Vlastimil Šenfeld
53fb864c66 fix comment typo (#7605) 2020-10-10 11:12:55 +08:00
Noor Dawod
2984497731 Upgrade Dart2 template to advertised best-practices, plenty of additions too. (#7585)
* Updated Dart2 template.

* Generated Petstore client code for Dart2.

* Use double-quotes instead of single-quotes, to be consistent with output of Dart generator.

* Updated Petstore samples.

* Wrap few more places with triple curly parentheses.

* Generated Petstore files.

* Revert to using single quotes, fix Java generator too.

* Generated Petstore files.

* Lower case the content type value.

* Only lower-case content type when checking its value.

* Generated files from running "./bin/utils/ensure-up-to-date".

* Remove outdated comments for Dart1.

* Regenerate Petstore samples for Dart.

* Added a new option "pubLibrary".

* Added support for (de)serializing a DateTime into an epoch value.

* Make client variable a getter/setter, adjust docs.

* Fixed a small error in class template.

* Fix Dart documentation in API classes.

* Simplify test in HTTP Basic auth, remove unused lint rule.
2020-10-10 11:08:58 +08:00
Ghufran Zahidi
c6ab073a29 Fixed the empty string issue when server returns null (#7633) 2020-10-10 10:15:58 +08:00
Phillip Verheyden
214d81553f Fix typos in Javascript test clients (#7642)
Looks like this did not get propagated to these other JS clients from the original at 90859575eb
2020-10-10 10:15:14 +08:00
Phillip Verheyden
86fd8b1aa4 Add AnyType mapping of Object to Javascript codegen (#7643)
Resolves problems related to '....Module not found: Error: Can't resolve './AnyType' in...' errors when attempting to use generated Javascript code
2020-10-10 10:09:23 +08:00
Maksym Melnychok
8416fff568 [python-experimental] implement in operator for model classes (#7637)
* implement  operator for model classes

* refresh samples
2020-10-09 10:38:15 -07:00
Michael Ramstein
690be29f4b [Elixir] Fixes optional body mapping (#7606)
* Fixes optional body issue

* Generate Samples
2020-10-09 17:21:35 +08:00
William Cheng
fe31b9e2ce java jersey2: remove trailing whitespaces (#7632) 2020-10-09 17:11:23 +08:00
Lukáš Vasek
157c01d031 Fix scopes generation for multiple oauth flows (#7615)
* Fixed generation of oauth2 scopes for multiple oauth2 flows

* Fixed locale in string format

Co-authored-by: Jim Schubert <james.schubert@gmail.com>
2020-10-08 23:15:58 -04:00
William Cheng
44f713fc34 update tests with newer syntax (#7624) 2020-10-09 10:36:39 +08:00
Justin Black
d5002f4beb Adds missing items property to Java classes which store Schema info (#7621)
* Adds items getter and setter in IJsonSchemaValidationProperties

* Adds isModel interface

* Reverts file

* Fixes issue_7613.yaml schema for /array_with_validations_in_items/{items} response body

* Adds isModel to CodegenModel hash and print and comparison

* Updates CodegenResponse hash and comparison and print
2020-10-08 08:45:20 -07:00
William Cheng
3d36d491df replace tab with spaces (#7625) 2020-10-08 23:00:36 +08:00
William Cheng
001533fa63 fix warnings in HTTPSigningConfiguration (#7628) 2020-10-08 22:58:59 +08:00
William Cheng
a1c8e248e7 [C#][netcore] Add oneOf support to C# .NET Core client (#7607)
* add oneOf support to c# netcore

* add oneof support to c# netcore client

* update samples

* remove unused file

* add oneof support to response in api client

* add oneof support to serialize

* update samples

* fix actual instance, add more tests

* fix oneof handling in api client

* update tests
2020-10-08 15:46:36 +08:00
Rocky Warren
8d0053fa9f [typescript-axios]: Only call JSON.stringify on JSON request bodies (#7580)
* [typescript-axios]: Only serialize JSON request bodies

* Remove Regex and instead add a method in Configuration class

* Update samples
2020-10-08 08:15:42 +02:00
Justin Black
bbf9c30c7a Runs ensure up to date (#7622) 2020-10-07 19:21:06 -07:00
Justin Black
1c3d6e5e6f Revert "Adds ensure-up-to-date changes'"
This reverts commit 5fce12321e.
2020-10-07 19:09:38 -07:00
Justin Black
5fce12321e Adds ensure-up-to-date changes' 2020-10-07 19:03:39 -07:00
William Cheng
d8ba49b267 default OverrideSpecifiedNames to false (#7583) 2020-10-07 15:54:00 +08:00
Dalibor Karlović
b1da09625d [PHP] Small tweaks for php generator, PHPStan level 1 (#7528)
* Small tweaks for php generator, PHPStan level 1

Co-authored-by: Yuriy Belenko <yura-bely@mail.ru>
2020-10-07 09:21:24 +03:00
Tomohiro Suwa
08a1bdcb57 [Ruby] Feature/ruby client build from hash nullable array (#7609)
* Ruby Client: nullable build_from_hash for array type

* Genearte samples with 8217ecaeb
2020-10-07 02:14:56 +09:00
Hippolyte HENRY
cad0161f7e [ruby] fix default value for referenced schemas and enums (#7611)
* [ruby] fix default value for referenced schemas and enums

* generate samples
2020-10-07 01:27:41 +09:00
Guillaume GILL
9236d5699d Expose batch subcommand (#7608)
Co-authored-by: Guillaume GILL <g.gill@oceasoft.com>
2020-10-05 20:11:30 -04:00
Matthew Dowdell
8c11c8f582 [Rust Server] Fix server example on non-Linux (#7399)
* [Rust Server] Fix server example on non-Linux

The server example is broken because it tries to import `use openssl::ssl::SslAcceptorBuilder;` unconditionally when it won't be present on MacOS, Windows or iOS and then conditionally provides `create` causing compile errors on the aforementioned platforms.

To fix, we simply move the condition from the function to the import and all is happy again :)

* Update Samples

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-10-05 21:54:50 +01:00
agilob
ae95c2b19b Generate docs on 4 threads (#7586) 2020-10-05 23:31:51 +08:00
Jim Schubert
c0553ddc37 [bug][kotlin] Better escaping of var names (#7598) 2020-10-05 21:03:01 +08:00
henryh-force
e9c6d65f2d Updated keywords to be aligned with website https://developer.salesfo… (#7522)
* Updated keywords to be aligned with website https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_reserved_words.htm

* [samples] Regenerate

Co-authored-by: Jim Schubert <james.schubert@gmail.com>
2020-10-05 21:00:23 +08:00
William Cheng
8c17a01bda add anytype support to c# generators (#7599) 2020-10-05 20:58:51 +08:00
agilob
0e1d131076 Remove redundant browserClient (#7595) 2020-10-05 13:39:38 +08:00
agilob
61b543f03d [Dart] Removal of deprecated Dart generators and generated code (#7568)
* Remove old dart generated code

* Remove uses of SUPPORT_DART2

* Remove dart1 only flag BROWSER_CLIENT

* Remove supportDart2 and browserClient from docs

* Revert removal of credits of dart(1)

* Update getHelp in dartcodegen
2020-10-04 16:21:08 +08:00
William Cheng
4bde3a12d1 [C#][netcore] Add IsRequired to the model properties (#7590)
* add IsRequired to c# model properties

* add deserialization tests for pet

* revise test
2020-10-04 16:19:30 +08:00
Kuzma
4e5ecf271a [Python] correct return types if multiple responses are defined (#7427)
* update python mustache templates

* bug fix

* rm response_type

* generated samples

* resolve conflict

* samples

* set None if a type is empty

* regenerated samples
2020-10-03 08:37:08 -07:00
Sanjin Celeski
48762b5d4e Add TribalScale to the user list (#7579)
Co-authored-by: Sanjin Celeski <celeski.sanjin@gmail.com>
2020-10-02 15:49:29 -04:00
William Cheng
3560cd252b Add link to a blog post on generating Angular client (#7578)
Add link to a blog post on generating Angular client
2020-10-02 20:10:50 +08:00
William Cheng
a287c51b97 update default faraday versions (#7538) 2020-10-02 18:46:49 +08:00
Alexander Smaga
bb4e0c0058 [php][bug] Fix offsetGet in model generic to return offset rather than bool|null (#7571) 2020-10-01 22:15:05 -04:00
Jim Schubert
6ade544904 [ci] Clarify wording in ensure script output (#7512) 2020-10-01 22:06:35 -04:00
Jim Schubert
150e24dc55 [maven] environmentVariables -> globalProperties (#7559) 2020-10-01 21:33:17 -04:00
david1601
206f3f7238 [Java][Spring] Add Spring pagination with vendor extension x-spring-paginated (#5022)
Co-authored-by: Mathias Hinterndorfer <mathias.hinterndorfer@joyn-it.at>
Co-authored-by: Mathias Hinterndorfer <mathias.hinterndorfer@gmail.com>
Co-authored-by: Jim Schubert <james.schubert@gmail.com>
2020-10-01 21:32:22 -04:00
agilob
4fe76fcb01 [core] Make loggers static final where possible (#7562) 2020-10-01 21:28:39 -04:00
Lukáš Vasek
e1fd221898 [core] Enable multiple oauth2 flows (#7570) 2020-10-01 21:26:37 -04:00
William Cheng
626481bb07 Add tests for serialization of special property names (#7544)
* add test for serialization of special propery name

* comment out os dependent test
2020-10-01 20:38:01 +08:00
William Cheng
b7f5265ae5 remove apache license in jaxrs, update samples (#7553) 2020-10-01 15:03:59 +08:00
William Cheng
494c02e60f [core] Skip 443 for port mustache tag (#7531) 2020-09-30 22:30:43 -04:00
Jim Schubert
d854c89272 [docs] Add clarity around configuration options (#7547) 2020-09-30 20:56:28 -04:00
William Cheng
d6783c2f57 add plaid.co.jp logo (#7554) 2020-09-30 17:17:27 +08:00
Masahiro Yamauchi
130109748c Add PLAID, Inc. to the user list (#7552) 2020-09-30 16:58:41 +08:00
William Cheng
4bf81a0263 update microprofile default license info file (#7550) 2020-09-30 16:46:24 +08:00
William Cheng
e852d42693 Add SmartHR to the user list (#7551) 2020-09-30 16:00:16 +08:00
Slavek Kabrda
336521b464 [Python-experimental] Don't mandate passing in required value as argument (#7424)
* [Python-experimental] Don't mandate passing in required value as argument

* Remove usage of have_value

* Address additional review comments

* Fix tests according to the code change

* Does not set None as value initial value, removes hasRequired tag usage, updates docstring

Co-authored-by: Justin Black <justin.a.black@gmail.com>
2020-09-29 10:56:52 -07:00
Jeff Shantz
b8de51f2fd Update RetryConfiguration.mustache (#7495)
* Update RetryConfiguration.mustache

Use Policy<> instead of RetryPolicy<> to allow for use of wrapped policies.

* update samples

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-09-29 22:42:58 +08:00
Cody Mikol
6db283c03b [FIX][CLI] handle null result messages (#7472)
swagger-parser has the potential to return null
for messages which will throw NPE on
initialization of the  validationMessages hashset.
rather that allow this to happen we will assume
that a null message collection represents an empty
collection and continue.

Fixes #7453
2020-09-29 20:52:14 +08:00
William Cheng
f7570df5c3 [Aspnetcore] use the term openapi (#7540)
* use openapi in aspnetcore

* move back to other

* add back file
2020-09-29 20:46:12 +08:00
Jakub Surdej
2d30714d5e Allow auth.accessToken to be either function or string (#7484) 2020-09-29 10:56:38 +02:00
lchwe
3f18d0fd10 Dart - Fix default value of enum variables (#7496)
Co-authored-by: Lucas Chwe <lucas.chwe@gmail.com>
2020-09-29 00:27:38 +08:00
Bodo Graumann
54dd18535a [typescript] Fix generation of enum models (#7529)
This fixes #665 for the consolidated typescript generator.
Original fix for typescript-node was in PR #2266, merged as
8417c5bed0 in version 4.1.0.
2020-09-28 16:28:08 +02:00
William Cheng
d7dfcc20c0 Add server URL without variables to the test spec (#7517)
* add server url without variables to the test spec

* fix php tests

* fix tests

* fix assertion
2020-09-28 22:06:42 +08:00
Francesco Marini
785cbbbb63 [Swift5][URLSession] Fix handling of customHeaders between retries (#7527)
* fix: correct handling of customHeaders

Problem: custom headers could be overwritten between 
request retries following, e.g. a token refresh ( for example,
while implementing @4brunu refresh code :
https://github.com/OpenAPITools/openapi-generator/issues/5462#issuecomment-592417371 ).
A simple reordering of the modifiedRequest headers construction
solves the problem.

* fix: correct PetStore samples implementation [PR#7527]

Co-authored-by: Franz Marini <f.marini@opengate.biz>
2020-09-28 21:46:47 +08:00
William Cheng
8b39335859 fix php test using getter (#7525) 2020-09-28 16:09:09 +08:00
William Cheng
7a98580f45 Merge branch 'master' of https://github.com/openapitools/openapi-generator 2020-09-28 09:35:24 +08:00
William Cheng
b72d5ca81e comment out php test to fix travis failure 2020-09-28 09:29:36 +08:00
henryh-force
ec815ca33a [Apex] better handling of different content-type in the response (#7515)
* PR7500

* update samples

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-09-27 21:10:14 +08:00
Dalibor Karlović
2c59f1dc8c [php] Small tweaks for php generator (#7376) 2020-09-27 12:42:51 +03:00
Grigory Entin
a5ee2e0454 [Swift5] Fixed spelling for promise. (#7516) 2020-09-27 16:13:21 +08:00
Jim Schubert
cb4b03fcf3 [Core, HTML2] Rendered docs are incomplete (#7510)
Co-authored-by: Malachi Jones <malachi.jones@metaswitch.com>
2020-09-25 09:07:18 -04:00
Hui Yu
f608803a40 [C][Client]Support data callback function (#7467) 2020-09-25 20:34:17 +08:00
翠 / green
9ace82ae14 [typescript-axios] replace optional chaining (#7476)
To avoid requiring TypeScript above 3.7.2.
refs #7455
2020-09-25 14:27:29 +02:00
翠 / green
5472943134 [typescript-axios] fix refining query (#7475) 2020-09-25 14:01:04 +02:00
Ghufran Zahidi
d6bfecf2ef [powershell] Updated the Api doc with httpsiging script snippet. (#7499)
* Added the httpsigning code snippet for api doc

* Updated the sample

* update samples

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-09-25 16:54:14 +08:00
Hippolyte HENRY
9ba943318a [go][client] Fix API docs example generation (#7489)
* [go][client] Fix API docs example

* Generate samples
2020-09-25 14:45:18 +08:00
Jim Schubert
f3fbc7d782 [ci][test] Fix samples (#7509) 2020-09-24 23:42:04 -04:00
Marvin1912
5f3d974a08 [bug][Java] Honor instantiationMap for default values for array, map, set (#4982)
Co-authored-by: Jim Schubert <james.schubert@gmail.com>
2020-09-24 23:25:13 -04:00
Aidan Hobson Sayers
9778d970ac Fix stringifying of ~= (#7460)
Fixes #4069
2020-09-25 10:48:57 +08:00
William Cheng
5dffbabc74 minor formatting change (#7503) 2020-09-25 10:16:26 +08:00
Hippolyte HENRY
7b1563326a [ruby] Fix generation when generateAliasAsModel is enabled (#7419) 2020-09-24 22:08:57 -04:00
Jim Schubert
49760f7a34 [sonar][ci] Fixes some new recommended "bug" fixes found via Sonar (#7508) 2020-09-24 22:02:11 -04:00
William Cheng
596bbb9c58 Add option to set recursion limit (#7491)
* add option to set recursion limit

* fix test failure

* update doc

* add tests

* add missing import

* rename option to recursionLimit
2020-09-24 11:47:22 -07:00
William Cheng
29ca272a95 regenerate java pkmst petstore samples (#7502) 2020-09-25 00:25:23 +08:00
William Cheng
5ebf26e0d2 fix issue without http signature auth (#7504) 2020-09-24 23:56:50 +08:00
Jiri Kuncar
bc799b2488 [ruby] Support for per-operation servers (#7415)
* Support server configuration per operation

* regenerated+tests

* base_url fix

* support not templated urls

* revert update of ruby docs
2020-09-24 11:21:43 -04:00
William Cheng
7dd4fd1d98 Add a link to react native tutorial (#7505)
Add a link to react native tutorial
2020-09-24 22:24:56 +08:00
Thomas Beckmann
bdc964a6c1 update of Objective-C model-body.mustache to support discriminator.mappedModels (#7471)
Co-authored-by: Thomas Beckmann <thomas.beckmann@mway.io>
2020-09-24 17:44:14 +08:00
William Cheng
6612c16624 update samples 2020-09-24 16:37:20 +08:00
Jim Schubert
874c2a19d8 [ci] Sonar bug fixes (#7497)
* Fixing java:S3599 - Avoid double brace initializer

Because Double Brace Initialization (DBI) creates an anonymous class with a
reference to the instance of the owning object, its use can lead to memory
leaks if the anonymous inner class is returned and held by other objects. Even
when there's no leak, DBI is so obscure that it's bound to confuse most
maintainers.

* Fix incorrect List.contains typed check

* Avoid potential NPE in DefaultCodegen

* [fsharp] Remove unused boolean and log

* Fix potential NPE in Haskell http client

* Fix potential bugs in JavaCXFExtServerCodegen, found by static analysis
2020-09-24 00:20:40 -04:00
Ghufran Zahidi
94ed8187f9 fixed the backslash issue (#7492) 2020-09-24 10:07:19 +08:00
Ghufran Zahidi
56c9f0dc1e Fix the range check condition (#7482) 2020-09-24 10:02:04 +08:00
Jim Schubert
6e937ba9f9 [batch] Option to clean files before generation (#7465) 2020-09-23 08:50:23 -04:00
Jim Schubert
1716ee3154 [java][groovy] Fix mangled src paths in outputs on Windows (#7487) 2020-09-23 00:03:37 -04:00
William Cheng
d2aabc5f80 remove haskell stack installation in shippable ci (#7481) 2020-09-23 11:49:03 +08:00
William Cheng
8c78f13a41 remove hardcoded PetApi (#7483) 2020-09-22 11:45:29 -07:00
William Cheng
04b39cc86b remove SWGApiResponse.m (not used) (#7478) 2020-09-22 22:34:48 +08:00
William Cheng
2157d526e1 update samples 2020-09-22 20:45:22 +08:00
翠 / green
a5fcb17416 [typescript-axios] support "x-enum-descriptions" (#7477)
refs #1693 #1752
2020-09-22 12:55:09 +02:00
William Cheng
96bba3769b switch to another spec with more oneOf def (#7470) 2020-09-22 08:50:57 +08:00
William Cheng
f8c20c22e1 remove old csharp files under integration tests folder (#7466) 2020-09-22 07:42:41 +08:00
Peter Somogyvari
27680214fd feat(typescript-axios): injectable FormData (#7455)
Signed-off-by: Peter Somogyvari <peter.metz@unarin.com>
2020-09-21 09:07:10 +02:00
William Cheng
7fa02ee5f0 use typeMapping instead of postProcessParameter (#7457) 2020-09-21 15:05:43 +08:00
Aidan Hobson Sayers
be151fca64 Fix Rust codegen for AnyType (#7461) 2020-09-21 13:36:43 +08:00
William Cheng
985c4b36a7 [Ruby] fix port in the Ruby client (#7464)
* fix port in ruby client

* use serverPort instead

* update samples, skip if port is 80
2020-09-21 13:23:45 +08:00
Jim Schubert
a29d9a9ff4 [samples] Regenerate 2020-09-20 23:27:48 -04:00
Sebastien Rosset
4f27939879 [core] Add model cache to speed up code generation (#7250) 2020-09-20 22:15:32 -04:00
William Cheng
8cd503f194 Add a link to a post about angular reactiveforms (#7463) 2020-09-21 10:04:39 +08:00
Philipp Paris
c7d5275b62 [java] jaxrs (all) add usetags option (#6130)
* Adds "useTags" option to all jaxrs code generators (AbstractJAXRSServerCodegen):
  - jaxrs-jersey
  - jaxrs-spec
  - jaxrs-cxf-cdi
  - jaxrs-resteasy
  - jaxrs-cxf
  - jaxrs-cxf-extended
  - java-msf4j
  - jaxrs-resteasy-eap
* jaxrs-spec
  - Changed handling of root paths: e.g "/:", "/{id}:" to simplify code and create a more consistent behaviour
    -- old: use tag for classname
    -- new: use tag only if useTags is enabled, use "DefaultApi" if not
* @path class level annotation
  - for all generators above and the microprofile generator (uses same jaxrs postprocessing)
  - extended the "commonPath" to contain more than only the root path if possible
  - e.g. "/group1/subgroup1/op1" -> "/group1/subgroup1" is moved to class level annotation
2020-09-20 21:18:07 -04:00
Jim Schubert
3ca6bc2518 [sonar] Java 11, use -nsu, exclude maven/online projects (#7459) 2020-09-20 16:02:29 -04:00
spacether
35d42728d9 Adds free form model generation in python-experimental (#7373)
* Adds free form model generation in python-experimental

* Adds hasValidation property to codegenModel

* Adds separate variable val

* Samples regenerated

* Updates test_some_object.py

* Adds two more boolean conditions

* Runs ensure up to date

* Updates tests to check that models are or are not generated

* Removes unused import

* Updates model names in java test

* Removes unneeded test

* Cleans up tests
2020-09-20 10:55:54 -07:00
William Cheng
77f24a4234 [C#][netcore] replace tabs with 4-space (#7456)
* replace tab with 4-space

* add space after if
2020-09-21 00:08:31 +08:00
Yuriy Belenko
5675d5fe61 Fix bug when variables key doesn't exist (#7429) 2020-09-20 20:49:00 +08:00
Francesco Guardiani
80bef2f79a Update Vert.x Web template to Vert.x 4 (#7364)
* Update Vert.x Web template to Vert.x 4

Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>

* Bad pom

Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>

* Bad pom 2

Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>

* Stick to Java 8

Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>

* Latest vert.x 4

Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
2020-09-19 15:43:08 +08:00
William Cheng
ea559b5e20 [C#][NetCore] add multi-server support (#7433)
* multi server support in C# netcore clients

* switch to IReadOnlyDictionary

* minor fixes, add tests
2020-09-19 15:07:12 +08:00
Ghufz
92f7a306a1 [csharp-netcore]Http signing for csharp-netcore sdk (#7437)
* HTTPSigning implementation for CSharpSDK

* Updated the sample for HTTPSigning

* Updated the sample2 for HTTPSigning

* update samples

* HTTPSigning_For_Async

* update samples

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-09-19 12:09:35 +08:00
dtiller
3f7a3f2b59 [TYPO] [WEBCLIENT] Issue 7425: Fixed comments that referred to RestTemplate. (#7445)
* Issue 7425: Fixed comments that referred to RestTemplate.

* Ran genreate-samples.sh

* Re-ran generate-samples.sh against all configs.

* update samples

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-09-19 12:07:35 +08:00
Jim Schubert
29ed2342e5 Update sonar.yml
Add a 'sonar' branch to sonar scanning
2020-09-18 21:35:38 -04:00
William Cheng
874daad7e7 delete oudated objc files (#7449) 2020-09-18 18:27:33 +08:00
William Cheng
ef42977097 remove old test, regenerate js clients (#7448) 2020-09-18 14:14:23 +08:00
Adam Gray
7424489607 Fix scala-sttp enum generation (#7432)
* #7431 fix sttp enum generation

* avoid unnecessary sample changes
2020-09-18 10:59:45 +08:00
William Cheng
9754748321 [Perl] clean up old files and regenerate Perl petstore clients (#7439)
* clean up old files and regenrate perl petstore

* update samples
2020-09-18 10:30:32 +08:00
William Cheng
bfe4a7ff87 rename ts axios test (#7442) 2020-09-18 10:23:52 +08:00
Mahir Kothary
ca5d384081 [bug][typescript] Fix node client generator import file paths (#7410) 2020-09-17 21:46:39 -04:00
William Cheng
620f8db3d6 Add a link to PS blog post (#7444) 2020-09-17 18:56:59 +08:00
Fabio Mazzone
6a4aed91ca [javascript][client] Add gitignore to template (#7438)
* [javascript][client] add gitignore template file

* [javascript][client] update samples
2020-09-17 17:18:27 +08:00
dtiller
6909c888d2 [cli] Batch: support multiple/nested !include directive (#7354)
Co-authored-by: Jim Schubert <james.schubert@gmail.com>
2020-09-16 22:45:26 -04:00
Ella
bb00d88283 [kotlin] Fix optional header params in openhttp client (#7341)
This commit adjusts the kotlin openhttp api template to ignore null headers when building the request rather than convert them to "null" string
2020-09-16 22:09:38 -04:00
Nicholas Muesch
32c591d9a7 Support multiple api keys in python example documentation (#7417)
* Support multiple api keys in config option

* Regenerate samples

* Update rest of examples
2020-09-15 13:40:48 -07:00
Slavek Kabrda
be40dbe540 [Go][client] Re-add deleted model template files (#7423)
* [Go][client] Re-add deleted model template files

* Regenerate samples
2020-09-15 22:25:45 +08:00
William Cheng
c04d9cd59a rename debugging variables (#7422) 2020-09-15 21:25:52 +08:00
William Cheng
c44865279a replace spaces with tabs (#7421) 2020-09-15 18:13:07 +08:00
William Cheng
0b6229607f Add a link to Instana Blog (#7420) 2020-09-15 17:07:10 +08:00
Hippolyte HENRY
8dd3e561fa Use canonical path for template dir (#7388) 2020-09-14 12:22:14 -04:00
Gmtstephane
4e05912ae7 [GO][SERVER] Implement response code (#7397)
* Feature(template) add response with status code generation

* Generate Samples

* update samples

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-09-14 23:14:53 +08:00
spacether
8556cb8d71 Adds fix for issue 7372 (#7383) 2020-09-14 17:18:43 +08:00
typhoon2k
0173acd1d3 Fix package declaration (https://github.com/OpenAPITools/openapi-generator/issues/7122). (#7395) 2020-09-14 16:59:49 +08:00
Jim Schubert
bf0bd29ef1 [core][feature] User custom added templates (#7366) 2020-09-12 18:09:59 -04:00
Jason Lee
1a709a731b [Java] add cli option to ignore anyOf in enum (#4498)
Co-authored-by: Jim Schubert <james.schubert@gmail.com>
2020-09-12 18:09:39 -04:00
William Cheng
8fad36c898 [Go] minor format change, deprecate "withGoCodegenComment" option (#7375)
* use tab in comment, remove withGoCodegenComment

* deprecated option
2020-09-12 22:05:10 +08:00
Falanwe
634e3eb838 [cpp-ue4] add support for Content-Type containing charset (#7379) 2020-09-12 22:04:45 +08:00
Jean-François Côté
09200eb04e Update the for play 2.7 (#7398)
* Fix the new package that deal with Configuration (the old one is depecrated)

* First version to support Play Framework 2.7

* Fix small problems that prevent compilation of each samples. Now everything is compiling perfectly
2020-09-12 22:01:56 +08:00
Jim Schubert
684b77166b [docs] Add notes on Windows classpath modification (#7404) 2020-09-11 21:42:18 -04:00
William Cheng
0a2ef5a725 [C#][netcore] better support for additional properties in the payload (#7396)
* add OpenAPIAdditionalPropertiesConverter

* fix buges

* fix writeJson

* better code comment

* move converter to model

* use JsonExtensionData

* update hashcode, equal, tostring and more

* update samples
2020-09-12 01:39:19 +08:00
Ghufz
00e20ffb2c Fix the ECDSA signature issue for PowerShellSDK (#7386)
* Fix the ECDSA signature issue for PowerShellSDK

* updated the sample for ECDSA HTTPSigning

* fix the sample doc
2020-09-11 12:35:44 +08:00
Jean-François Côté
df441fe2ee Fix the new package that deal with Configuration (the old one is depecrated) (#7391) 2020-09-11 12:11:37 +08:00
William Cheng
f396da4c7e update vonage logo (#7387) 2020-09-10 18:53:45 +08:00
Jim Schubert
1eb8c2991d [gradle][plugin] Fix tests (#7384)
Tests running under Gradle 5.6.4 were breaking due to a change in
informational output. It's not clear when this was introduced, but it
looks like the upgrade to Gradle 5.6.4 may have stopped running tests
during builds.
2020-09-09 23:42:33 -04:00
Andrey Mochalov
4d8ac0e055 [typescript] Fix incorrect enum literal case (#7378)
* Fix incorrect enum values for typescript clients

* Fix incorrect enum values for typescript clients

* Fix incorrect enum values for typescript clients
2020-09-09 15:58:45 +02:00
JR Andreassen
37de486c43 Rust reqwest/api_mustache Missing api Vec in parameter (#7049)
* Rust reqwest/api_mustache Missing api Vec in parameter

Not using #isListContainer in parameters

* incorrect value for supportAsync

supportAsync set to "false" should be false

* Sample updates for CI

* Fixed Double Vec

Only check for special case...  "dataType" case includes Vec

* update samples

* remove old files

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-09-09 21:56:31 +08:00
Michael Wirth
7b6cc2032a [kotlin] Fix imports of generated class (#7314) 2020-09-08 20:56:48 -04:00
sbu
e7f83595e5 Properly decode $ref (#7191)
* Properly decode $ref
fixes #5720

* Specify decoding encoding

* Nicer syntax

* UTF-8 typo

* Unescape special characters

* Change order of unescaping to prevent escaped sequences by accident

* Comment for special decoding

Co-authored-by: Jim Schubert <james.schubert@gmail.com>

* Add unit test for simple ref decoding

Co-authored-by: Jim Schubert <james.schubert@gmail.com>
2020-09-08 23:12:56 +08:00
William Cheng
67ba67ef96 fix typo, update caption 2020-09-08 18:25:16 +08:00
Ramanth Addala
c39aef2a79 feat(r): retry configuration for status codes (#5925)
* feat(r): retry configuration for status codes

* fix(r) : fixing review comments
2020-09-08 14:34:32 +08:00
Gichan Im
f9514705a1 [json][codegen] Add option: outputFileName (#7348) 2020-09-07 15:29:47 +08:00
Ghufz
7ac7974ef5 RSACng class is not supported on linux replacing it by RSA (#7349)
* RSACng class is not supported on linux replacing it by RSA

* update PS samples

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-09-07 15:24:36 +08:00
Pete Kruskall
089e1f7271 Adds cookie auth support to ApiKeyAuth in dart2 templates (#7346)
* Adds cookie auth support to dart2 templates

* Updating pet store sample templates
2020-09-06 22:54:46 +08:00
Jim Schubert
9a6e3fa74a [js][flowtype] Bump lodash from 4.17.15 to 4.17.19 (#7359)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)
2020-09-06 22:53:52 +08:00
Markus Wandersee
06434fcfce Bugfix swift5 code generation 2966 (#7301)
* Bugfix StackOverflow Crash in Swift5 Code Generation (#2966)

* Bugfix StackOverflow Crash in Swift5 Code Generation (#2966)

* Bugfix StackOverflow Crash in Swift5 Code Generation (#2966)
2020-09-06 22:05:16 +08:00
spacether
681e821b71 Syncs validation properties for arraymodels (#7357)
* Syncs validation properties for arraymodels

* Adds arrayModelHasValidation test
2020-09-05 18:02:00 -07:00
Ryan Rishi
2d5b2726d0 Subclass Python exceptions (#7321)
* Subclass Python exceptions:
- UnauthorizedException (401)
- ForbiddenException (403)
- NotFoundException (404)
- ServiceException [500 - 599]

Fixes #2151

* add generated sample code

* use Python 2 flavor inheritance

* regenerate samples
2020-09-05 10:22:04 -07:00
spacether
b38968456a Adds fix for issue7262 and a test of it (#7328)
* Adds fix for issue7262 and a test of it

* Updates inline schema to not include properties

* Adds null check of discriminator

* Updates issue sample file
2020-09-05 08:51:51 -07:00
William Cheng
dd42e0e428 add spacether to pom developer section (#7355) 2020-09-05 23:48:47 +08:00
Hui Yu
0e2e031ece [C][Client][Clang Static Analyzer] Fix uninitialized argument value for valueHeader_ and valueForm_ (#7332) 2020-09-04 21:37:31 +08:00
Robin Eggenkamp
5e512e8aa4 Remove duplicate jackson-datatype-jsr310 dependency (#7338) 2020-09-04 21:35:13 +08:00
Falanwe
662c77a283 [cpp-ue4] add support for empty response (#7333) 2020-09-04 21:32:29 +08:00
William Cheng
2fd23f505e Prepare 5.0.0-SNAPSHOT (#7347)
* Revert "Prepare 5.0.0-beta2 release (#7345)"

This reverts commit 212b4f7847.

* update readme
2020-09-04 15:31:54 +08:00
William Cheng
212b4f7847 Prepare 5.0.0-beta2 release (#7345)
* update version

* update doc

* update samples
2020-09-04 13:03:45 +08:00
William Cheng
14d41310b9 [Go] replace go generator with go-experimental generator (#7337)
* replace go with go-experimental

* update samples

* extends with abstract go class

* rearrange

* remove deprecated

* minor fix

* remove go deprecated samples

* update pom, clean up samples

* mark generator as deprecated
2020-09-04 09:56:42 +08:00
William Cheng
1f50207bda [doc] Update new-generator steps (new.sh) (#7336)
* [doc] Update new-generator steps (new.sh) (#7334)

* remove CommonMarkDocumentationCodegen

Co-authored-by: Jim Schubert <james.schubert@gmail.com>
2020-09-03 22:04:43 +08:00
William Cheng
e0ec332e38 Revert "[doc] Update new-generator steps (new.sh) (#7334)" (#7335)
This reverts commit 151752aa9d.
2020-09-03 14:21:26 +08:00
Jim Schubert
151752aa9d [doc] Update new-generator steps (new.sh) (#7334) 2020-09-02 22:14:52 -04:00
Jim Schubert
a6d30cac9d [core] Templating: limit compilation to supported extensions and constrain target paths (#6598) 2020-09-02 15:52:35 -04:00
Hippolyte HENRY
91ea6a17d9 [Java] Unalias type when generating default value for model property (#5017)
Co-authored-by: Jim Schubert <james.schubert@gmail.com>
2020-09-02 07:52:38 -04:00
William Cheng
966b87e66c add aws v4 signature support to go-experimental (#7326) 2020-09-02 15:28:22 +08:00
William Cheng
d50d31cd5e add structPrefix support to go-experimental (#7327) 2020-09-01 20:51:37 +08:00
William Cheng
20eb4d0b91 Add a link to SmartHR Tech Blog (#7324) 2020-09-01 11:01:23 +08:00
Jim Schubert
26bb348354 Revert "Correct allOf with only one child schema (no discriminator)" (#7323)
This reverts commit 972120c35a.
2020-08-31 22:46:57 -04:00
William Cheng
972120c35a Correct allOf with only one child schema (no discriminator) (#6901) 2020-08-31 21:47:18 -04:00
Arvind Thirunarayanan
ab5b0fa8d4 [Go]: Interface definitions for api functions (#5914)
Introduces a new "generateInterfaces" option, allowing for better testability of generated clients
2020-08-31 21:43:40 -04:00
William Cheng
9fd66fbbcb Update bug_report.md (#7320) 2020-08-31 21:09:13 -04:00
William Cheng
19c5ed783a update samples 2020-08-31 23:17:55 +08:00
Oleh Kurpiak
14a500c6fe [Java][Client] Use java8 OffsetDateTime for clients (#7190)
* use java8 OffsetDateTime for clients

* use java8 OffsetDateTime for clients

* fix javadoc

* add javadoc to JavaTimeFormatter.mustache

* add javadoc to JavaTimeFormatter.mustache

* add javadoc to JavaTimeFormatter.mustache
2020-08-31 22:31:28 +08:00
Patouche
b9662dc25d [java] Intro openApiNullable property to enable/disable OpenAPI Jackson Nullable library (#6154)
* Add option to prevent usage of jackson-nullable (#2901)

Add a option for all java client and server to prevent
usage of third party library (jackson-databind-nullable)
which may be forbidden in some company

Add samples for Vertx, Spring MVC, Spring Cloud, Feign and Play

Upgrade dependencies for org.openapitools:jackson-databind-nullable

* Samples - Remove dependency org.openapitools:jackson-databind-nullable (#2901)

* Fix generation of gradle file for vertx (#2901)

* Regenerate samples (#2901)

* Fix documentation and up to date (#2901)

* Fix forgotten regeneration of vertx after dependency integration (#2901)

* Regenerate template after rebase (#2901)

* Use yaml config files introduce in #6509 to manage samples (#2901)

* Regenerate template using the config (#2901)

* Fix bad version during testing generated samples (#2901)

* Regenerate template after fix bad version (#2901)

* Fix merge, allow for set importing on codegen model

Co-authored-by: Jim Schubert <james.schubert@gmail.com>
2020-08-31 21:25:18 +08:00
William Cheng
7032c401ea [Spring Boot] update dependencies, mark java8 option as deprecated (#7306)
* update springboot dependencies

* update doc

* update samples
2020-08-31 13:53:50 +08:00
Gmtstephane
15de43f7e4 Remove dot in golang type (#7307) 2020-08-31 13:50:20 +08:00
Jim Schubert
8eea149e14 [doc] Document usage of post-process file feature (#7315) 2020-08-31 13:44:44 +08:00
QP Hou
30074833cd fix http bear auth documentation for go clinets (#7312) 2020-08-31 13:43:34 +08:00
Jiri Kuncar
d5a680e85f [Extensions][Go][Java] Test x-auth-id-alias (#6642)
Co-authored-by: Jim Schubert <james.schubert@gmail.com>
2020-08-30 21:46:55 -04:00
8595 changed files with 445066 additions and 203074 deletions

View File

@@ -11,10 +11,10 @@ assignees: ''
- [ ] Have you provided a full/minimal spec to reproduce the issue?
- [ ] Have you validated the input using an OpenAPI validator ([example](https://apidevtools.org/swagger-parser/online/))?
- [ ] What's the version of OpenAPI Generator used?
- [ ] Have you search for related issues/PRs?
- [ ] Have you [tested with the latest master](https://github.com/OpenAPITools/openapi-generator/wiki/FAQ#how-to-test-with-the-latest-master-of-openapi-generator) to confirm the issue still exists?
- [ ] Have you searched for related issues/PRs?
- [ ] What's the actual output vs expected output?
- [ ] [Optional] Bounty to sponsor the fix ([example](https://www.bountysource.com/issues/66123212-javascript-client-produces-a-wrong-object-for-a-string-enum-type-that-is-used-with-ref))
- [ ] [Optional] Sponsorship to speed up the bug fix or feature request ([example](https://github.com/OpenAPITools/openapi-generator/issues/6178))
<!--
Please follow the issue template below for bug reports.

View File

@@ -6,7 +6,7 @@ on:
jobs:
build:
name: Build on JDK ${{ matrix.java }} and ${{ matrix.os }}
name: 'Build: JDK ${{ matrix.java }} (${{ matrix.os }})'
runs-on: ${{ matrix.os }}
strategy:
matrix:
@@ -48,10 +48,6 @@ jobs:
shell: bash
run: mvn -nsu -B --quiet -Djacoco.skip=true -Dorg.slf4j.simpleLogger.defaultLogLevel=error --no-transfer-progress clean install --file pom.xml ${{ matrix.flags }}
- name: Test gradle
shell: bash
run: gradle -b modules/openapi-generator-gradle-plugin/samples/local-spec/build.gradle buildGoSdk --stacktrace
- name: Upload Maven build artifact
uses: actions/upload-artifact@v1
if: matrix.java == '8' && matrix.os == 'ubuntu-latest'
@@ -59,8 +55,19 @@ jobs:
name: artifact
path: modules/openapi-generator-cli/target/openapi-generator-cli.jar
- name: Test Gradle plugin usage
shell: bash
run: gradle -b modules/openapi-generator-gradle-plugin/samples/local-spec/build.gradle buildGoSdk --stacktrace
- name: Test Maven plugin integration
if: matrix.java == '8'
shell: bash
run: |
cd modules/openapi-generator-maven-plugin
mvn verify -Pintegration
verify:
name: Verifies integrity of the commit on ${{ matrix.os }}
name: Verify outputs on ${{ matrix.os }}
needs: build
runs-on: ${{ matrix.os }}
strategy:

View File

@@ -4,6 +4,7 @@ on:
branches:
- master
- '[4-9]+.[0-9]+.x'
- sonar
jobs:
build:
@@ -12,13 +13,13 @@ jobs:
steps:
- uses: actions/checkout@v1
- name: Set up JDK 1.8
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 1.8
java-version: 11
- name: Compile with Maven
run: mvn clean package jacoco:report
run: mvn -B -q clean install jacoco:report
- name: Jacoco Aggregate
run: mvn jacoco:report-aggregate
- name: Publish to Sonar
run: mvn -B -q sonar:sonar -Dsonar.projectKey=OpenAPITools_openapi-generator -Dsonar.organization=openapitools -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${{ secrets.SONAR_LOGIN }} -Dsonar.branch.name=${GITHUB_REF##*/}
run: mvn -B -q -nsu sonar:sonar -Dsonar.projectKey=OpenAPITools_openapi-generator -Dsonar.organization=openapitools -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${{ secrets.SONAR_LOGIN }} -Dsonar.branch.name=${GITHUB_REF##*/}

14
.gitignore vendored
View File

@@ -234,11 +234,15 @@ samples/client/petstore/erlang-proper/rebar.lock
samples/server/petstore/erlang-server/_build/
samples/server/petstore/erlang-server/rebar.lock
# dart
samples/client/petstore/dart/petstore/packages
samples/client/petstore/dart/flutter_petstore/test/packages
samples/client/petstore/dart/petstore/test/packages
**/.dart_tool
# Dart
**/dart*/**/.dart_tool
**/dart*/**/.packages
**/dart*/**/pubspec.lock
# Dart dio
**/dart*/**/*.g.dart
# Dart jaguar
**/dart*/**/*.jser.dart
**/dart*/**/*.jretro.dart
# JS
samples/client/petstore/javascript-es6/package-lock.json

View File

@@ -140,6 +140,8 @@ install:
script:
# fail fast
- set -e
# fail if the test files have changes
- bin/utils/detect_test_file_changes.rb bin/utils/test_file_list.yaml
# fail if templates/generators contain carriage return '\r'
- /bin/bash ./bin/utils/detect_carriage_return.sh
# fail if generators contain merge conflicts
@@ -148,8 +150,8 @@ script:
- /bin/bash ./bin/utils/detect_tab_in_java_class.sh
# run integration tests defined in maven pom.xml
# WARN: Travis will timeout after 10 minutes of no stdout/stderr activity, which is problematic with mvn --quiet.
- mvn --no-snapshot-updates --quiet --batch-mode --show-version clean install -Dorg.slf4j.simpleLogger.defaultLogLevel=error
- mvn --no-snapshot-updates --quiet --batch-mode --show-version verify -Psamples -Dorg.slf4j.simpleLogger.defaultLogLevel=error
- mvn -e --no-snapshot-updates --quiet --batch-mode --show-version clean install -Dorg.slf4j.simpleLogger.defaultLogLevel=error
- mvn -e --no-snapshot-updates --quiet --batch-mode --show-version verify -Psamples -Dorg.slf4j.simpleLogger.defaultLogLevel=error
after_success:
# push to maven repo
- if [ $SONATYPE_USERNAME ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then

View File

@@ -2,6 +2,15 @@ kind: pipeline
name: default
steps:
# test protobuf schema generator
- name: protobuf-schema-test
image: nanoservice/protobuf-go
commands:
- protoc --version
- mkdir /var/tmp/go/
- cd samples/config/petstore/protobuf-schema
- protoc --go_out=/var/tmp/go/ services/*
- protoc --go_out=/var/tmp/go/ models/*
# test aspnetcore 3.x
- name: aspnetcore-test
image: mcr.microsoft.com/dotnet/core/sdk:3.1
@@ -28,11 +37,12 @@ steps:
- name: java11-test
image: openjdk:11.0
commands:
- ./mvnw -quiet clean install -Dorg.slf4j.simpleLogger.defaultLogLevel=error
- ./mvnw --quiet clean install -Dorg.slf4j.simpleLogger.defaultLogLevel=error
- ./mvnw --quiet verify -Psamples.droneio -Dorg.slf4j.simpleLogger.defaultLogLevel=error
# test java native client
- ./mvnw clean test -f samples/client/petstore/java/native/pom.xml
- ./mvnw clean test -f samples/client/petstore/java/native-async/pom.xml
- ./mvnw clean test -f samples/openapi3/client/petstore/java/native/pom.xml
# test all generators with fake petstore spec (2.0, 3.0)
- /bin/bash bin/utils/test-fake-petstore-for-all.sh
# generate test scripts

View File

@@ -87,9 +87,7 @@ To add test cases (optional) covering the change in the code generator, please r
To test the templates, please perform the following:
- Update the Petstore sample by running the shell scripts under the `bin` folder. For example, run `./bin/generate-samples.sh .
/bin/configs/python*` to update the Python-related samples under [`samples`](https://github.com/openapitools/openapi-generator/tree/master/samples). For Windows, please install [GIT bash](https://gitforwindows.org/). (If you find that there are new files g
enerated or unexpected changes as a result of the update, that's not unusual as the test cases are added to the OpenAPI spec fro
m time to time. If you've questions or concerns, please open a ticket to start a discussion)
/bin/configs/python*` to update the Python-related samples under [`samples`](https://github.com/openapitools/openapi-generator/tree/master/samples). For Windows, please install [GIT bash](https://gitforwindows.org/). (If you find that there are new files generated or unexpected changes as a result of the update, that's not unusual as the test cases are added to the OpenAPI spec from time to time. If you've questions or concerns, please open a ticket to start a discussion)
- During development it can be helpful to quickly regenerate the samples without recompiling all of openapi-generator, e.g. when you have only updated the mustache templates. This can be done by passing the `-t` parameter: `-t modules/openapi-generator/src/main/resources/python`.
- Run the tests in the sample folder using maven `mvn integration-test -f /path/to/pom.xml`, e.g. `mvn integration-test -f samples/client/petstore/python/pom.xml`. (some languages may not contain unit testing for Petstore and we're looking for contribution from the community to implement those tests)
- Finally, git commit the updated samples files: `git commit -a`

View File

@@ -3,13 +3,13 @@
<div align="center">
[![Stable releaases in Maven Central](https://img.shields.io/maven-metadata/v/https/repo1.maven.org/maven2/org/openapitools/openapi-generator/maven-metadata.xml.svg)](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.openapitools%22%20AND%20a%3A%22openapi-generator%22) [![Apache 2.0 License](https://img.shields.io/badge/License-Apache%202.0-orange)](./LICENSE) ![Open Collective backers](https://img.shields.io/opencollective/backers/openapi_generator?color=orange&label=OpenCollective%20Backers) [![Join the Slack chat room](https://img.shields.io/badge/Slack-Join%20the%20chat%20room-orange)](https://join.slack.com/t/openapi-generator/shared_invite/enQtNzAyNDMyOTU0OTE1LTY5ZDBiNDI5NzI5ZjQ1Y2E5OWVjMjZkYzY1ZGM2MWQ4YWFjMzcyNDY5MGI4NjQxNDBiMTlmZTc5NjY2ZTQ5MGM) [![Follow OpenAPI Generator Twitter account to get the latest update](https://img.shields.io/twitter/follow/oas_generator.svg?style=social&label=Follow)](https://twitter.com/oas_generator)
[![Stable releaases in Maven Central](https://img.shields.io/maven-metadata/v/https/repo1.maven.org/maven2/org/openapitools/openapi-generator/maven-metadata.xml.svg)](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.openapitools%22%20AND%20a%3A%22openapi-generator%22) [![Apache 2.0 License](https://img.shields.io/badge/License-Apache%202.0-orange)](./LICENSE) ![Open Collective backers](https://img.shields.io/opencollective/backers/openapi_generator?color=orange&label=OpenCollective%20Backers) [![Join the Slack chat room](https://img.shields.io/badge/Slack-Join%20the%20chat%20room-orange)](https://join.slack.com/t/openapi-generator/shared_invite/enQtNzAyNDMyOTU0OTE1LTY5ZDBiNDI5NzI5ZjQ1Y2E5OWVjMjZkYzY1ZGM2MWQ4YWFjMzcyNDY5MGI4NjQxNDBiMTlmZTc5NjY2ZTQ5MGM) [![Follow OpenAPI Generator Twitter account to get the latest update](https://img.shields.io/twitter/follow/oas_generator.svg?style=social&label=Follow)](https://twitter.com/oas_generator)
</div>
<div align="center">
[Master](https://github.com/OpenAPITools/openapi-generator/tree/master) (`5.0.0`):
[Master](https://github.com/OpenAPITools/openapi-generator/tree/master) (`5.0.0`):
[![Build Status](https://img.shields.io/travis/OpenAPITools/openapi-generator/master.svg?label=Integration%20Test)](https://travis-ci.org/OpenAPITools/openapi-generator)
[![Integration Test2](https://circleci.com/gh/OpenAPITools/openapi-generator.svg?style=shield)](https://circleci.com/gh/OpenAPITools/openapi-generator)
[![Run Status](https://api.shippable.com/projects/5af6bf74e790f4070084a115/badge?branch=master)](https://app.shippable.com/github/OpenAPITools/openapi-generator)
@@ -30,7 +30,7 @@
:notebook_with_decorative_cover: The eBook [A Beginner's Guide to Code Generation for REST APIs](https://gum.co/openapi_generator_ebook) is a good starting point for beginners :notebook_with_decorative_cover:
:warning: If the OpenAPI spec, templates or any input (e.g. options, environment variables) is obtained from an untrusted source or environment, please make sure you've reviewed these inputs before using OpenAPI Generator to generate the API client, server stub or documentation to avoid potential security issues (e.g. [code injection](https://en.wikipedia.org/wiki/Code_injection)) :warning:
:warning: If the OpenAPI spec, templates or any input (e.g. options, environment variables) is obtained from an untrusted source or environment, please make sure you've reviewed these inputs before using OpenAPI Generator to generate the API client, server stub or documentation to avoid potential security issues (e.g. [code injection](https://en.wikipedia.org/wiki/Code_injection)). For security vulnerabilities, please contact [team@openapitools.org](mailto:team@openapitools.org). :warning:
:bangbang: Both "OpenAPI Tools" (https://OpenAPITools.org - the parent organization of OpenAPI Generator) and "OpenAPI Generator" are not affiliated with OpenAPI Initiative (OAI) :bangbang:
@@ -60,7 +60,7 @@ OpenAPI Generator allows generation of API client libraries (SDK generation), se
| | Languages/Frameworks |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **API clients** | **ActionScript**, **Ada**, **Apex**, **Bash**, **C**, **C#** (.net 2.0, 3.5 or later, .NET Standard 1.3 - 2.0, .NET Core 2.0), **C++** (cpp-restsdk, Qt5, Tizen), **Clojure**, **Dart (1.x, 2.x)**, **Elixir**, **Elm**, **Eiffel**, **Erlang**, **Go**, **Groovy**, **Haskell** (http-client, Servant), **Java** (Jersey1.x, Jersey2.x, OkHttp, Retrofit1.x, Retrofit2.x, Feign, RestTemplate, RESTEasy, Vertx, Google API Client Library for Java, Rest-assured, Spring 5 Web Client, MicroProfile Rest Client), **k6**, **Kotlin**, **Lua**, **Nim**, **Node.js/JavaScript** (ES5, ES6, AngularJS with Google Closure Compiler annotations, Flow types, Apollo GraphQL DataStore), **Objective-C**, **OCaml**, **Perl**, **PHP**, **PowerShell**, **Python**, **R**, **Ruby**, **Rust** (rust, rust-server), **Scala** (akka, http4s, scalaz, sttp, swagger-async-httpclient), **Swift** (2.x, 3.x, 4.x, 5.x), **Typescript** (AngularJS, Angular (2.x - 8.x), Aurelia, Axios, Fetch, Inversify, jQuery, Node, Rxjs) |
| **API clients** | **ActionScript**, **Ada**, **Apex**, **Bash**, **C**, **C#** (.net 2.0, 3.5 or later, .NET Standard 1.3 - 2.0, .NET Core 2.0), **C++** (cpp-restsdk, Qt5, Tizen), **Clojure**, **Dart**, **Elixir**, **Elm**, **Eiffel**, **Erlang**, **Go**, **Groovy**, **Haskell** (http-client, Servant), **Java** (Jersey1.x, Jersey2.x, OkHttp, Retrofit1.x, Retrofit2.x, Feign, RestTemplate, RESTEasy, Vertx, Google API Client Library for Java, Rest-assured, Spring 5 Web Client, MicroProfile Rest Client), **k6**, **Kotlin**, **Lua**, **Nim**, **Node.js/JavaScript** (ES5, ES6, AngularJS with Google Closure Compiler annotations, Flow types, Apollo GraphQL DataStore), **Objective-C**, **OCaml**, **Perl**, **PHP**, **PowerShell**, **Python**, **R**, **Ruby**, **Rust** (rust, rust-server), **Scala** (akka, http4s, scalaz, sttp, swagger-async-httpclient), **Swift** (2.x, 3.x, 4.x, 5.x), **Typescript** (AngularJS, Angular (2.x - 8.x), Aurelia, Axios, Fetch, Inversify, jQuery, Node, Rxjs) |
| **Server stubs** | **Ada**, **C#** (ASP.NET Core, NancyFx), **C++** (Pistache, Restbed, Qt5 QHTTPEngine), **Erlang**, **F#** (Giraffe), **Go** (net/http, Gin), **Haskell** (Servant), **Java** (MSF4J, Spring, Undertow, JAX-RS: CDI, CXF, Inflector, Jersey, RestEasy, Play Framework, [PKMST](https://github.com/ProKarma-Inc/pkmst-getting-started-examples), [Vert.x](https://vertx.io/)), **Kotlin** (Spring Boot, Ktor, Vertx), **PHP** (Laravel, Lumen, Slim, Silex, [Symfony](https://symfony.com/), [Zend Expressive](https://github.com/zendframework/zend-expressive)), **Python** (Flask), **NodeJS**, **Ruby** (Sinatra, Rails5), **Rust** (rust-server), **Scala** (Akka, [Finch](https://github.com/finagle/finch), [Lagom](https://github.com/lagom/lagom), [Play](https://www.playframework.com/), Scalatra) |
| **API documentation generators** | **HTML**, **Confluence Wiki**, **Asciidoc** |
| **Configuration files** | [**Apache2**](https://httpd.apache.org/) |
@@ -103,8 +103,7 @@ The OpenAPI Specification has undergone 3 revisions since initial creation in 20
| OpenAPI Generator Version | Release Date | Notes |
| --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------- |
| 5.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/5.0.0-SNAPSHOT/) | TBD | Major release with breaking changes (no fallback) |
| 5.0.0-beta2 (upcoming beta release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/5.0.0-SNAPSHOT/) | 30.07.2020 | Major beta release with breaking changes (no fallback) |
| [5.0.0-beta](https://github.com/OpenAPITools/openapi-generator/releases/tag/v5.0.0-beta) (latest beta release) | 30.06.2020 | Major beta release with breaking changes (no fallback) |
| [5.0.0-beta3](https://github.com/OpenAPITools/openapi-generator/releases/tag/v5.0.0-beta3) (latest beta release) | 20.11.2020 | Major beta release with breaking changes (no fallback) |
| [4.3.1](https://github.com/OpenAPITools/openapi-generator/releases/tag/v4.3.1) (latest stable release) | 06.05.2020 | Patch release (enhancements, bug fixes, etc) |
OpenAPI Spec compatibility: 1.0, 1.1, 1.2, 2.0, 3.0
@@ -161,16 +160,16 @@ See the different versions of the [openapi-generator-cli](https://mvnrepository.
<!-- RELEASE_VERSION -->
If you're looking for the latest stable version, you can grab it directly from Maven.org (Java 8 runtime at a minimum):
JAR location: `https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/5.0.0-beta/openapi-generator-cli-5.0.0-beta.jar`
JAR location: `https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/5.0.0-beta3/openapi-generator-cli-5.0.0-beta3.jar`
For **Mac/Linux** users:
```sh
wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/5.0.0-beta/openapi-generator-cli-5.0.0-beta.jar -O openapi-generator-cli.jar
wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/5.0.0-beta3/openapi-generator-cli-5.0.0-beta3.jar -O openapi-generator-cli.jar
```
For **Windows** users, you will need to install [wget](http://gnuwin32.sourceforge.net/packages/wget.htm) or you can use Invoke-WebRequest in PowerShell (3.0+), e.g.
```
Invoke-WebRequest -OutFile openapi-generator-cli.jar https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/5.0.0-beta/openapi-generator-cli-5.0.0-beta.jar
Invoke-WebRequest -OutFile openapi-generator-cli.jar https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/5.0.0-beta3/openapi-generator-cli-5.0.0-beta3.jar
```
After downloading the JAR, run `java -jar openapi-generator-cli.jar help` to show the usage.
@@ -254,7 +253,7 @@ To install, run `brew install openapi-generator`
Here is an example usage to generate a Ruby client:
```sh
openapi-generator generate -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g ruby -o /tmp/test/
openapi-generator generate -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml -g ruby -o /tmp/test/
```
To reinstall with the latest master, run `brew uninstall openapi-generator && brew install --HEAD openapi-generator`
@@ -289,7 +288,7 @@ Example:
```sh
docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli generate \
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml \
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml \
-g go \
-o /local/out/go
```
@@ -314,12 +313,12 @@ GEN_IP=$(docker inspect --format '{{.NetworkSettings.IPAddress}}' $CID)
# Execute an HTTP request to generate a Ruby client
> curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \
-d '{"openAPIUrl": "https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml"}' \
-d '{"openAPIUrl": "https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml"}' \
'http://localhost:8888/api/gen/clients/ruby'
{"code":"c2d483.3.4672-40e9-91df-b9ffd18d22b8","link":"http://localhost:8888/api/gen/download/c2d483.3.4672-40e9-91df-b9ffd18d22b8"}
# Download the generated zip file
# Download the generated zip file
> wget http://localhost:8888/api/gen/download/c2d483.3.4672-40e9-91df-b9ffd18d22b8
# Unzip the file
@@ -350,7 +349,7 @@ Once built, `run-in-docker.sh` will act as an executable for openapi-generator-c
./run-in-docker.sh help # Executes 'help' command for openapi-generator-cli
./run-in-docker.sh list # Executes 'list' command for openapi-generator-cli
./run-in-docker.sh /gen/bin/go-petstore.sh # Builds the Go client
./run-in-docker.sh generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml \
./run-in-docker.sh generate -i modules/openapi-generator/src/test/resources/3_0/petstore.yaml \
-g go -o /gen/out/go-petstore --package-name=petstore # generates go client, outputs locally to ./out/go-petstore
```
@@ -388,14 +387,14 @@ Install it globally to get the CLI available on the command line:
```sh
npm install @openapitools/openapi-generator-cli -g
openapi-generator version
openapi-generator-cli version
```
<!-- RELEASE_VERSION -->
Or install a particular OpenAPI Generator version (e.g. v5.0.0-beta):
To use a specific version of "openapi-generator-cli"
```sh
npm install @openapitools/openapi-generator-cli@cli-5.0.0-beta -g
openapi-generator-cli version-manager set 4.3.1
```
Or install it as dev-dependency:
@@ -406,20 +405,20 @@ npm install @openapitools/openapi-generator-cli -D
<!-- /RELEASE_VERSION -->
## [2 - Getting Started](#table-of-contents)
To generate a PHP client for [petstore.yaml](https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml), please run the following
To generate a PHP client for [petstore.yaml](https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml), please run the following
```sh
git clone https://github.com/openapitools/openapi-generator
cd openapi-generator
mvn clean package
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 \
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml \
-g php \
-o /var/tmp/php_api_client
```
(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`)
(if you're on Windows, replace the last command with `java -jar modules\openapi-generator-cli\target\openapi-generator-cli.jar generate -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml -g php -o c:\temp\php_api_client`)
<!-- RELEASE_VERSION -->
You can also download the JAR (latest release) directly from [maven.org](https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/5.0.0-beta/openapi-generator-cli-5.0.0-beta.jar)
You can also download the JAR (latest release) directly from [maven.org](https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/5.0.0-beta3/openapi-generator-cli-5.0.0-beta3.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`
@@ -429,7 +428,7 @@ To get a list of PHP specified options (which can be passed to the generator wit
## [3 - Usage](#table-of-contents)
### To generate a sample client library
You can build a client against the [Petstore API](https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml) as follows:
You can build a client against the [Petstore API](https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml) as follows:
```sh
./bin/java-petstore-okhttp-gson.sh
@@ -441,7 +440,7 @@ This script uses the default library, which is `okhttp-gson`. It will run the ge
```sh
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 \
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml \
-g java \
-o samples/client/petstore/java/okhttp-gson
```
@@ -562,6 +561,7 @@ Here is a list of community-conitributed IDE plug-ins that integrate with OpenAP
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.
- [Adaptant Solutions AG](https://www.adaptant.io/)
- [adesso SE](https://www.adesso.de/)
- [Agoda](https://www.agoda.com/)
- [Allianz](https://www.allianz.com)
- [Angular.Schule](https://angular.schule/)
@@ -610,6 +610,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- [Kubernetes](https://kubernetes.io)
- [Linode](https://www.linode.com/)
- [Logicdrop](https://www.logicdrop.com)
- [LVM Versicherungen](https://www.lvm.de)
- [MailSlurp](https://www.mailslurp.com)
- [Médiavision](https://www.mediavision.fr/)
- [Metaswitch](https://www.metaswitch.com/)
@@ -622,6 +623,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- [openVALIDATION](https://openvalidation.io/)
- [Oracle](https://www.oracle.com/)
- [Paxos](https://www.paxos.com)
- [PLAID, Inc.](https://plaid.co.jp/)
- [Ponicode](https://ponicode.dev/)
- [Pricefx](https://www.pricefx.com/)
- [Prometheus/Alertmanager](https://github.com/prometheus/alertmanager)
@@ -633,12 +635,14 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- [RepreZen API Studio](https://www.reprezen.com/swagger-openapi-code-generation-api-first-microservices-enterprise-development)
- [REST United](https://restunited.com)
- [Robotinfra](https://www.robotinfra.com)
- [SmartHR](https://smarthr.co.jp/)
- [Sony Interactive Entertainment](https://www.sie.com/en/index.html)
- [Splitit](https://www.splitit.com/)
- [Stingray](http://www.stingray.com)
- [Suva](https://www.suva.ch/)
- [Telstra](https://dev.telstra.com)
- [TravelTime platform](https://www.traveltimeplatform.com/)
- [TribalScale](https://www.tribalscale.com)
- [TUI InfoTec GmbH](http://www.tui-infotec.com/)
- [unblu inc.](https://www.unblu.com/)
- [Veamly](https://www.veamly.com/)
@@ -674,7 +678,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- 2019/01/03 - [Calling a Swagger service from Apex using openapi-generator](https://lekkimworld.com/2019/01/03/calling-a-swagger-service-from-apex-using-openapi-generator/) by [Mikkel Flindt Heisterberg](https://lekkimworld.com)
- 2019/01/13 - [OpenAPI GeneratorでRESTful APIの定義書から色々自動生成する](https://ky-yk-d.hatenablog.com/entry/2019/01/13/234108) by [@ky_yk_d](https://twitter.com/ky_yk_d)
- 2019/01/20 - [Contract-First API Development with OpenAPI Generator and Connexion](https://medium.com/commencis/contract-first-api-development-with-openapi-generator-and-connexion-b21bbf2f9244) by [Anil Can Aydin](https://github.com/anlcnydn)
- 2019/01/30 - [Rapid Application Development With API First Approach Using Open-API Generator](https://dzone.com/articles/rapid-api-development-using-open-api-generator) by [Milan Sonkar](https://dzone.com/users/828329/milan_sonkar.html)
- 2019/01/30 - [Rapid Application Development With API First Approach Using Open-API Generator](https://dzone.com/articles/rapid-api-development-using-open-api-generator) by [Milan Sonkar](https://dzone.com/users/828329/milan_sonkar.html)
- 2019/02/02 - [平静を保ち、コードを生成せよ 〜 OpenAPI Generator誕生の背景と軌跡 〜](https://speakerdeck.com/akihito_nakano/gunmaweb34) by [中野暁人](https://github.com/ackintosh) at [Gunma.web #34 スキーマ駆動開発](https://gunmaweb.connpass.com/event/113974/)
- 2019/02/20 - [An adventure in OpenAPI V3 code generation](https://mux.com/blog/an-adventure-in-openapi-v3-api-code-generation/) by [Phil Cluff](https://mux.com/blog/author/philc/)
- 2019/02/26 - [Building API Services: A Beginners 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)
@@ -770,8 +774,18 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- 2020-07-20 - [Datadog API client libraries now available for Java and Go](https://www.datadoghq.com/blog/java-go-libraries/) by Jordan Obey at [Datadog Blog](https://www.datadoghq.com/blog)
- 2020-07-23 - [Generate Client SDK for .NET Core using Open Api](https://dev.to/no0law1/generate-client-sdk-for-net-core-using-open-api-2dgh) by [Nuno Reis](https://dev.to/no0law1)
- 2020-07-26 - [Dartのhttp_interceptorライブラリを使うと配列のクエリパラメータが消えてしまう件の応急処置](https://qiita.com/gyamoto/items/eeeff81b6770487319ed) by [@gyamoto](https://qiita.com/gyamoto)
- 2020-08-01 - [Generate Angular ReactiveForms from Swagger/OpenAPI](https://dev.to/martinmcwhorter/generate-angular-reactiveforms-from-swagger-openapi-35h9) by [Martin McWhorter](https://dev.to/martinmcwhorter)
- 2020-08-03 - [Criando Bibliotecas para APIs RESTful com OpenAPI, Swagger Editor e OpenAPI Generator](https://medium.com/@everisBrasil/criando-bibliotecas-para-apis-restful-com-openapi-swagger-editor-e-openapi-generator-75349a6420fd) by [everis Brasil (an NTT DATA Company)](https://medium.com/@everisBrasil)
- 2020-08-19 - [マイクロサービスを連携してみよう](https://thinkit.co.jp/article/17704) by [岡井 裕矢(おかい ゆうや)](https://thinkit.co.jp/author/17588), [泉 勝(いずみ まさる)](https://thinkit.co.jp/author/17705) at [Think ITシンクイット](https://thinkit.co.jp/)
- 2020-08-25 - [OpenAPI Generator と TypeScript で型安全にフロントエンド開発をしている話](https://tech.smarthr.jp/entry/2020/08/25/135631) at [SmartHR Tech Blog](https://tech.smarthr.jp/)
- 2020-09-10 - [Introduction to OpenAPI with Instana](https://www.instana.com/blog/introduction-to-openapi-with-instana/) by [Cedric Ziel](https://www.instana.com/blog/author/cedricziel/) at [Instana Blog](https://www.instana.com/blog/)
- 2020-09-17 - [Generate PowerShellSDK using openapi-generator](https://medium.com/@ghufz.learn/generate-powershellsdk-using-openapi-generator-33b700891e33) by [Ghufran Zahidi](https://medium.com/@ghufz.learn)
- 2020-09-24 - [How to automate API code generation (OpenAPI/Swagger) and boost productivity - Tutorial with React Native featuring TypeScript](https://medium.com/@sceleski/how-to-automate-api-code-generation-openapi-swagger-and-boost-productivity-1176a0056d8a) by [Sanjin Celeski](https://medium.com/@sceleski)
- 2020-09-25 - [Generate OpenAPI Angular Client](https://medium.com/@pguso/generate-openapi-angular-client-8c9288e8bbd4) by [Patric](https://medium.com/@pguso)
- 2020-10-24 - [Working with Microsoft Identity - React Native Client](https://www.josephguadagno.net/2020/10/24/working-with-microsoft-identity-react-native-client) by [Joseph Guadagno](https://www.josephguadagno.net/)
- 2020-10-31 - [[B2] OpenAPI Specification으로 타입-세이프하게 API 개발하기: 희망편 VS 절망편](https://www.youtube.com/watch?v=J4JHLESAiFk) by 최태건 at [FEConf 2020](https://2020.feconf.kr/)
- 2020-11-05 - [Automated REST-Api Code Generation: Wie IT-Systeme miteinander sprechen](https://www.massiveart.com/blog/automated-rest-api-code-generation-wie-it-systeme-miteinander-sprechen) by Stefan Rottensteiner at [MASSIVE ART Blog](https://www.massiveart.com/blog)
- 2020-12-01 - [OpenAPI GeneratorでGoのAPIサーバー/クライアントコードを自動生成する](https://qiita.com/saki-engineering/items/b20d8b6074c4da9664a5) by [@saki-engineering](https://qiita.com/saki-engineering)
## [6 - About Us](#table-of-contents)
@@ -846,7 +860,7 @@ Here is a list of template creators:
* PHP (Guzzle): @baartosz
* PowerShell: @beatcracker
* PowerShell (refactored in 5.0.0): @wing328
* Python-experimental: @spacether
* Python: @spacether
* R: @ramnov
* Ruby (Faraday): @meganemura @dkliban
* Rust: @farcaller
@@ -1057,7 +1071,7 @@ OpenAPI Generator is a fork of [Swagger Codegen](https://github.com/swagger-api/
## [7 - License](#table-of-contents)
-------
Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech)
Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech)
Copyright 2018 SmartBear Software
Licensed under the Apache License, Version 2.0 (the "License");

View File

@@ -38,6 +38,8 @@ build_script:
# build C# API client (netcore)
- dotnet build samples\client\petstore\csharp-netcore\OpenAPIClient\Org.OpenAPITools.sln
- dotnet build samples\client\petstore\csharp-netcore\OpenAPIClientCore\Org.OpenAPITools.sln
# build C# API client (.net framework 4.7)
- dotnet build samples\client\petstore\csharp-netcore\OpenAPIClient-net47\Org.OpenAPITools.sln
# build C# API client
- nuget restore samples\client\petstore\csharp\OpenAPIClient\Org.OpenAPITools.sln
- msbuild samples\client\petstore\csharp\OpenAPIClient\Org.OpenAPITools.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
@@ -45,8 +47,8 @@ build_script:
- nuget restore samples\client\petstore\csharp\OpenAPIClientWithPropertyChanged\Org.OpenAPITools.sln
- msbuild samples\client\petstore\csharp\OpenAPIClientWithPropertyChanged\Org.OpenAPITools.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
# build C# .net standard 1.3+ API client
- nuget restore samples\client\petstore\csharp\OpenAPIClientNetStandard\Org.OpenAPITools.sln
- msbuild samples\client\petstore\csharp\OpenAPIClientNetStandard\Org.OpenAPITools.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
#- nuget restore samples\client\petstore\csharp\OpenAPIClientNetStandard\Org.OpenAPITools.sln
#- msbuild samples\client\petstore\csharp\OpenAPIClientNetStandard\Org.OpenAPITools.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
# install openapi-generator locally
- mvn --no-snapshot-updates --quiet clean install -Dorg.slf4j.simpleLogger.defaultLogLevel=error
# run the locally installed openapi-generator-gradle-plugin
@@ -55,6 +57,8 @@ test_script:
# test c# API client (netcore)
- dotnet test samples\client\petstore\csharp-netcore\OpenAPIClientCore\src\Org.OpenAPITools.Test\Org.OpenAPITools.Test.csproj
- dotnet test samples\client\petstore\csharp-netcore\OpenAPIClient\src\Org.OpenAPITools.Test\Org.OpenAPITools.Test.csproj
# test C# API client (.net framework 4.7)
- dotnet test samples\client\petstore\csharp-netcore\OpenAPIClient-net47\src\Org.OpenAPITools.Test\Org.OpenAPITools.Test.csproj
# test c# API client
- nunit3-console samples\client\petstore\csharp\OpenAPIClient\src\Org.OpenAPITools.Test\bin\Debug\Org.OpenAPITools.Test.dll --result=myresults.xml;format=AppVeyor
# test c# API client (with PropertyChanged)

View File

@@ -0,0 +1,11 @@
# for .net standard
generatorName: csharp-netcore
outputDir: samples/client/petstore/csharp-netcore/OpenAPIClient-net47
inputSpec: modules/openapi-generator/src/test/resources/3_0/java/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml
templateDir: modules/openapi-generator/src/main/resources/csharp-netcore
additionalProperties:
packageGuid: '{321C8C3F-0156-40C1-AE42-D59761FB9B6C}'
useCompareNetObjects: true
disallowAdditionalPropertiesIfNotPresent: false
useOneOfDiscriminatorLookup: true
targetFramework: net47

View File

@@ -1,7 +1,10 @@
# for .net standard
generatorName: csharp-netcore
outputDir: samples/client/petstore/csharp-netcore/OpenAPIClient
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
inputSpec: modules/openapi-generator/src/test/resources/3_0/java/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml
templateDir: modules/openapi-generator/src/main/resources/csharp-netcore
additionalProperties:
packageGuid: '{321C8C3F-0156-40C1-AE42-D59761FB9B6C}'
useCompareNetObjects: "true"
useCompareNetObjects: true
disallowAdditionalPropertiesIfNotPresent: false
useOneOfDiscriminatorLookup: true

View File

@@ -0,0 +1,6 @@
generatorName: dart-dio
outputDir: samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/dart-dio
additionalProperties:
hideGenerationTimestamp: "true"

View File

@@ -0,0 +1,6 @@
generatorName: dart-dio
outputDir: samples/client/petstore/dart-dio/petstore_client_lib
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/dart-dio
additionalProperties:
hideGenerationTimestamp: "true"

View File

@@ -0,0 +1,6 @@
generatorName: dart-dio
outputDir: samples/openapi3/client/petstore/dart-dio/petstore_client_lib
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/dart-dio
additionalProperties:
hideGenerationTimestamp: "true"

View File

@@ -1,8 +0,0 @@
generatorName: dart
outputDir: samples/client/petstore/dart/openapi-browser-client
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/dart
additionalProperties:
supportDart2: "false"
hideGenerationTimestamp: "true"
browserClient: "true"

View File

@@ -1,8 +0,0 @@
generatorName: dart
outputDir: samples/client/petstore/dart/flutter_petstore/openapi
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/dart
additionalProperties:
supportDart2: "false"
hideGenerationTimestamp: "true"
browserClient: "false"

View File

@@ -1,8 +0,0 @@
generatorName: dart
outputDir: samples/client/petstore/dart/openapi
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/dart
additionalProperties:
supportDart2: "false"
hideGenerationTimestamp: "true"
browserClient: "false"

View File

@@ -0,0 +1,6 @@
generatorName: dart
outputDir: samples/openapi3/client/petstore/dart2/petstore_client_lib_fake
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/dart2
additionalProperties:
hideGenerationTimestamp: "true"

View File

@@ -0,0 +1,6 @@
generatorName: dart
outputDir: samples/openapi3/client/petstore/dart2/petstore_client_lib
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/dart2
additionalProperties:
hideGenerationTimestamp: "true"

View File

@@ -1,6 +0,0 @@
generatorName: go-experimental
outputDir: samples/client/petstore/go-experimental/go-petstore
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/go-experimental
additionalProperties:
packageName: petstore

View File

@@ -1,8 +0,0 @@
generatorName: go-experimental
outputDir: samples/openapi3/client/petstore/go-experimental/go-petstore
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml
templateDir: modules/openapi-generator/src/main/resources/go-experimental
additionalProperties:
enumClassPrefix: "true"
packageName: petstore
disallowAdditionalPropertiesIfNotPresent: false

View File

@@ -0,0 +1,6 @@
generatorName: go
outputDir: samples/openapi3/client/extensions/x-auth-id-alias/go-experimental
inputSpec: modules/openapi-generator/src/test/resources/3_0/extensions/x-auth-id-alias.yaml
templateDir: modules/openapi-generator/src/main/resources/go
additionalProperties:
packageName: x_auth_id_alias

View File

@@ -4,3 +4,4 @@ inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-e
templateDir: modules/openapi-generator/src/main/resources/go
additionalProperties:
packageName: petstore
generateInterfaces: true

View File

@@ -1,8 +0,0 @@
generatorName: go
outputDir: samples/client/petstore/go/go-petstore-withXml
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/go
additionalProperties:
packageName: petstore
withXml: "true"
withGoCodegenComment: "true"

View File

@@ -1,7 +1,9 @@
generatorName: go
outputDir: samples/openapi3/client/petstore/go/go-petstore
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml
templateDir: modules/openapi-generator/src/main/resources/go
additionalProperties:
enumClassPrefix: "true"
packageName: petstore
disallowAdditionalPropertiesIfNotPresent: false
generateInterfaces: true

View File

@@ -0,0 +1,11 @@
generatorName: java
outputDir: samples/client/petstore/java/feign-no-nullable
library: feign
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/Java
additionalProperties:
booleanGetterPrefix: is
artifactId: petstore-feign-no-nullable
hideGenerationTimestamp: "true"
additionalModelTypeAnnotations: '@javax.annotation.concurrent.Immutable'
openApiNullable: "false"

View File

@@ -0,0 +1,7 @@
generatorName: java
outputDir: samples/openapi3/client/extensions/x-auth-id-alias/java/jersey2-java8
library: jersey2
inputSpec: modules/openapi-generator/src/test/resources/3_0/extensions/x-auth-id-alias.yaml
additionalProperties:
artifactId: openapi3-extensions-x-auth-id-alias-jersey2-java8
hideGenerationTimestamp: true

View File

@@ -0,0 +1,11 @@
generatorName: java
outputDir: samples/openapi3/client/petstore/java/native
library: native
inputSpec: modules/openapi-generator/src/test/resources/3_0/java/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml
templateDir: modules/openapi-generator/src/main/resources/Java
additionalProperties:
artifactId: petstore-openapi3-native
hideGenerationTimestamp: true
serverPort: "8082"
useOneOfDiscriminatorLookup: true
disallowAdditionalPropertiesIfNotPresent: false

View File

@@ -0,0 +1,7 @@
generatorName: java-play-framework
outputDir: samples/server/petstore/java-play-framework-no-nullable
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/JavaPlayFramework
additionalProperties:
hideGenerationTimestamp: "true"
openApiNullable: "false"

View File

@@ -0,0 +1,9 @@
generatorName: java
outputDir: samples/client/petstore/java/vertx-no-nullable
library: vertx
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/Java
additionalProperties:
artifactId: petstore-vertx-no-nullable
hideGenerationTimestamp: "true"
openApiNullable: "false"

View File

@@ -5,3 +5,4 @@ templateDir: modules/openapi-generator/src/main/resources/aspnetcore/3.0
additionalProperties:
packageGuid: '{3C799344-F285-4669-8FD5-7ED9B795D5C5}'
aspnetCoreVersion: "3.1"
userSecretsGuid: "76e9e993-9159-441c-9c5b-fe95e7f4f020"

View File

@@ -1,6 +0,0 @@
generatorName: dart-dio
outputDir: samples/client/petstore/dart-dio
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/dart-dio
additionalProperties:
hideGenerationTimestamp: "true"

View File

@@ -1,7 +0,0 @@
generatorName: java-vertx-web
outputDir: samples/server/petstore/java-vertx-web/rx
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/JavaVertXWebServer
additionalProperties:
hideGenerationTimestamp: "true"
artifactId: java-vertx-web-rx-server

View File

@@ -0,0 +1,7 @@
generatorName: java-vertx-web
outputDir: samples/server/petstore/java-vertx-web
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/JavaVertXWebServer
additionalProperties:
hideGenerationTimestamp: "true"
artifactId: java-vertx-web-server

View File

@@ -0,0 +1,7 @@
generatorName: jaxrs-cxf-client
outputDir: samples/client/petstore/jaxrs-cxf-client-jackson
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/JavaJaxRS/cxf
additionalProperties:
artifactId: jaxrs-cxf-jackson-petstore-client
jackson: "true"

View File

@@ -10,3 +10,7 @@ additionalProperties:
powershellGalleryUrl: https://www.powershellgallery.com/packages/PSPetstore
apiNamePrefix: PS
powershellVersion: "5.0"
licenseUri: https://www.apache.org/licenses/LICENSE-2.0.txt
projectUri: https://github.com/OpenAPITools/openapi-generator
releaseNotes: 'This is a sample project'
tags: 'PetStore,powershell,sdk'

View File

@@ -1,7 +1,7 @@
generatorName: python
generatorName: python-legacy
outputDir: samples/client/petstore/python-asyncio
library: asyncio
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/python
templateDir: modules/openapi-generator/src/main/resources/python-legacy
additionalProperties:
packageName: petstore_api

View File

@@ -1,6 +0,0 @@
generatorName: python-experimental
outputDir: samples/openapi3/client/extensions/x-auth-id-alias/python-experimental/
inputSpec: modules/openapi-generator/src/test/resources/3_0/extensions/x-auth-id-alias.yaml
templateDir: modules/openapi-generator/src/main/resources/python
additionalProperties:
packageName: x_auth_id_alias

View File

@@ -1,6 +0,0 @@
generatorName: python-experimental
outputDir: samples/openapi3/client/features/dynamic-servers/python-experimental/
inputSpec: modules/openapi-generator/src/test/resources/3_0/features/dynamic-servers.yaml
templateDir: modules/openapi-generator/src/main/resources/python
additionalProperties:
packageName: dynamic_servers

View File

@@ -1,7 +0,0 @@
generatorName: python-experimental
outputDir: samples/client/petstore/python-experimental
inputSpec: modules/openapi-generator/src/test/resources/2_0/python-client-experimental/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/python
additionalProperties:
disallowAdditionalPropertiesIfNotPresent: "true"
packageName: petstore_api

View File

@@ -1,6 +0,0 @@
generatorName: python-experimental
outputDir: samples/openapi3/client/petstore/python-experimental
inputSpec: modules/openapi-generator/src/test/resources/3_0/python-experimental/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml
templateDir: modules/openapi-generator/src/main/resources/python
additionalProperties:
packageName: petstore_api

View File

@@ -0,0 +1,6 @@
generatorName: python
outputDir: samples/openapi3/client/extensions/x-auth-id-alias/python/
inputSpec: modules/openapi-generator/src/test/resources/3_0/extensions/x-auth-id-alias.yaml
templateDir: modules/openapi-generator/src/main/resources/python
additionalProperties:
packageName: x_auth_id_alias

View File

@@ -0,0 +1,6 @@
generatorName: python
outputDir: samples/openapi3/client/features/dynamic-servers/python/
inputSpec: modules/openapi-generator/src/test/resources/3_0/features/dynamic-servers.yaml
templateDir: modules/openapi-generator/src/main/resources/python
additionalProperties:
packageName: dynamic_servers

View File

@@ -0,0 +1,6 @@
generatorName: python-legacy
outputDir: samples/client/petstore/python-legacy
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/python-legacy
additionalProperties:
packageName: petstore_api

View File

@@ -0,0 +1,6 @@
generatorName: python-legacy
outputDir: samples/openapi3/client/petstore/python-legacy
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/python-legacy
additionalProperties:
packageName: petstore_api

View File

@@ -1,6 +1,7 @@
generatorName: python
outputDir: samples/client/petstore/python
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
inputSpec: modules/openapi-generator/src/test/resources/2_0/python-client-experimental/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/python
additionalProperties:
disallowAdditionalPropertiesIfNotPresent: "true"
packageName: petstore_api

View File

@@ -1,7 +1,7 @@
generatorName: python
generatorName: python-legacy
outputDir: samples/client/petstore/python-tornado
library: tornado
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/python
templateDir: modules/openapi-generator/src/main/resources/python-legacy
additionalProperties:
packageName: petstore_api

View File

@@ -1,6 +1,7 @@
generatorName: python
outputDir: samples/openapi3/client/petstore/python
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
inputSpec: modules/openapi-generator/src/test/resources/3_0/python/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml
templateDir: modules/openapi-generator/src/main/resources/python
additionalProperties:
packageName: petstore_api
recursionLimit: "1234"

View File

@@ -0,0 +1,9 @@
generatorName: ruby
outputDir: samples/openapi3/client/features/dynamic-servers/ruby/
inputSpec: modules/openapi-generator/src/test/resources/3_0/features/dynamic-servers.yaml
templateDir: modules/openapi-generator/src/main/resources/ruby-client
additionalProperties:
gemVersion: 1.0.0
moduleName: DynamicServers
gemName: dynamic_servers
skipFormModel: "true"

View File

@@ -0,0 +1,12 @@
generatorName: ruby
outputDir: samples/openapi3/client/features/generate-alias-as-model/ruby-client/
library: typhoeus
inputSpec: modules/openapi-generator/src/test/resources/3_0/features/generate-alias-as-model.yaml
templateDir: modules/openapi-generator/src/main/resources/ruby-client
additionalProperties:
gemVersion: 1.0.0
moduleName: Petstore
gemName: petstore
skipFormModel: "true"
strictSpecBehavior: false
generateAliasAsModel: true

View File

@@ -4,5 +4,5 @@ library: reqwest
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/rust
additionalProperties:
supportAsync: "false"
supportAsync: false
packageName: petstore-reqwest

View File

@@ -0,0 +1,11 @@
generatorName: spring
outputDir: samples/server/petstore/springboot-beanvalidation-no-nullable
library: spring-boot
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/JavaSpring
additionalProperties:
java8: "false"
useBeanValidation: true
artifactId: spring-boot-beanvalidation-no-nullable
hideGenerationTimestamp: "true"
openApiNullable: "false"

View File

@@ -0,0 +1,10 @@
generatorName: spring
outputDir: samples/client/petstore/spring-cloud-no-nullable
library: spring-cloud
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-cloud
additionalProperties:
artifactId: petstore-spring-cloud-no-nullable
responseWrapper: HystrixCommand
hideGenerationTimestamp: "true"
openApiNullable: "false"

View File

@@ -0,0 +1,8 @@
generatorName: spring
templateDir: modules/openapi-generator/src/main/resources/JavaSpring
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-spring-pageable.yaml
outputDir: samples/client/petstore/spring-cloud-spring-pageable
artifactId: spring-cloud-spring-pageable
library: spring-cloud
additionalProperties:
hideGenerationTimestamp: 'true'

View File

@@ -0,0 +1,10 @@
generatorName: spring
outputDir: samples/server/petstore/spring-mvc-no-nullable
library: spring-mvc
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/JavaSpring
additionalProperties:
artifactId: spring-mvc-server-no-nullable
openApiNullable: "false"
serverPort: "8002"
hideGenerationTimestamp: "true"

View File

@@ -0,0 +1,8 @@
generatorName: spring
templateDir: modules/openapi-generator/src/main/resources/JavaSpring
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing-with-spring-pageable.yaml
outputDir: samples/server/petstore/spring-mvc-spring-pageable
artifactId: spring-mvc-spring-pageable
library: spring-mvc
additionalProperties:
hideGenerationTimestamp: 'true'

View File

@@ -0,0 +1,10 @@
generatorName: spring
templateDir: modules/openapi-generator/src/main/resources/JavaSpring
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing-with-spring-pageable.yaml
outputDir: samples/server/petstore/springboot-spring-pageable-delegatePattern-without-j8
artifactId: springboot-spring-pageable-delegatePattern-without-j8
library: spring-boot
delegatePattern: true
java8: false
additionalProperties:
hideGenerationTimestamp: 'true'

View File

@@ -0,0 +1,9 @@
generatorName: spring
templateDir: modules/openapi-generator/src/main/resources/JavaSpring
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing-with-spring-pageable.yaml
outputDir: samples/server/petstore/springboot-spring-pageable-delegatePattern
artifactId: springboot-spring-pageable-delegatePattern
library: spring-boot
delegatePattern: true
additionalProperties:
hideGenerationTimestamp: 'true'

View File

@@ -0,0 +1,9 @@
generatorName: spring
templateDir: modules/openapi-generator/src/main/resources/JavaSpring
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing-with-spring-pageable.yaml
outputDir: samples/server/petstore/springboot-spring-pageable-without-j8
artifactId: springboot-spring-pageable-withoutj8
library: spring-boot
java8: false
additionalProperties:
hideGenerationTimestamp: 'true'

View File

@@ -0,0 +1,8 @@
generatorName: spring
templateDir: modules/openapi-generator/src/main/resources/JavaSpring
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing-with-spring-pageable.yaml
outputDir: samples/server/petstore/springboot-spring-pageable
artifactId: springboot-spring-pageable
library: spring-boot
additionalProperties:
hideGenerationTimestamp: 'true'

View File

@@ -0,0 +1,9 @@
generatorName: typescript-angular
outputDir: samples/client/petstore/typescript-angular-v11-provided-in-root/builds/with-npm
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml
additionalProperties:
ngVersion: 11.0.0
npmVersion: 1.0.0
npmName: '@openapitools/typescript-angular-petstore'
npmRepository: https://skimdb.npmjs.com/registry
snapshot: false

View File

@@ -0,0 +1,5 @@
generatorName: typescript-angular
outputDir: samples/client/petstore/typescript-angular-v11-provided-in-root/builds/default
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml
additionalProperties:
ngVersion: 11.0.0

View File

@@ -8,3 +8,4 @@ additionalProperties:
npmRepository: https://skimdb.npmjs.com/registry
snapshot: false
apiModulePrefix: PetStore
configurationPrefix: PetStore

View File

@@ -0,0 +1,3 @@
generatorName: typescript-fetch
outputDir: samples/client/petstore/typescript-fetch/builds/default-v3.0
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml

View File

@@ -0,0 +1,3 @@
generatorName: typescript-fetch
outputDir: samples/client/petstore/typescript-fetch/builds/enum
inputSpec: modules/openapi-generator/src/test/resources/3_0/typescript-fetch/enum.yaml

View File

@@ -0,0 +1,9 @@
generatorName: typescript-fetch
outputDir: samples/client/petstore/typescript-fetch/builds/without-runtime-checks
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml
additionalProperties:
npmVersion: 1.0.0
npmName: '@openapitools/typescript-fetch-petstore'
npmRepository: https://skimdb.npmjs.com/registry
withoutRuntimeChecks: true
snapshot: false

View File

@@ -11,6 +11,7 @@ if [ ! -f "$executable" ]; then
fi
export JAVA_OPTS="${JAVA_OPTS} -ea -server -Duser.timezone=UTC"
export BATCH_OPTS="${BATCH_OPTS:-}"
files=()
args=()
@@ -61,6 +62,6 @@ else
# shellcheck disable=SC2086
# shellcheck disable=SC2068
java ${JAVA_OPTS} -jar "$executable" batch --includes-base-dir "${root}" --fail-fast -- ${files[@]}
java ${JAVA_OPTS} -jar "$executable" batch ${BATCH_OPTS} --includes-base-dir "${root}" --fail-fast -- ${files[@]}
fi

View File

@@ -0,0 +1,57 @@
#!/usr/bin/env ruby
# ruby script to detect changes in test-related files
require 'yaml'
require 'digest'
hash = Digest::SHA256.hexdigest("xyz")
filename= ARGV[0]
if !filename
puts "Usage: #{$0} filename"
exit 1
end
if !File.file? filename
warn "Error. #{filename} doesn't exist."
exit 1
end
mismatch = 0
count = 0
test_files = YAML.load_file(filename)
test_files.each do |test_file|
count = count + 1
# file still exists?
if !File.file? test_file['filename']
warn "Error. Provided test file `#{test_file['filename']}` doesn't exist."
mismatch = mismatch + 1
end
# check sha256 hash
sha256 = Digest::SHA256.hexdigest(File.read(test_file['filename']))
if test_file['sha256'] != sha256
warn "Looks like #{test_file['filename']} has been modified as its SHA256 `#{sha256}` is not the same as the one in the record: #{test_file['sha256']}"
mismatch = mismatch + 1
else
# no change to the test file
end
end
if mismatch > 0
warn "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
warn "There are #{mismatch} mismatch. Please review the test files to ensure it has not been deleted/regenerated."
warn "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
exit 1
else
puts "OK. All matched!"
end
if count == 0
warn "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
warn "Looks like the test file list in #{filename} is empty! Please check!"
warn "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
exit 1
end

View File

@@ -53,6 +53,9 @@ if [ -n "$(git status --porcelain)" ]; then
git --no-pager diff
echo "Perform git status"
git status
echo -e "\nThis script runs in pull requests against the anticipated merge commit (as if the PR was merged now)."
echo "When you see unexpected files here, it likely means that there are newer commits in master that you need to "
echo -e "rebase or merge into your branch.\n"
echo "Please run 'bin/utils/ensure-up-to-date' locally and commit changes (UNCOMMITTED CHANGES ERROR)"
exit 1
else

View File

@@ -10,7 +10,11 @@ if [[ "true" == "${SKIP_EXPORT_DOCS}" ]]; then
exit 0
fi
N=4
(
for GENERATOR in $(java -jar ${executable} list --short --include all | sed -e 's/,/\'$'\n''/g')
do
./bin/utils/export_generator.sh ${GENERATOR}
((i=i%N)); ((i++==0)) && wait
./bin/utils/export_generator.sh ${GENERATOR} &
done
)

View File

@@ -0,0 +1,6 @@
---
# csharp-netcore test files and image for upload
- filename: "samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools.Test/Api/PetApiTests.cs"
sha256: b74ef9eefa4b41fd3233e083fe2355babf25a77f9073d28e1aa81ae2e0a5f1d0
- filename: "samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools.Test/linux-logo.png"
sha256: 0a67c32728197e942b13bdda064b73793f12f5c795f1e5cf35a3adf69c973230

View File

@@ -12,7 +12,7 @@ codegen="${cli}/target/openapi-generator-cli.jar"
# We code in a list of commands here as source processing is potentially buggy (requires undocumented conventional use of annotations).
# A list of known commands helps us determine if we should compile CLI. There's an edge-case where a new command not added to this
# list won't be considered a "real" command. We can get around that a bit by checking CLI completions beforehand if it exists.
commands="config-help,generate,help,list,meta,validate,version"
commands="config-help,generate,batch,help,list,meta,validate,version"
if [ $# == 0 ]; then
echo "No command specified. Available commands:"

View File

@@ -44,7 +44,7 @@ Once built, `run-in-docker.sh` will act as an executable for openapi-generator-c
./run-in-docker.sh help # Executes 'help' command for openapi-generator-cli
./run-in-docker.sh list # Executes 'list' command for openapi-generator-cli
./run-in-docker.sh /gen/bin/generate-samples.sh /gen/bin/configs/go-petstore.yaml # Builds the Go client
./run-in-docker.sh generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml \
./run-in-docker.sh generate -i modules/openapi-generator/src/test/resources/3_0/petstore.yaml \
-g go -o /gen/out/go-petstore --packageName=petstore # generates go client, outputs locally to ./out/go-petstore
```

118
docs/configuration.md Normal file
View File

@@ -0,0 +1,118 @@
---
id: configuration
title: Configuration Options
---
Our tooling supports the following types of configuration:
* [global properties](./global-properties.md)
- properties with cross-cutting concerns which control generation, but _don't_ belong to individual generators
- Example: `debugSupportingFiles` prints the contents of template data bound to supporting files
* config options
- configuration specific to each individual [generator](./generators/README.md)
- these options are susceptible to validation within the defining generator; a config option of the same name across multiple generators may be validated differently in each
- NOTE: The CLI accepts config options as "additional properties"
* additional properties
- these are the properties which will be passed to templates
- generally used to pass user-defined properties to custom templates
- many config options may also be passed as additional properties, however generators will read/modify/rewrite config options
- users may pass custom additional properties and use these within templates (e.g. a custom `generatedBy` key with a value of `Jim Schubert` for inclusion in a custom CVS-like header)
* top-level properties specific to individual tools/plugins used to bootstrap our tooling
## Tool-specific Declarations
The READMEs for the [CLI](https://openapi-generator.tech/docs/usage#generate), [Gradle Plugin](https://github.com/OpenAPITools/openapi-generator/tree/master/modules/openapi-generator-maven-plugin), [Maven Plugin](https://github.com/OpenAPITools/openapi-generator/tree/master/modules/openapi-generator-maven-plugin), and [SBT Plugin](https://github.com/OpenAPITools/sbt-openapi-generator/blob/master/README.md) may have top-level or tooling specific options which appear to duplicate 'config options' or 'global properties'. Each may also expose user-facing properties slightly differently from the other tools. This may occur due to:
* Conventions used by the underlying tooling
* Limitations in underlying frameworks which define how properties must be declared
* Continuation of support for "legacy" invocation patterns
* Mistakes in documentation and/or contributions (please do [file a bug](https://github.com/OpenAPITools/openapi-generator/issues/new?assignees=&labels=Issue%3A+Bug&template=bug_report.md&title=%5BBUG%5D+Issue+with+options))
Take, for example, the CLI option of `--skip-validate-spec`. This flag sets the value to true with no option to set it to false (the default internally). The maven and gradle plugins allow for the top-level option `skipValidateSpec` to have a value of true or false. The SBT plugin, on the other hand, follows community convention and this property is `openApiSkipValidateSpec`.
_How_ you provide values to options also depends on the tool. OpenAPI Generator supports global properties for [selective generation](https://openapi-generator.tech/docs/customization/#selective-generation) -- such as `apis` -- to have either a blank value or a comma-separated list of selected values. We would define this in CLI as `--global-property apis` or `--global-property apis=Equipment`. In the Gradle Plugin, these properties are set directly as strings:
```
openApiGenerate {
globalProperties = [
apis: "",
models: "User,Pet"
]
}
```
In the Maven plugin, we're limited by XML syntax where `<apis/>` and `<apis></apis>` are treated the same as if the `apis` node was undefined; there's no way to provide an empty string as a default. Instead, we have to extract the global property into its own properties which maintain the two states supported elsewhere (i.e. "all apis" or "select apis"). We have `generateApis` which accepts a boolean and `apisToGenerate` which accepts a comma-separated selection list.
## Discovering Options
Refer to [global properties](./global-properties.md) for a list of available global properties and their usage.
Top-level tooling options are defined in [CLI usage](https://openapi-generator.tech/docs/usage/#generate). Many of these options directly map to camel case options in other tools, but do refer to [plugin documentation](https://openapi-generator.tech/docs/plugins) for full details or plugin-specific differences.
Config options for generators are available in [documentation online](https://openapi-generator.tech/docs/generators). You may also use the CLI to query config options for a target generator using `openapi-generator config-help -g <generator-name>`. For example:
```
$ openapi-generator config-help -g mysql-schema
CONFIG OPTIONS
defaultDatabaseName
Default database name for all MySQL queries (Default: )
identifierNamingConvention
Naming convention of MySQL identifiers(table names and column names). This is not related to database name which is defined by defaultDatabaseName option (Default: original)
original - Do not transform original names
snake_case - Use snake_case names
jsonDataTypeEnabled
Use special JSON MySQL data type for complex model properties. Requires MySQL version 5.7.8. Generates TEXT data type when disabled (Default: true)
namedParametersEnabled
Generates model prepared SQLs with named parameters, eg. :petName. Question mark placeholder used when option disabled. (Default: false)
```
This output provides the name of the configuration option. A set of acceptable values for any constrained values will print as an indented list (e.g. `identifierNamingConvention` above).
Suppose you want to apply snake case naming to mysql schema outputs. Your configuration might resemble the following examples.
**CLI**
```
openapi-generator -g mysql-schema -o out -i spec.yaml --additional-properties=identifierNamingConvention=snake_case
```
It may seem like a typo but there are two `=` signs in the above example.
**Maven Plugin**
```
<execution>
<id>mysql-schema</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>spec.yaml</inputSpec>
<generatorName>mysql-schema</generatorName>
<configOptions>
<identifierNamingConvention>snake_case</identifierNamingConvention>
</configOptions>
<output>${project.build.directory}/generated-sources/mysql</output>
</configuration>
</execution>
```
**Gradle Plugin**
```
openApiGenerate {
generatorName = "mysql-schema"
inputSpec = "$rootDir/spec.yaml".toString()
outputDir = "$buildDir/mysql".toString()
configOptions = [
identifierNamingConvention: "snake_case"
]
}
```

View File

@@ -91,9 +91,7 @@ To add test cases (optional) covering the change in the code generator, please r
To test the templates, please perform the following:
- Update the Petstore sample by running the shell scripts under the `bin` folder. For example, run `./bin/generate-samples.sh .
/bin/configs/python*` to update the Python-related samples under [`samples`](https://github.com/openapitools/openapi-generator/tree/master/samples). For Windows, please install [GIT bash](https://gitforwindows.org/). (If you find that there are new files g
enerated or unexpected changes as a result of the update, that's not unusual as the test cases are added to the OpenAPI spec fro
m time to time. If you've questions or concerns, please open a ticket to start a discussion)
/bin/configs/python*` to update the Python-related samples under [`samples`](https://github.com/openapitools/openapi-generator/tree/master/samples). For Windows, please install [GIT bash](https://gitforwindows.org/). (If you find that there are new files generated or unexpected changes as a result of the update, that's not unusual as the test cases are added to the OpenAPI spec from time to time. If you've questions or concerns, please open a ticket to start a discussion)
- During development it can be helpful to quickly regenerate the samples without recompiling all of openapi-generator, e.g. when you have only updated the mustache templates. This can be done by passing the `-t` parameter: `-t modules/openapi-generator/src/main/resources/python`.
- Run the tests in the sample folder using maven `mvn integration-test -f /path/to/pom.xml`, e.g. `mvn integration-test -f samples/client/petstore/python/pom.xml`. (some languages may not contain unit testing for Petstore and we're looking for contribution from the community to implement those tests)
- Finally, git commit the updated samples files: `git commit -a`

View File

@@ -3,6 +3,77 @@ id: customization
title: Customization
---
## User-defined Templates
The most common scenario for user customization is to override the built-in templates with small modifications. That scenario's documentation is in our [templating](./templating.md) page, and differs from user-defined templates.
Prior to release 5.0.0, whenever a user wanted to include templates which weren't built-in or weren't known to the generator at compile time, they'd need to follow the more involved approach of creating a custom generator as documented later in this document. Beginning in 5.0.0, a user may now provide additional supporting files and extensions to built-in templates via configuration. This feature requires using the external configuration file feature.
Consider that you might want to add some static documentation such as `AUTHORS.md` and a custom tooling script. Rather than a single file for API definitions you also want an implementation file and a separate interface file for each.
You might have an external configuration file named `config.yaml` which defines additional properties like this for a `kotlin` client generator:
```yaml
additionalProperties:
artifactId: kotlin-petstore-client
serializableModel: "true"
dateLibrary: java8
```
You would generate via CLI with the command:
```shell script
openapi-generator generate -g kotlin -i spec.yaml -o outdir -c config.yaml
```
To support the above scenario with custom templates, ensure that you're pointing to your custom template directory and add a `files` node with template file definitions to your config:
```
templateDir: my_custom_templates
additionalProperties:
artifactId: kotlin-petstore-client
serializableModel: "true"
dateLibrary: java8
files:
AUTHORS.md: {}
api_interfaces.mustache:
templateType: API
destinationFilename: Interface.kt
api.mustache:
templateType: API
destinationFilename: Impl.kt
other/check.mustache:
folder: scripts
destinationFilename: check.sh
templateType: SupportingFiles
```
The keys under the `files` node are your template filenames. These honor the same resolution order as all other templates.
The above configuration will do the following:
* Copy `my_custom_templates/AUTHORS.md` to the generated output directory without processing via the template engine (due to template file extension). The empty object definition following `AUTHORS.md` allows the tool to infer the target output filename in the root of the output directory.
* Compile a user-provided `my_custom_templates/api_interfaces.mustache` following our usual API template compilation logic. That is, one file will be created per API; APIs are generated defined according to tags in your spec documentation. The destination filename of `Interface.kt` will act as a suffix for the filename. So, a tag of `Equipment` will output a corresponding `EquipmentInterface.kt`.
* Because `api.mustache` is the same mustache filename as used in your target generator (`kotlin` in this example), we support the following:
- The destination filename provides a suffix for the generated output. APIs generate per tag in your specification. So, a tag of `Equipment` will output a corresponding `EquipmentImpl.kt`. This option will be used whether `api.mustache` targets a user customized template or a built-in template.
- The built-in template will be used if you haven't provided an customized template. The kotlin generator defines the suffix as simply `.kt`, so this scenario would modify only the generated file suffixes according to the previous bullet point.
- Your `api.mustache` will be used if it exists in your custom template directory. For generators with library options, such as `jvm-okhttp3` in the kotlin generator, your file must exist in the same relative location as the embedded template. For kotlin using the `jvm-okhttp3` library option, this file would need to be located at `my_custom_templates/libraries/jvm-okhttp/api.mustache`. See [templating](./templating.md) for more details.
* Compile `my_custom_templates/other/check.mustache` with the supporting files bundle, and output to `scripts/check.sh` in your output directory. Note that we don't currently support setting file flags on output, so scripts such as these will either have to be sourced rather than executed, or have file flags set separately after generation (external to our tooling).
The `templateType` option will default to `SupportingFiles`, so the option for `other/check.mustache` is redundant and provided to demonstrate the full template file configuration options. The available template types are:
* API
* APIDocs
* APITests
* Model
* ModelDocs
* ModelTests
* SupportingFiles
Excluding `SupportingFiles`, each of the above options may result in multiple files. API related types create a file per API. Model related types create a file for each model.
Note that user-defined templates will merge with built-in template definitions. If a supporting file with the sample template file path exists, it will be replaced with the user-defined template, otherwise the user-defined template will be added to the list of template files to compile. If the generator's built-in template is `model_docs.mustache` and you define `model-docs.mustache`, this will result in duplicated model docs (if `destinationFilename` differs) or undefined behavior as whichever template compiles last will overwrite the previous model docs (if `destinationFilename` matches the extension or suffix in the generator's code).
## Custom Generator (and Template)
<a id="creating-a-new-template"></a> If none of the built-in generators suit your needs and you need to do more than just modify the mustache templates to tweak generated code, you can create a brand new generator and its associated templates. OpenAPI Generator can help with this, using the `meta` command:
@@ -20,7 +91,12 @@ These names can be anything you like. If you are building a client for the white
### Use your new generator with the CLI
To compile your library, enter the `out/generators/my-codegen` directory, run `mvn package` and execute the generator:
To compile your library, enter the `out/generators/my-codegen` directory, run `mvn package`.
**NOTE** Running your custom generator requires adding it to the classpath. This differs on [Windows](https://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html) slightly from [unix](https://docs.oracle.com/javase/8/docs/technotes/tools/unix/classpath.html).
If you are running a Windows Subsystem for Linux or a shell such as gitbash, and have issues with the unix variant, try the Windows syntax below.
Now, execute the generator:
```sh
java -cp out/generators/my-codegen/target/my-codegen-openapi-generator-1.0.0.jar:modules/openapi-generator-cli/target/openapi-generator-cli.jar org.openapitools.codegen.OpenAPIGenerator
@@ -28,7 +104,7 @@ java -cp out/generators/my-codegen/target/my-codegen-openapi-generator-1.0.0.jar
For Windows users, you will need to use `;` instead of `:` in the classpath, e.g.
```
java -cp out/generators/my-codegen/target/my-codegen-openapi-generator-1.0.0.jar;modules/openapi-generator-cli/target/openapi-generator-cli.jar org.openapitools.codegen.OpenAPIGenerator
java -cp "out/generators/my-codegen/target/my-codegen-openapi-generator-1.0.0.jar;modules/openapi-generator-cli/target/openapi-generator-cli.jar" org.openapitools.codegen.OpenAPIGenerator
```
Note the `my-codegen` is an option for `-g` now, and you can use the usual arguments for generating your code:
@@ -36,15 +112,15 @@ Note the `my-codegen` is an option for `-g` now, and you can use the usual argum
```sh
java -cp out/codegens/customCodegen/target/my-codegen-openapi-generator-1.0.0.jar:modules/openapi-generator-cli/target/openapi-generator-cli.jar \
org.openapitools.codegen.OpenAPIGenerator generate -g my-codegen \
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml \
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml \
-o ./out/myClient
```
For Windows users:
```
java -cp out/codegens/customCodegen/target/my-codegen-openapi-generator-1.0.0.jar;modules/openapi-generator-cli/target/openapi-generator-cli.jar \
java -cp "out/codegens/customCodegen/target/my-codegen-openapi-generator-1.0.0.jar;modules/openapi-generator-cli/target/openapi-generator-cli.jar" \
org.openapitools.codegen.OpenAPIGenerator generate -g my-codegen \
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml \
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml \
-o ./out/myClient
```
@@ -207,7 +283,7 @@ Each of these files creates reasonable defaults so you can get running quickly.
```sh
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 \
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml \
-g java \
-o samples/client/petstore/java \
-c path/to/config.json

View File

@@ -39,7 +39,7 @@ config.templateDir = 'src/openapi-generator-templates/Java/libraries/feign
```
mvn clean package
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.json \
-i https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.json \
-l java --library=okhttp-gson \
--additional-properties hideGenerationTimestamp=true \
-o /var/tmp/java/okhttp-gson/
@@ -55,7 +55,7 @@ To generate the Android SDK with [`volley`](https://github.com/mcxiaoke/android-
```
mvn clean package
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.json \
-i https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.json \
-l android --library=volley \
-o /var/tmp/android/volley/
```

View File

@@ -48,7 +48,7 @@ Let's see how to pass Ruby generated files to Rubocop, a static code analysis/li
# First, export the required environment variable
export RUBY_POST_PROCESS_FILE="/usr/local/bin/rubocop -a"
export OPENAPI_DOC="https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml"
export OPENAPI_DOC="https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml"
# Invoke the generator with --enable-post-process-file
openapi-generator generate --enable-post-process-file -i $OPENAPI_DOC -g ruby -o .out-ruby/

View File

@@ -29,7 +29,7 @@ The following generators are available:
* [erlang-proper](generators/erlang-proper.md)
* [flash-deprecated (deprecated)](generators/flash-deprecated.md)
* [go](generators/go.md)
* [go-experimental (experimental)](generators/go-experimental.md)
* [go-deprecated (deprecated)](generators/go-deprecated.md)
* [groovy](generators/groovy.md)
* [haskell-http-client](generators/haskell-http-client.md)
* [java](generators/java.md)
@@ -48,8 +48,8 @@ The following generators are available:
* [perl](generators/perl.md)
* [php](generators/php.md)
* [powershell (beta)](generators/powershell.md)
* [python](generators/python.md)
* [python-experimental (experimental)](generators/python-experimental.md)
* [python (experimental)](generators/python.md)
* [python-legacy](generators/python-legacy.md)
* [r](generators/r.md)
* [ruby](generators/ruby.md)
* [rust](generators/rust.md)
@@ -140,13 +140,13 @@ The following generators are available:
## SCHEMA generators
* [avro-schema (beta)](generators/avro-schema.md)
* [graphql-schema](generators/graphql-schema.md)
* [mysql-schema](generators/mysql-schema.md)
* [protobuf-schema (beta)](generators/protobuf-schema.md)
## CONFIG generators
* [apache2](generators/apache2.md)
* [graphql-schema](generators/graphql-schema.md)
* [protobuf-schema (beta)](generators/protobuf-schema.md)

View File

@@ -40,8 +40,8 @@ The following generators are available:
* [perl](perl.md)
* [php](php.md)
* [powershell](powershell.md)
* [python](python.md)
* [python-experimental (experimental)](python-experimental.md)
* [python](python.md)
* [python-legacy](python-legacy.md)
* [r](r.md)
* [ruby](ruby.md)
* [rust](rust.md)

View File

@@ -3,6 +3,8 @@ title: Config Options for ada-server
sidebar_label: ada-server
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|
@@ -29,14 +31,17 @@ sidebar_label: ada-server
## LANGUAGE PRIMITIVES
<ul class="column-ul">
<li>Boolean</li>
<li>Character</li>
<li>Integer</li>
<li>DateTime</li>
<li>binary</li>
<li>boolean</li>
<li>date</li>
<li>double</li>
<li>float</li>
<li>integer</li>
<li>long</li>
<li>number</li>
<li>object</li>
<li>string</li>
</ul>
## RESERVED WORDS
@@ -208,8 +213,8 @@ sidebar_label: ada-server
### Security Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|BasicAuth||OAS2,OAS3
|ApiKey||OAS2,OAS3
|BasicAuth||OAS2,OAS3
|ApiKey||OAS2,OAS3
|OpenIDConnect|✗|OAS3
|BearerToken|✗|OAS3
|OAuth2_Implicit|✗|OAS2,OAS3

View File

@@ -3,6 +3,8 @@ title: Config Options for ada
sidebar_label: ada
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|
@@ -29,14 +31,17 @@ sidebar_label: ada
## LANGUAGE PRIMITIVES
<ul class="column-ul">
<li>Boolean</li>
<li>Character</li>
<li>Integer</li>
<li>DateTime</li>
<li>binary</li>
<li>boolean</li>
<li>date</li>
<li>double</li>
<li>float</li>
<li>integer</li>
<li>long</li>
<li>number</li>
<li>object</li>
<li>string</li>
</ul>
## RESERVED WORDS
@@ -122,7 +127,7 @@ sidebar_label: ada
### Client Modification Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|BasePath||ToolingExtension
|BasePath||ToolingExtension
|Authorizations|✗|ToolingExtension
|UserAgent|✗|ToolingExtension
|MockServer|✗|ToolingExtension
@@ -163,7 +168,7 @@ sidebar_label: ada
### Documentation Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|Readme||ToolingExtension
|Readme||ToolingExtension
|Model|✓|ToolingExtension
|Api|✓|ToolingExtension
@@ -183,7 +188,7 @@ sidebar_label: ada
|MultiServer|✗|OAS3
|ParameterizedServer|✗|OAS3
|ParameterStyling|✗|OAS3
|Callbacks||OAS3
|Callbacks||OAS3
|LinkObjects|✗|OAS3
### Parameter Feature
@@ -202,20 +207,20 @@ sidebar_label: ada
| ---- | --------- | ---------- |
|Simple|✓|OAS2,OAS3
|Composite|✓|OAS2,OAS3
|Polymorphism||OAS2,OAS3
|Polymorphism||OAS2,OAS3
|Union|✗|OAS3
### Security Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|BasicAuth||OAS2,OAS3
|ApiKey||OAS2,OAS3
|BasicAuth||OAS2,OAS3
|ApiKey||OAS2,OAS3
|OpenIDConnect|✗|OAS3
|BearerToken||OAS3
|OAuth2_Implicit||OAS2,OAS3
|OAuth2_Password||OAS2,OAS3
|OAuth2_ClientCredentials||OAS2,OAS3
|OAuth2_AuthorizationCode||OAS2,OAS3
|BearerToken||OAS3
|OAuth2_Implicit||OAS2,OAS3
|OAuth2_Password||OAS2,OAS3
|OAuth2_ClientCredentials||OAS2,OAS3
|OAuth2_AuthorizationCode||OAS2,OAS3
### Wire Format Feature
| Name | Supported | Defined By |

View File

@@ -3,6 +3,8 @@ title: Config Options for android
sidebar_label: android
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|
@@ -34,17 +36,11 @@ sidebar_label: android
|ArrayList|java.util.ArrayList|
|BigDecimal|java.math.BigDecimal|
|Date|java.util.Date|
|DateTime|org.joda.time.*|
|File|java.io.File|
|HashMap|java.util.HashMap|
|LinkedHashSet|java.util.LinkedHashSet|
|List|java.util.*|
|LocalDate|org.joda.time.*|
|LocalDateTime|org.joda.time.*|
|LocalTime|org.joda.time.*|
|Map|java.util.Map|
|Set|java.util.*|
|Timestamp|java.sql.Timestamp|
|URI|java.net.URI|
|UUID|java.util.UUID|

View File

@@ -3,6 +3,8 @@ title: Config Options for apache2
sidebar_label: apache2
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|
@@ -18,23 +20,6 @@ sidebar_label: apache2
| Type/Alias | Imports |
| ---------- | ------- |
|Array|java.util.List|
|ArrayList|java.util.ArrayList|
|BigDecimal|java.math.BigDecimal|
|Date|java.util.Date|
|DateTime|org.joda.time.*|
|File|java.io.File|
|HashMap|java.util.HashMap|
|LinkedHashSet|java.util.LinkedHashSet|
|List|java.util.*|
|LocalDate|org.joda.time.*|
|LocalDateTime|org.joda.time.*|
|LocalTime|org.joda.time.*|
|Map|java.util.Map|
|Set|java.util.*|
|Timestamp|java.sql.Timestamp|
|URI|java.net.URI|
|UUID|java.util.UUID|
## INSTANTIATION TYPES

View File

@@ -3,6 +3,8 @@ title: Config Options for apex
sidebar_label: apex
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|
@@ -62,6 +64,7 @@ sidebar_label: apex
<li>begin</li>
<li>bigdecimal</li>
<li>blob</li>
<li>boolean</li>
<li>break</li>
<li>bulk</li>
<li>by</li>
@@ -75,7 +78,6 @@ sidebar_label: apex
<li>commit</li>
<li>const</li>
<li>continue</li>
<li>convertcurrency</li>
<li>currency</li>
<li>date</li>
<li>datetime</li>
@@ -84,6 +86,7 @@ sidebar_label: apex
<li>delete</li>
<li>desc</li>
<li>do</li>
<li>double</li>
<li>else</li>
<li>end</li>
<li>enum</li>
@@ -97,7 +100,6 @@ sidebar_label: apex
<li>float</li>
<li>for</li>
<li>from</li>
<li>future</li>
<li>global</li>
<li>goto</li>
<li>group</li>
@@ -111,13 +113,10 @@ sidebar_label: apex
<li>insert</li>
<li>instanceof</li>
<li>int</li>
<li>integer</li>
<li>interface</li>
<li>into</li>
<li>join</li>
<li>last_90_days</li>
<li>last_month</li>
<li>last_n_days</li>
<li>last_week</li>
<li>like</li>
<li>limit</li>
<li>list</li>
@@ -126,10 +125,6 @@ sidebar_label: apex
<li>map</li>
<li>merge</li>
<li>new</li>
<li>next_90_days</li>
<li>next_month</li>
<li>next_n_days</li>
<li>next_week</li>
<li>not</li>
<li>null</li>
<li>nulls</li>
@@ -148,16 +143,14 @@ sidebar_label: apex
<li>public</li>
<li>retrieve</li>
<li>return</li>
<li>returning</li>
<li>rollback</li>
<li>savepoint</li>
<li>search</li>
<li>select</li>
<li>set</li>
<li>short</li>
<li>sobject</li>
<li>sort</li>
<li>stat</li>
<li>static</li>
<li>string</li>
<li>super</li>
<li>switch</li>
<li>synchronized</li>
@@ -165,28 +158,22 @@ sidebar_label: apex
<li>testmethod</li>
<li>then</li>
<li>this</li>
<li>this_month</li>
<li>this_week</li>
<li>throw</li>
<li>time</li>
<li>today</li>
<li>tolabel</li>
<li>tomorrow</li>
<li>transaction</li>
<li>trigger</li>
<li>true</li>
<li>try</li>
<li>type</li>
<li>undelete</li>
<li>update</li>
<li>upsert</li>
<li>using</li>
<li>virtual</li>
<li>void</li>
<li>webservice</li>
<li>when</li>
<li>where</li>
<li>while</li>
<li>yesterday</li>
</ul>
## FEATURE SET

View File

@@ -3,6 +3,8 @@ title: Config Options for asciidoc
sidebar_label: asciidoc
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|

View File

@@ -3,6 +3,8 @@ title: Config Options for aspnetcore
sidebar_label: aspnetcore
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|aspnetCoreVersion|ASP.NET Core version: 3.1, 3.0, 2.2, 2.1, 2.0 (deprecated)| |2.2|
@@ -61,6 +63,7 @@ sidebar_label: aspnetcore
<li>DateTime?</li>
<li>DateTimeOffset</li>
<li>DateTimeOffset?</li>
<li>Decimal</li>
<li>Dictionary</li>
<li>Double</li>
<li>Float</li>

View File

@@ -3,6 +3,8 @@ title: Config Options for avro-schema
sidebar_label: avro-schema
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|

View File

@@ -3,6 +3,8 @@ title: Config Options for bash
sidebar_label: bash
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|
@@ -25,23 +27,6 @@ sidebar_label: bash
| Type/Alias | Imports |
| ---------- | ------- |
|Array|java.util.List|
|ArrayList|java.util.ArrayList|
|BigDecimal|java.math.BigDecimal|
|Date|java.util.Date|
|DateTime|org.joda.time.*|
|File|java.io.File|
|HashMap|java.util.HashMap|
|LinkedHashSet|java.util.LinkedHashSet|
|List|java.util.*|
|LocalDate|org.joda.time.*|
|LocalDateTime|org.joda.time.*|
|LocalTime|org.joda.time.*|
|Map|java.util.Map|
|Set|java.util.*|
|Timestamp|java.sql.Timestamp|
|URI|java.net.URI|
|UUID|java.util.UUID|
## INSTANTIATION TYPES

View File

@@ -3,6 +3,8 @@ title: Config Options for c
sidebar_label: c
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|

View File

@@ -3,6 +3,8 @@ title: Config Options for clojure
sidebar_label: clojure
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|
@@ -24,23 +26,6 @@ sidebar_label: clojure
| Type/Alias | Imports |
| ---------- | ------- |
|Array|java.util.List|
|ArrayList|java.util.ArrayList|
|BigDecimal|java.math.BigDecimal|
|Date|java.util.Date|
|DateTime|org.joda.time.*|
|File|java.io.File|
|HashMap|java.util.HashMap|
|LinkedHashSet|java.util.LinkedHashSet|
|List|java.util.*|
|LocalDate|org.joda.time.*|
|LocalDateTime|org.joda.time.*|
|LocalTime|org.joda.time.*|
|Map|java.util.Map|
|Set|java.util.*|
|Timestamp|java.sql.Timestamp|
|URI|java.net.URI|
|UUID|java.util.UUID|
## INSTANTIATION TYPES

View File

@@ -3,6 +3,8 @@ title: Config Options for cpp-pistache-server
sidebar_label: cpp-pistache-server
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|addExternalLibs|Add the Possibility to fetch and compile external Libraries needed by this Framework.| |true|

View File

@@ -3,6 +3,8 @@ title: Config Options for cpp-qt5-client
sidebar_label: cpp-qt5-client
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|

View File

@@ -3,6 +3,8 @@ title: Config Options for cpp-qt5-qhttpengine-server
sidebar_label: cpp-qt5-qhttpengine-server
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|

View File

@@ -3,6 +3,8 @@ title: Config Options for cpp-restbed-server
sidebar_label: cpp-restbed-server
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|apiPackage|C++ namespace for apis (convention: name.space.api).| |org.openapitools.server.api|

View File

@@ -3,6 +3,8 @@ title: Config Options for cpp-restsdk
sidebar_label: cpp-restsdk
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|apiPackage|C++ namespace for apis (convention: name.space.api).| |org.openapitools.client.api|

View File

@@ -3,6 +3,8 @@ title: Config Options for cpp-tizen
sidebar_label: cpp-tizen
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|

View File

@@ -3,6 +3,8 @@ title: Config Options for cpp-ue4
sidebar_label: cpp-ue4
---
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|

Some files were not shown because too many files have changed in this diff Show More