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
* Introduce jaxrs-cxf-client-jackson-nullable sample
Generated using: ./bin/generate-samples.sh bin/configs/other/openapi3/jaxrs-cxf-client-jackson-nullable.yaml
* Add support for openApiNullable to JavaCXFClientCodegen
Add import mapping for JsonNullable to AbstractJavaCodegen
* Deduplicate string "jackson" in generators extending AbstractJavaCodegen
* Adjust nullable fields
* Adjust standard getters for nullable fields
add @JsonIgnore to standard getters
* Adjust standard setters for nullable fields
* Adjust fluent setter for nullable fields
* Introduce distinct getter and setter for nullable fields
* Adjust add method for nullable lists
* Adjust put method for nullable maps
* Cleanup JavaJaxRS/cxf/pojo.mustache
* Further cleanup JavaJaxRS/cxf/pojo.mustache
* Adjust inner enum getters
* 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
For tests it’s useful to have direct access to the Wai `Application`,
which is the plain function from `Request` to `Response`.
Then you don’t need to use a full-blown http server to run requests.
* Adds boolean enum component and object property and tests of it
* Regenerates samples
* Passes needed locale argument to toUpperCase
* Regenerates samples
* [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>