* Cherry picked commits from add-support-for-collection-of-generic-classes
* Regenerated samples
* Missing work by @adamsz-lume
* Try to fix maven plugin error
Co-authored-by: Bruno Coelho <4brunu@gmail.com>
* Fix obvious typo
* Add function to build Composer package name
* Add composerPackageName codegen property
* Use package name if it's not empty
* Refresh samples
* fix-filename-from-header-response-retrieval: fix early exit of iteration
before a match could be found
* fix-filename-from-header-response-retrieval: fixed same bug for alamofire usage too
* fix-filename-from-header-response-retrieval: build project and update samples
Co-authored-by: Christopher Gretzki <gretzki@adesso-mobile.de>
Refs #3358
Ensure `deprecated` operations are annotated/documented as such on the
generated methods. Libraries updated:
* [feign]
* [google-api-client]
* [microprofile]
* [okhttp-gson]
* [resttemplate]
* [retrofit]
* [retrofit/play*]
* [webclient]
* [vertx]
Ensure `deprecated` schemas are annotated/documented as such on the
generated classes/fields. Libraries updated:
* [feign]
* [google-api-client]
* [jersey2]
* [microprofile]
* [native]
* [okhttp-gson]
* [rest-assured]
* [resteasy]
* [resttemplate]
* [retrofit*]
* [webclient]
* [vertx]
Also fix two minor bugs to get the java sample tests working:
* Fix an invalid jackson-datatype-threetenbp version number in vertx/pom.mustache
* Fix a bad return type in webclient/api_test.mustache when uniqueItems=true
Since this commit updates petstore-with-fake-endpoints-models-for-testing.yaml,
several other samples were updated, but it's just new files to reflect the
deprecated schemas, so there should be no consequential differences.
Relevant bits of the spec:
* https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#user-content-operationdeprecated
* https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#user-content-schemadeprecated
* Make endpoints which don't return anything yield NoContent
Relevant issue: OpenAPITools/openapi-generator#9901
The haskell-http-client generator tries to generate a polymorphic return
type for endpoints which don't return anything in the success case, but
still produce content in other cases. This means that these endpoints
hit a decoding error in the success case, because there is no content to
decode.
This changes the behaviour so that endpoints that don't return anything
are *always* generated as returning NoContent, and never try to decode
the response. This change is based on a similar one for the
haskell-servant generator, which can be found at:
OpenAPITools/openapi-generator#9830
which resolved a similar issue for that generator.
* Update samples after haskell-http-client NoContent change
* [BUG][PYTHON] Do not set Content-Type for GET, HEAD or DELETE requests
The Python generator no longer sets a default `Content-Type` of
`application/json` for `GET`, `HEAD` and `DELETE` requests.
Having the `Content-Type` set for these requests was causing issues with
other tools which insist that GET, HEAD and DELETE requests do not have
a Content-Type (as per the OpenAPI 3 specification).
An example of the problem that this commit fixes is when using
[Prism][1] as a [validation proxy][2].
[Prism rejects any GET request that has a Content-Type][3].
Here is [an example of the problem manifesting itself][4].
To validate the fix in this commit:
1. Start with any OpenAPI3 spec e.g. the Petstore example at
https://editor.swagger.io/
2. Generate Python client code for the spec
3. Look at the generated `rest.py` e.g. in the [standard sample in this
repo][5] and see that the `Content-Type` defaults to `application/json`
for all HTTP methods (including `GET`, `HEAD` and `DELETE`), rather than
there being no `Content-Type` for `GET`, `HEAD` and `DELETE`.
Fixes#9831
[1]: https://github.com/stoplightio/prism
[2]: https://meta.stoplight.io/docs/prism/docs/guides/03-validation-proxy.md
[3]: https://github.com/stoplightio/prism/issues/1408#issuecomment-690948020
[4]: https://github.com/agilepathway/gauge-openapi-example/pull/28/checks?check_run_id=2888606052#step:13:18
[5]: 969cea8ce1/samples/openapi3/client/petstore/python/petstore_api/rest.py (L141)
* update samples
* Fix Python DELETE bug introduced in earlier commit
The earlier commit 9dfe1f6 introduced a bug for `DELETE` requests on the
standard Python generator. This commit fixes that bug and also includes
the updated samples.
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [Java] [Native] Unify exception messages for async, add the status code
The template has two methods for creating API exceptions, and the enhancements from #9169 didn't make it to the async version.
- unify the signatures of the two methods (name, arguments)
- make sure the sync version is not generated with asyncNative
- extract the formatting logic into a common formatExceptionMessage() method
- add the status code to the exception message as well, not just the body
- shortened "call received non-success response" to a more concise "call failed with"
* Treat an empty body the same as a null body
Co-authored-by: Jens Fischer <jens.fischer@vier.ai>
* Update Kotlin Multiplatform with Kotlin 1.5.10, Ktor 1.6.0 and Kotlinx.serialization 1.2.1
* remove @Serializable from interfaces
* Using 'String(CharArray): String' is an error. Use CharArray.concatToString() instead
* Fix, RequestConfig needs a type to infer type variable T
Fixes from @DevSrSouzaern
* Fix `private` keyword not being handle as a reservedWords
* Fix enum serialization generation
* Migrate gradle build to Kotlin DSL
* update samples and documentation
* PR Review changes
* sample update
* revert non multiplatform kotlinx_serialization removal
* default Json{} in ApiClient
* revert accidental version push for jvm client
* Match ktor and Kotlinx Serialization version in documentation and build.gradle.kts
* remove const from JSON_DEFAULT
* Update AbstractKotlinCodegen.java
Co-authored-by: Gabriel Souza <devsrsouza@gmail.com>
Co-authored-by: ern <ern@ti8m.ch>
* Implement new PowerShell example structure
Signed-off-by: Simeon Gerginov <sgerginov@vmware.com>
* Modify documentation template to work with the new PowerShell example format
Signed-off-by: Simeon Gerginov <sgerginov@vmware.com>
* Update PowerShell Generator documentation with the new properties
Signed-off-by: Simeon Gerginov <sgerginov@vmware.com>
* Update PowerShell samples with the new PowerShell example format
Signed-off-by: Simeon Gerginov <sgerginov@vmware.com>
* Fix issues with array of models as parameters
Signed-off-by: Simeon Gerginov <simeongerginov1@gmail.com>
* Change string value generation to include the prefix 'My'
Signed-off-by: Simeon Gerginov <simeongerginov1@gmail.com>
* Remove multiple new lines and trim leading and trailing spaces in PowerShell example
Signed-off-by: Simeon Gerginov <simeongerginov1@gmail.com>
* conditional serialization add only those property which user wants to configure.
* fixed the samples
* fixed the sample String to string issue.
* fixed the sample String to string issue.
* updated the sample
* Added unit test for conditional serialization
* update samples
* remove trailing spaces, update samples
* remove files
* add back files
* build the project in the ci
Co-authored-by: William Cheng <wing328hk@gmail.com>
* first commit: add cli option for saga and records. Added dummy sagas.mustache test file.
* More progress with default values. First prototype for isEntity and isUniqueId.
* record generation complete
* record generation complete
* progress with saga generation
* progress with saga generation
* first fully working saga generation
* merge with latest master
* removed unneeded "items" properties.
* moved global CodegenModel modifications into subclass ExtendedCodegenModel used exclusively by TypescriptFetchClient. Adding missing samples files.
* moved global CodegenOperation modifications into subclass ExtendedCodegenOperation used exclusively by TypescriptFetchClient.
* moved global CodegenProperty modifications into subclass ExtendedCodegenProperty used exclusively by TypescriptFetchClient.
* moved global CodegenParameter modifications into subclass ExtendedCodegenParameter used exclusively by TypescriptFetchClient.
* added the missing "allSagas" export.
* renamed & reworked "meta data response" flags to a more useful general concept of "operation return passthrough"
* added vendor flag keepAsJSObject as escape hatch to support circular dependencies in models and other special cases. Also fixed issues with default values for some records properties.
* added autodetection for passthrough to simplify standardised specs.
* fix small issue with passthrough void
* fix small issues with passthrough void and missing passthrough imports in some cases. Fix issues with enum default values.
* fix small issues with passthrough void and missing passthrough imports in some cases. Fix issues with enum default values.
* Added "reservedRecordField" feature to support remapping fields names that cannot be used in Records. Added missing export to record: toApi().
* added uniqueId inference. Fix small generation when uniqueId property is an array.
* removed feature "reservedRecordField" and replaced it with existing built-in "reserved words" feature. Fix minor issues with typings in generated files.
* Changed api recType names to make them less likely to cause name conflicts. Added generated ApiEntities (record, reducer & selector) files.
* Moved location of ApiEntities related files and fix issues with exports.
* - merge latest master
- renamed fake test apis to better fit the "pet theme"
- added mode for "SourceOnlyLibrary" (same as used in codegen typescript jquery)
* - missing ganarate sampless
* - Modified way to export apiEntitiesSelectpr to reduce typescript analysis time for consuming project. Removed tab characters in mustache files. Reformat code for TypeScriptFetchClientCodegen to try to remove false positive for tabs vs spaces.
* - added markErrorsAsHandled property to api sagas. Increased typescript version to address some typing errors on library build.
* - fix bug in saga interfaces. Upgraded to typescript "strict" mode to ensure proper typechecking info is generated.
* - added optional id for apiEntity selectors. Added toInlined() support to convert an entity to an inlined model recursively.
* - minor tweak for apiEntitySelector to accept null id
* - minor tweak for apiEntitySelector
* - runned ensure up to date.
* Revert "- runned ensure up to date."
This reverts commit ea9b4aed
* - runned ensure up to date.
* - runned ensure up to date.
Co-authored-by: Bruno Flamand <bflamand@stingray.com>