* fix#17831 @lombok.NonNull on all required fields when any lombok annotation is included
* fix#17831 @lombok.NonNull on all required fields when any lombok annotation is included
* [kotlin-spring] Parameter Name and Description are now used properly in multipart form endpoints
* [kotlin-spring] Parameter Name and Description are now used properly in multipart form endpoints (generated docs and samples)
* [kotlin-spring] Parameter Name and Description are now used properly in multipart form endpoints (generated docs and samples)
---------
Co-authored-by: Kevin Hahn <kevin.hahn@partner.ionity.eu>
* [kotlin] Enum should match spec
Adjust the enum generation to match what is in the spec, rather than
camel-casing it.
Add tests for capitalization scenarios, including for kotlin keywords
* [kotlin] export docs generators for enum change
* [kotlin] export docs generators for enum change
* fix conflicts
---------
Co-authored-by: Tyler B. Thrailkill <tylerbthrailkill@gmail.com>
Co-authored-by: Jari Nystedt <jari.nystedt@tietoevry.com>
* Add notes to requests for better readability
* Adds extra configs for jetbrains http client for testing
* Adding new sample data
* Changes
* Setting up test infrastructure
* Adds body to requests.
* Fixing some bugs in map traversal
It'd be much better to use a proper library for this though
* Adding secret file to gitignore
* Adds github spec, for complex example.
Add null check to avoid errors in example extraction
* Add support for custom variables in request body
* Add support for all basic Auth headers
* Not sure whaet happened with my api mustache file
* Add support for custom headers
* Fixes empty lines issue
* Adds support for Accept header
* Adding many tests, deleting experiment files
* Updates generator doc
* Completes README file with extra information
* Runs generate-samples and export docs
* Running sample generation
* Adding missing files to samples
* Removing forgotten stdout statements
* Ignore one test making the docker image generation fail
* add initial openapi config and java generated files
* add java implementation for adding generator version
* regenerate sample client files
* remove tabs
* only show generated version if build info exists
* set build info for batch generation
* update generator doc for new global flag
* use existing property for generator version
* update templates to include generator version
* update templates for better generator version syntax
* revert undesired changes
* regenerate samples for openapi client
* update templates to correct formatting/newlines
* correct description text and add to usage doc
* add generator cli option for all codegen types
* use more concise version info; update existing codegens to support new prop
* correct wrong prop reference
* add initial test coverage for new prop
* update last (scala) templates with new prop
* update samples after upstream merge
* use consistent version output
* use better sample project id/name
* revert using option for generator version in templates
* + Cookie parameter generation fixed
* Added cookie parameter mustache template for generating cookie related code
* Adapted kotlin-spring api templates to include cookie parameters
* Added tests for evaluating cookie parameter code generation
* Added configuration sample for the new cookie use case
* - Unused fake cases removed
* Removed fake cases from openapi spec that were not related to cookie usage
* Cleaned sample files
* added jackson as supported serialization library for retrofit2; resolves#7435
* Jackson support for retrofit2 library: Adjusted ApiClient to respectively include only gson or jackson specific conversion support depending on which serialization framework is selected
* Jackson support for retrofit2 library: Adjusted dependencies to respectively only include those necessary for gson or jackson depending on which serialization framework is selected
* reorder converter factory additions to have minimal change
* -: skipping gson-fire dependency when gson is not selected
* -: Jackson support for retrofit2 library: since useplayws implies jackson usage, only adding dependencies via useplayws that are specific to it
* Jackson support for retrofit2 library: fixed whitespace issue in generated api clients
* Jackson support for retrofit2 library: removed duplicated play26 dependency version property
* Jackson support for retrofit2 library: update to play26 example as that had gson dependencies but does not seem to use it and now fully relies on the jackson setting to control the respective dependencies; play version property and dependency changed place because the jackson dependencies are grouped together and the play26 ones are placed after
* Jackson support for retrofit2 library: adjusting dependencies also for gradle file
* -: moved jackson databind version out of jackson section since it is used independently of jackson support it seems
* -: update gradle dependencies to match changes in maven dependencies
* Improve Add Async - Spring Cloud test
By testing the generated code.
This will be used to detect regressions.
* Spring: Fix reactive return type for list
Fix for #16883.
When *reactive* is enabled and response entities is *disabled*,
use `Flux<Item>` to stream the output instead of `Mono<Flux<Item>>`
With Spring Reactive, the expected return type for an array of item is
`Flux<Item>`.
Without this patch, the generated code is `Mono<Flux<Item>>`.
This is fixed by introducing specific handling for return types when
reactive is enabled.
In particular, "responseWrapper" is not used anymore in such situations.
* Fix methodBody
* Fix invalid test
* Fix SSE
* Fix methodBody when isArray and useResponseEntity
* methodBody: Flux.empty() instead of s -> {}
``EntityUtils#toString`` automatically selects the correct encoding based on the received request.
Scanner currently uses the JVM default encoding, which doesn't always work.
* Update csharp oneOf and anyOf mustache templates to accept primitive, object, and array types when deserializing
Add bug openapi spec
Remove generated files
Add test endpoints
Generate base on spec
Remove issue spec as it is moved into sample test spec
Add back in number and int
Round trip anyOf/oneOf serialization tests
Generate classes with int/num types
Do through converter instead of object ctor
Regen models
Use convert methods
Regen models
Test data
Add enum
Remove enums
Regenned models
* update sha256
* use new spec
* skip tests
* update workflow
* fix
---------
Co-authored-by: Ruben Aguilar <ruben.aguilar@forgeglobal.com>
* [okhttp-gson] Make initializer block for GSON builder static #16860
Make initializer block for GSON builder static, see #16860
* update sapmles
---------
Co-authored-by: Andre Wachsmuth <awa@xima.de>
* feat(client): support ability to disable boxed models
Add new additional property `avoidBoxedModels` which can be configured to avoid `Box<..>` of models.
It's very nice to have such config, because it doesn't make a lot of sense for really simple models.
* test: rollback config of existed test
* Fixed invalid extraction of response body in kotlin-client jvm-spring-*
* Generated echo-api for kotlin-jvm-spring-3-restclient
* Specific echo-api for Kotlin without allOf/anyOf
* Specific echo-api for Kotlin without allOf/anyOf
* Generated all samples
* Added kotlin-jvm-spring-3-restclient sample to workflow
* Fixed syntax problem
* [kotlin] Fixed multiple problems with default values
* [kotlin] Removed old commented code
* [kotlin] Generated new samples after merge with master
* [kotlin] ensure-up-to-date
* fix(rust): discriminator mapping to serde rename
Discriminator mapping has been ignored in some cases.
Even existing samples had wrong definition in some cases
This PR addresses this
* fix(rust): `oneOf` generation for client
Solves #17869 and #17896 and also includes unmerged $17898
Unfortunately it affects quite a lot of code, but we can see that only client-side models were affected by re-generation.
I tried to split this PR to several, but they're really coupled and hard to create a chain of PRs.
* fix: indentation in `impl Default`
* missing fixes
* fix: correct typeDeclaration with unaliased schema
* style: improve indentation for models
* fix: user toModelName for aliases of oneOf
* refactor: unify `getTypeDeclaration` for rust
* cover the case when `mapping` has the same `ref` for different mapping names
* test: add test for previous change
* style: remove extra qualified path to models
* add some comments
* fix(build): use method of `List` instead of specific for `LinkedList`
* add feature to generate only interface files
* generate sample
* add workflow file foe go gin service
* add workflow file foe go gin service
* add workflow file foe go gin service
* update samples
* fix(rust): simplify None logic
Used to be a code path (where isFreeFormObject and something else) where we could end up with two `: None` `: None`'s
This does add the None for the !required && !isArray && !isMap && !isNullable case (where nothing would have been printed before.
Above for the type on the individual vars inside the struct definition the logic is simply if not required then it's optional.
If it's optional we want a None when creating a new struct.
* ci: add tests for failure
* Use `exists()` to check for existing properties.
* Generate Petstore code.
* Fix use of `null` instead of `undefined`.
* Enhance function code.
* Regenerate Petstore code.
* Use `exists()` in generated API clients.
* Use `exists()` in generated API clients.
* Refer to properties differently.
Even though `title` is technically for the title of the API itself,
it's possible to set it for properties as well.
Right now, the `title` property is available in templates for regular properties,
but for ref-properties it gets lost right here.
This seemed rather surprising to me, so I think it's better to fix.
* Adds Collapse Spec Optionss to Maven Plugin
* Adds a collapsedSpec option to the maven plugin that produces a single-file representation of the spec in the output directory.
* Adds a includeCollapsedSpecInArtifacts option to the maven plugin that adds the collapsed spec file to the maven artifacts.
* Address Feedback Round 1
* Adds the new options to the maven plugin README.md.
* Fixes Unit Tests
* Corrects the casing of one of the schema files that was causing the tests to fail.
* fix(ruby): Detect content-type in form-data file upload using faraday (#17851)
* Update samples
* Add needed dependency libmagic-dev into node 1 setup of Circle Parallel CI
* After merge/pull last master + regeneration of samples
* [rust] basic oneOf support
Suport oneOf as a rust struct enum.
Details:
Enum without a discriminator is untagged being
"untagged" simply means serde won't attempt to
store the name of the enum inside the serialized
object. See
https://serde.rs/enum-representations.html#untagged
for more
Also check to make sure the mapping values
are not an empty object (aka null).
Co-authored-by: Nikita Puzankov <git@bshn.rs>
* refactor: fix clippy lints
No longer needed as of reqwest 0.10, it now takes the response as owned instead of mut ref.
Is not empty is more clear
* fix: discriminator and oneof case
Will show as a struct enum when there are additional fields, otherwise will be a tuple enum.
not sure the purpose of x-mapped-models, perhaps legacy code? mappedModels appears to do the same thing.
Also add default implementation for quality of life
* chore: update samples
---------
Co-authored-by: Nikita Puzankov <git@bshn.rs>
Executing the command from the README file should allow the user to run the application. Without the proposed changes either the error message `Error loading ASGI app. Could not import module "main".` or `ModuleNotFoundError: No module named 'openapi_server'` is being returned.
It's reported by phpstan as `Dynamic call to static method PHPUnit\Framework\Assert::markTestIncomplete().`.
The method is static, therefore it should not be called from instance context.
- `selectHeadersForMultipart()` does not exist,
- therefore we have to call `selectHeaders()`
This is signature of `public function selectHeaders(array $accept, string $contentType, bool $isMultipart): array;`
We have to pass `$multipart` as 3rd parameter.
The second parameter is content type as string, not in array.
The EOL is missing so let's add it in order to comply with POSIX standard:
Line
> A sequence of zero or more non- <newline> characters plus a terminating <newline> character.
Include API info in RestConfiguration for java-camel-server mustache template to prevent warning on startup as OpenAPI information can't be created otherwise.
The previous link no longer worked, so I've updated it to the latest
version of the TypeScript handbook.
Signed-off-by: Lucian Buzzo <lucian.buzzo@gmail.com>
* php-dt update:
- bump minimal required PHP version to 7.4 (8.1 for modern mode)
- bump minimal required DataTransfer version to 0.6
- support for date / date-time string lists and maps
- support for request and response bodies with date / date-time string schema
- minimal file string support
* docs update
* Update model_generic.mustache, tuple notation breaks when there is only one element in the tuple
In this excerpt of the mustache template, the matching behaviour is bugged when there is only one element in the tuple notation. A single string with the tuple notation, e.g., `("string")`, will result in a string, and when values are compared with the string, it will do a `contains` match instead of an exact match, which is unintended behaviour.
* Update with samples, step 3
* Add test spec and regenerate samples
* Update samples
* Update spec and samples
* update samples
---------
Co-authored-by: Edmund Loo <edmundloo@users.noreply.github.com>
Co-authored-by: Edmund Loo <github.yn0u9@simplelogin.com>
* fix: handle variables that have items that contain a complexType of `time.Time` properly
Signed-off-by: Paul Horton <phorton@sonatype.com>
* chore: trigger new CI runs
Signed-off-by: Paul Horton <phorton@sonatype.com>
* test: added test change an regenerated samples
Signed-off-by: Paul Horton <phorton@sonatype.com>
* resolved merge issues with upstream main
Signed-off-by: Paul Horton <phorton@sonatype.com>
* regenerated samples
Signed-off-by: Paul Horton <phorton@sonatype.com>
---------
Signed-off-by: Paul Horton <phorton@sonatype.com>
* add lombok model support on spring
* use regex to adapt annotation with parenthesis
* add ut case
* add samples
* add samples
* fix github workflow
* fix github workflow
* Add serialVersionUID to Java apiException.mustache templates
* Use 'enable()' and 'disable()' methods to handle object mapper features in JSON.mustache for the "native" Java generator instead of the deprecated 'configure()'
* Update samples
This class with the optional OpenAPIDefinition annotations is now generated always.
And no longer only when the interfaceOnly is set to false (default).
This commit fixes an issue where the object mapper is not passed to the JacksonConverterFactory. The issue causing the serialization to fail when passing to the ApiClient a pre-configured mapper object (e.g. the primary bean of SpringBoot).
With this fix, the bean would be correctly passed to the factory, and the serialization would work "out of the box" for the pre-configured bean.
* Added option to mustache template that allows passing of non JSON request bodies
* Used linux terminal to run the generator scripts
---------
Co-authored-by: mHejlesen <mads.hejlesen@secata.com>
* Fixed invalid extraction of response body in kotlin-client jvm-spring-*
* Generated echo-api for kotlin-jvm-spring-3-restclient
* Specific echo-api for Kotlin without allOf/anyOf
* Specific echo-api for Kotlin without allOf/anyOf
* Generated all samples
* Added kotlin-jvm-spring-3-restclient sample to workflow
* Fixed syntax problem
* test(perl): Update test plan to use done_testing
close#14921
* fixup! test(perl): Update test plan to use done_testing
results of "./bin/generate-samples.sh ./bin/configs/perl.yaml"
* fixup! test(perl): Update test plan to use done_testing
regenerate samples
---------
Co-authored-by: William E Little Jr <13027375-bmodotdev@users.noreply.gitlab.com>
* feat: add `java-wiremock` generator
* remove text block usage for samples
this will allow more version of jav to be compatible with this
* fix extra parenthesis
* Add java-wiremock workflow
* chore: Remove leftover Github action file
This was probably added by mistake. A similar file is active in
.github/workflows/samples-python-pydantic-v1-petstore.yaml.
* chore: Remove leftover VERSION from old python-experimental sample
* ci: Stop running Python integration tests in Circle CI
These Python clients are all tested with Github Actions already, which
is faster, more cleanly separated and only runs on modifications.
I'm not cleaning up the pydantic-v1 client, I expect it to be removed soon anyway.
* chore: Remove true from sample folder name
python-disallowAdditionalPropertiesIfNotPresent-true
-> python-disallowAdditionalPropertiesIfNotPresent
* kotlin-server: Add support for Javalin
* kotlin-server: Add Javalin generated sample code
* Add output from build scripts
* Address MR feedback
* Update CI to include new Javalin sample
* Uses ParseQuery to check for malform paramater value pairs.
Runs ./mvnw clean package, ./bin/generate-samples.sh ./bin/configs/*.yaml, and ./bin/utils/export_docs_generators.sh.
* Adds missing import
* Only import url if hasQueryParams.
* Adds helper function to wrap url.ParseQuery.
* Fixes function return signature
Because the requirements file does not limit connexion version to below
3.0, with release of connexion 3.0 the openapi server startup sequence
runs into a module not found issue.
This contraint is preventing that.
The DefaultCodegen now iterates through all api operations.
This allows to access different examples based on the response per status code and content type.
When an example was specified for a property with the `date` format, it's example would be generated to something like `2024-01-01T00:00:00.000+00:00` or `Sat Jan 30 01:00:00 CET 2021`.
It's because the resolved type for a Date example is a DateSchema, and a DateSchema uses `java.util.Date` to represents the Date. Which gets printed using .toString() not in the YYYY-MM-dd format.
Fixes#17494#15342
* fix: ExampleGenerator correctly generates allOf composed schemas
Changes the previous behavior of generating `null` examples for allOf composed schemas.
Fixes#17497
* fix: ExampleGenerator correctly generates anyOf and oneOf composed schemas
Changes the previous behavior of generating `null` examples for anyOf and oneOf composed schemas.
To generate a oneOf/anyOf example, we generate the example using the first valid schema available. In case of a $ref, we use the first valid reference.
Fixes#17497
* python: adjust basic typing information
This is an initial pass to fix and adjust the typing information for the
generated client. This is enough to have mypy runnning without complains
on all the (modern) generated clients (Pydantic v1 code is not checked
for instance)
mypy is also now run directly in the CI, so further changes will also be
checked and thus, will need to be compliant with good typing
information.
Note that this doesn't *fully* type all the code: mypy is not run in
"strict" mode and there are still many functions/methods/attributes
which are still not fully typed, but it's a first good step in that
direction.
* ApiResponse's raw_data can't be None
* Fix indentation
* Revert test changes
* run mypy on tests/ directory
* don't forcefully convert the client response headers to dict
* override petstore ApiResponse model
* adjust type of 'any/one_of_schemas' fields
* fix #16797 and #15796 spring child constructor missing parent params
* root cause and update the DefaultCodegen.java to add missing property when with multi inheritance
* rollback SpringCodegen.java
* update samples
* rollback with master cause #16992 fixed this issue too
* still using orignal design
* catchup master
* catchup master
* catchup master
* fix
* add tests
---------
Co-authored-by: dabdirb <dabdirb@gmail.com>
in rest template, when the retry limits exceeded
rethrow the original exception
also add 429 (Too many requests) status code to the
retry logic
fix#17478
In #16624, I introduced a new mechanism to record imports to other
modules, instead of having specialized datetime/typing/pydantic objects
to manage imports for these modules.
This change reuses the mechanism from #16624 and replace the specialized
import managers by the generic one. Unused imports from various
.mustache templates are also cleaned up.
* also escape '$' and '\' in normal Kotlin strings, …
* rename `lambdaEscapeDoubleQuote` to `lambdaEscapeInNormalString`
* escape `$` and `\` in `@RequestMapping` annotation `value` property
* Fix decoding OpenAPIDateWithoutTime which in previous implementation only worked when used with CodableHelper, because it encoded to String, but tried to decode from Date afterwards
* update samples
* Update OpenAPIDateWithoutTime.mustache
* Update sample projects
---------
Co-authored-by: William Cheng <wing328hk@gmail.com>
Co-authored-by: Bruno Coelho <4brunu@users.noreply.github.com>
Co-authored-by: Bruno Coelho <4brunu@gmail.com>
* updating test to use the Java RESTEasy echo api client (#17367)
* regenerated samples
* set source and target to 1.8 to fix workflow failure, adapted parser
* update template for required field validation when additional properties are not allowed
* regenerate samples
* move bytes import from template to GoClientCodegen
* regenerate samples
* add test for model with required fields and additionalProperties: false
* Set remote build cache to push only if authenticated
* Bumped Gradle enterprise extension to 1.20 and CCUD extension to 1.12.5
* Removed duplicated <storeEnabled> line from gradle-enterprise.xml
* Removed addressed comment
* Add missing Jackson converter for Retrofit
This commit adds the missing configuration for a ApiClient so all Jackson serializations will start to work correctly.
* Add sample project code for Retrofit Jackson
* Add check for input if is Map type
* Update Pet samples
* Add PetApi support for filter by Pet property
* Clean up
* update samples
* remove manual test
---------
Co-authored-by: ameenhaq <ameenhaq79@gmail.com>
* fix(java): fix URI inner enum for gson
* fix(java): fix URI enum for gson
* fix(java): fix URI enum for microprofile
* fix(java): fix URI import for native enum
* fix(java): add tests for URI enum
* fix: change indent style to tab in the mustache to generate Go code
* docs: standardize the language names for code blocks
* docs: change indent style to tab in the code blocks
* update: regenerate samples
* `./bin/generate-samples.sh ./bin/configs/*.yaml`
* Ruby Client for Faraday: fix file downloading
In MR #16876, a bug was introduced that causes file downloading to fail
for the Faraday adapter.
This commit fixes the obvious missing parameter for the method
call to download_file() and the missing variable `request` for saving the
response value of the call to build_request().
Signed-off-by: Daniel Schnell <dschnell@grammatek.com>
* Add automatically generated changes.
---------
Signed-off-by: Daniel Schnell <dschnell@grammatek.com>
* Fix broken link to csharp-netcore generator
The example source URL of the csharp-netcore generator pointed to the master version of the repo, but the generator has been renamed or removed and the URL is broken. I updated the link to the latest pre 5.0.0 version, since the text talks about pre 5.0.0 version of the openapi generator.
* Update link to point to csharp generator
* Add optional parameter for request body
* Adapt Test
* Add test
* Format code
* Remove extra method
* Add optional for pojos
* Add optional for pojos
* Add bean validation for Optional
* Add default values + test
* Rename test
This was removed in #16802, but using a higher value than 1,
or at least making this configurable makes complete sense.
Without this, we get a lot of these log messages:
[ WARNING] Connection pool is full, discarding connection:
* [cpp-qt-client] pass QString by const reference instead of by value
* Add another signal instead of changing its signature
* Bump qt version
* Fix CODEOWNERS
* Try to fix workflow
* use v3
* Remove openssl from windows build
---------
Co-authored-by: William Cheng <wing328hk@gmail.com>
* check args to fn new for uniqueItems
* Added model with unique items for template testing
* build the project and update samples
* Removed testcase from fake petstore spec
* allow multiple auth methods of same type
* allow multiple auth methods of same type
* allow multiple headers to have api keys
* removed commneted code
* fixed all but standard
* fixed standard
* allow multiple auth methods of same type
* allow multiple auth methods of same type
* allow multiple headers to have api keys
* remove changes for another pr
* resolved conflicts, build samples
* fixed a casing issue
* fixed casing issue
* Adds basic retries to API requests
* This mimics the basic retries performed by urllib3 in the sync version
* update samples
* Only use retry client if number of retries is specified in the config
* Reorganize
* Remove class attribute
* close retry_client
---------
Co-authored-by: William Cheng <wing328hk@gmail.com>
Trying to generate Kotlin code for CookieAuth will result in a malformed
ApiClient.kt for function updateAuthParams. The code block has a closing
bracket too much.
Co-authored-by: Christian Bay <christian.bay@posteo.net>
* Delete sample folders of discontinued clients
* Remove duplicate python-flask server sample
The python-flask sample actually lives in samples/server/petstore/python-flask.
* Move hand-written test to "tests" folder
Now, "test" only contains generated stubs and all hand-written tests are in "tests".
* Delete left-over files in Python samples
These are not created by the generators (anymore) and not hand-written
for testing.
* Regenerate test file to fix import error
* Fix clippy errors (rustc 1.73.0)
* Add feature docker-in-docker
* Fix mapping of "date"
See issue #9769
The type
type: string
format: date
was mapped to DateTime<Utc> which violates the OpenAPI spec
see https://swagger.io/docs/specification/data-models/data-types/
* refactor: Clean up _response_types_map formatting
It matches black's behavior of having trailing commas now.
* test: Add test to reproduce #16967
* fix: deserialize responses even if no returnType
Closes#16967
* refactor: Simplify ApiException subclasses
* refactor: Move exception subtype choice to ApiException
* feat: Deserialize error responses and add to exceptions
* test: Add for error responses with model
For model classes with model_something fields, pydantic raises a warning by default:
`Field "model_something" has conflict with protected namespace "model_".`.
These warnings make no sense here, because most users of the generator have established APIs
that they cannot change to conform to pydantic's safety rules.
Pydantic will raise an error if we ever conflict with a current attribute like `model_dump`.
* Update base image of Dockerfile
* Make github workflow "Docker tests" manually triggerable
* Don't possibly downgrade TLS version
* Update Dockerimage in ``run-in-docker.sh``
* Use Maven's non interactive mode inside workflow
* Don't spam log
* Use java 17
because it won't compile with 21
* Removed hard memory limit
as memory should be controlled by the container
* Update hub dockerfiles
* If a form param is an array and isn't caught in the previous checks, treat it as a slice of strings.
* Add an example of a FormParam that is an array
* [PHP-SYMFONY] Support BackedEnum for enumm ref (16846)
* [PHP-SYMFONY] Support BackedEnum for enumm ref (16846)
* [PHP-SYMFONY] Support BackedEnum for enumm ref (16846)
* [PHP-SYMFONY] Support BackedEnum for enumm ref (16846)
* [PHP-SYMFONY] Support BackedEnum for enum ref (16846)
* [PHP-SYMFONY] Support BackedEnum for enum ref (16846)
* [PHP-SYMFONY] Support BackedEnum for enum ref (16846)
* New Test Case Added to AndroidClientCodegenTest
* New Test Case Added to GenApiControllerTest
* New Test Case Added to BirdAndCategoryTest
* New Test Case Added to WorkflowSettingsTest
* Modified GenApiControllerTest
* Added Test case in JavascriptClientCodegenTest
* Modified BirdAndCategoryTest
* Modified BirdAndCategoryTest
---------
Co-authored-by: Mann <mn906219@dal.ca>
* [Server][Spring] support interface and implementation classes for API controllers
* Omitted new string calls
* Added Log messages
* remove else
* Removed redundant if
* Update missed ;
* Bump up the dart version.
* Add toString on enum.
* [dart-dio/json_serializable] Fix enum converter for non-string.
* [dart-dio/json_serializable] Bump up the dart version only json_serializable.
* [dart-dio/json_serializable] Rename enum value.
* chore: add test to show python bool url params are not lower case
* fix: python parameters_to_url_query template to properly detect booleans
* fix: typo in test
* fix: typo in test
* chore: update test name to snake case and be more descriptive
* [typescript-axios] Fix Explode Query Parameters
* use `paramName` instead of `baseName`
* add config, workflow and tests for echo api
* generate echo api sample
* update test dependencies and add gitignore
* update space in package json and regenerate samples
* remove tsc in test package
* update samples
* undo samples
* regenerate samples
* regenerate samples again
The generated example code would clone the context. However as context
is a generic type and is not declared to implement Clone, a clone of a
reference is just a copy of the reference and therefore unnecessary.
This change removes the redundant call and therefore avoids the `cargo
clippy` warning.
* [ruby|client] Fix unmarshalling errors of enums inside other objects
Ruby|Client autogenerated model classes for Enums do not expose openapi_one_of
method. Instead they expose openapi_any_of method like:
# List of class defined in anyOf (OpenAPI v3)
def openapi_any_of
[
:String
]
end
Both types (objects and enums) do respond to build() method.
* Regenerate samples
Right now, if a developer uses `direnv` but does not use `nix`, an error
is reported whenever changing into the OpenAPI generator directory:
```console
$ cd ~/oss/forks/openapi-generator
direnv: loading ~/oss/forks/openapi-generator/.envrc
direnv: using flake
environment:1270: nix: command not found
```
This uses the `has()` function to check for `nix` to *conditionally* run
the `use_flake` function.
* [Ruby] Add support for gems metadata
This defaults to an empty hash, but can be overridden with any custom
object by the callers via the `gemMetadata` property.
* Regenerate samples
The gemspecs files will now include a metadata field
* Add support for DateTime objects in the Path, Query Params, and as a List
* Fix indentation
* Add an exaple that has dateTimes
Move the date parsing into a common util in the routers.go file.
* Fix compilation issue and regen
* Use the `RequiredError` to handle this case
* Only split on a "," and not an extra 'space' after the ",".
* fix(nestjs) fix import in api module template (16670)
* fix(nestjs) fix import in api module template (16670)
---------
Co-authored-by: Thomas Trapanese <thomas.trapanese@maggioli.it>
* Support for an endpoint returning a file to a client.
* Spaces to tabs conversion
* Add an example endpoint for download a file
* Regenerate after merging main
* Add support for Enums to be part of the Path and Query
Supports optional Query Enums and Lists of Enums as well
Add an example endpoint that covers the added scenarios
Added an import mapping for the GoServerCodegen for "fmt"
when a model is an enum.
Expanded the Enum Model for the Go Server to have validation.
Copied this logic from the Go Client Enum Model.
* Fix identation of examples
* Pre-allocate the capacity of the slice of Enums to be
the correct size.
* Formatting and updated examples
* Empty-Commit
* Switch to using a map to store the valid enum values
* Fixed pointer derefs missed from previous change in PR
* More fixing of pointer to not pointer
* Create a map for validation and a list of enums for messaging
* Add support for all +json and +xml suffixed media types to generated Go client
* Export JsonCheck and XmlCheck and add external tests
* Remove client_test.mustache
* Autoset constants (Required fields having single valid enum value) Python Implementation of #16547
* Fixing ``PythonClientCodegenTest.testHandleConstantParams`` for Windows platform.
This adds support to avoid generating go.mod and go.sum for Go client.
By default it is set to true to keep compatibility with previous version
of the tool.
It can be set to false using --additional-properties=withGoMod=false
* refactor: Use newlines in _with_http_info call
This prevents too-long lines and matches the style that
black would enforce.
* fix: Do not pydantic-validate function args twice
Closes#15757
* Avoid ClassCastException when getting headers (the header values are Collection<String> and not List<String>)
Delete unused classes
* Remove feign10x
* Add unit test
Refactor to avoid creating the headers map when ApiResponse is not used
* fix setup of body params (may be nil)
* fix httpx adapter issues
treating DNS resolution errors as ConnectionFailed; removing multipart header set by the openapi-generated code, as it does not contain boundary, and interferes with the generation from httpx, which appropriately deals with mime-types already
* upgrade spring-boot-starter-parent
* upgrade springdoc and swagger-ui
* upgrade v3 swagger-annotations
* generate samples
* upgrade jackson
* fix spring cloud, remove temp comment
Putting "8" instead of "1.8" should be ok, because Spring Boot 3 requires Java 17 anyway, so it should be able to understand that 8 is the same as 1.8.
* generate samples
* upgrade JUnit 5, remove commons-io dependency, remove outdated samples/client/petstore/java/feign/feign10x/ files, generate samples
commons-io dependency was introduced in https://github.com/OpenAPITools/openapi-generator/pull/8484, but I don't see why it would be needed now or back then.
* update gson, generate samples
* update logback
* update feign
* update scribejava
* generate samples
* update httpmime
* okhttp-gson: update commons-lang & okhttp & junit-platform, remove mockito; generate samples
It seems Mockito is not used at all there.
* okhttp-gson: remove unnecessary sample files, generate sample files
* upgrade google-api-client & jersey-common, restore ClientTest, generate samples
* misc. upgrades in jersey2 and jersey3
jersey 3.1.3 is available already, but IntelliJ reports security problems in 3.1.3 and 3.1.2, so I used 3.1.1 instead.
* align some gradle&sbt files with poms, generate samples
* whitespace fix
* support the ability to create apis and models templates in specify folders using the config settings (folder)
* support the ability to create apis and models templates in specify folders using the config settings (folder)
* python: type generated client using Self
This doesn't offer a clear win but this helps for:
* Using modern types and making the typing intent clearer
* Decreasing the need for `from __future__ import annotations`, since a
class can now refer to itself without using its name
* Using more `cls` to automatically refer to the class, instead of
respecifying the class name every time
Self is available from Python 3.11 and is provided in typing_extensions
(since 4.0.0) as a fallback for older versions
See: https://peps.python.org/pep-0673/
See: https://github.com/python/typing_extensions/blob/main/CHANGELOG.md#added-in-version-400
* generate code
* Add optional response middleware to go template
Also adds a request middleware which can return an error
* Re-adding newline to fix tests
* Fixing docs
* Add support for default scalar value of properties in php-symfony models. Default values now returns in getter-functions
* Revert nullable type-hinting. Move default values from getter to property initialize.
Made changes in __construct:
Now value of properties rewrites only if key exist in $data array.
The aenum dependency didn't provide any specific improvements over the
stdlib's enum module.
aenum also doesn't provide typing information at the moment.
This removes one dependency and will help for completing the typing of
the generated client.
* In samples/openapi3/client/petstore/python, this reduces the mypy errors from 435 to 178 errors
* In samples/openapi3/client/petstore/python-aiohttp, this reduces the mypy errors from 381 to 124 errors
* In samples/client/echo_api/python, this reduces the mypy errors from 131 to 25 errors
* add float as reserved world
* clean up
* update samples
* Update modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonCodegen.java
Co-authored-by: Jonathan Ballet <jon@multani.info>
* update doc
* uncomment test
---------
Co-authored-by: Jonathan Ballet <jon@multani.info>
* [python] fix TypeError
Signed-off-by: ふぁ <yuki@yuki0311.com>
* [python] update Private model attributes to Class vars
Signed-off-by: ふぁ <yuki@yuki0311.com>
* [python] rename the List of test cases to ListClass
Signed-off-by: ふぁ <yuki@yuki0311.com>
* [python] update samples
Signed-off-by: ふぁ <yuki@yuki0311.com>
* [python] rename the List of v1 test cases to ListClass
Signed-off-by: ふぁ <yuki@yuki0311.com>
* [python] rename the List of v1-aiohttp test cases to ListClass
Signed-off-by: ふぁ <yuki@yuki0311.com>
* update samples
---------
Signed-off-by: ふぁ <yuki@yuki0311.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
* python: improve type generation with more specific typing
* Annotate function parameters
* Remove unused imports
* remove unused files
* remove temporary hack
* remove lock file
* fix Annotated import
* support Python 3.7
* Regenerate code with typing-extensions
* Fix setup.py
* More Pydantic v2 compatibility
* depend on pydantic v2
* fix client_echo tests
* fix JSON serialization
* Fix references
* Skip circular dependency tests for now
* Temporarily hide the "float" property
The "float" property aliases the "float" type and completely breaks the
model: all the properties that were "float" now become the type of the
"float" property instead.
* Fix errors
* Import Literal from typing_extensions
* Fix GitHub Action workflows
* Fix Python 3.7 failure
* Fix quotes
* Apply suggestions from code review
* Fix tests
* split model imports from other modules imports
* fix workflow
* Comment the array unique items convertion, remove set translation
* Replace alias usage
* Introduced Jersey3 to JavaJerseyServerCodgen and its test class
* Added date ParamConverterProvider to new jersey3 resource directory
* Copied and adjusted jaxrs-jersey2 directory to jaxrs-jersey3
* Added unit tests for Jersey2 (jakarta|javax) and jersey3 (jakarta only)
* Added Jersey3 to markdown documentation
* Added several mustache files for Jersey3
* Further adjustments in JavaJerseyServerCodegen for Jersey3
* Removed tabs from JavaJerseyServerCodegen
* Further improvements in pom and web template
* Changed to swagger-jaxrs2-servlet-initializer-v2 within the projects pom
* Changed servlet-initializer to jakarta version
* Removed tabs in JavaJerseyServerCodegenTest.java
* Removed tabs from JavaJerseyServerCodegen
* Out commented Swagger 1.x part in api.mustache (see ApiImplicitParams)
* Exchanged import of javax* by jakarta* in file verify.groovy
* Changed Parameter annotations to Schema annotations
* Added web.mustache for jersey3
According to the 'Swagger 2.X Integration and Configuration' doc at
https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Integration-and-Configuration
* Adjusted README to point to ./openapi.json instead of ./swagger.json
* Added ./bin/configs/jaxrs-jersey-jersey3.yaml as requested
* Added new jersey3 example (see ./samples/server/petstore/jaxrs/jersey3
* Corrected formParams.mustache exchanged @FormParam by QueryParam
* Resolved ModelValidationException for Map query parameter
* Improved api.mustache (layout and deprecated class instantiation )
* Updated jersey3 example under ./samples/server/petstore/jaxrs/jersey3
* fix tests
* add jeresey3 to github workflow test
* add new workflow
* remove jersey3
---------
Co-authored-by: CDerksen <christian.derksen@uni-due.de>
* prioritize mapped discriminators over generated
* update samples with new ordering
* explain reason behind discriminator prioritization
* add new samples
* prioritize explicit mapping over any generated mappings
* update examples to reflect new logic
* update tests to reflect explicit mappings
* Copy the current Python generator into a "pydantic v1" generator
This generator will be deprecated over time and the normal generator will
focus on Pydantic v2.
* add missing doc
* WIP: implement strict types
* Add parameter and return types to API methods
* Cleanup imports and some code, fix some phpdoc
* Add toDefaultValue override
* Support file abstraction for WebClient responses
Issue-16589
* Fix issue flagged by tests. Yay tests!
Issue-16589
* Update generation of test file too
* Fix generated tests for webclient, resttemplate
* add spring support for SSE conform specs
see https://github.com/OpenAPITools/openapi-generator/issues/6123 for the ongoing discussion
* extend generator option documentation
* applied review suggestions
* regenerated samples
* regenerated docu
* fix code style: removed tabs
* [dotnetcore] Implement QueryParameter deepObject style is missing for async function
* Add some csharp-restsharp tests
* add and fix tests
* restore missing files
* remove test with datetime problem
---------
Co-authored-by: Oliver Krug <Oliver.Krug@ptvgroup.com>
* python: remove non-async code path from the aiohttp generator
This removes all the non-async code from the aiohttp generator:
* all the methods that should be asynchronous are marked as `async`
* the `async_req` parameter is gone; calls are directly awaitables now
* the async calls into a thread pool are gone and the thread pool is
gone too (now useless)
Closes: #15824Closes: #5539
Related: #763
Related: #3696
* Fix empty line
* remove more
* Autosets the parameters with the only value specified as enum if the parameter is also marked as required
* Autosets the parameters with the only value specified as enum if the parameter is also marked as required
* Autosets the parameters with the only value specified as enum if the parameter is also marked as required for Java default client.
* Autosets the parameters with the only value specified as enum if the parameter is also marked as required for Java default client.
* Autosets the parameters with the only value specified as enum if the parameter is also marked as required for Java default client.
* Autosets the parameters with the only value specified as enum if the parameter is also marked as required for Java default client.
* spec for recommend test
* add ValidateTask test for custom defined tasks
* add ValidateTask test for recommend option
* ValidateTask recommend default value is true
* [Go] return errors that happen while unmarshalling objects
* Update model samples
* More updates to samples
* Update failing Go store API test to match the one that passes
- [ ] Run the following to [build the project](https://github.com/OpenAPITools/openapi-generator#14---build-projects) and update samples:
```
./mvnw clean package
./bin/generate-samples.sh
./bin/generate-samples.sh ./bin/configs/*.yaml
./bin/utils/export_docs_generators.sh
```
(For Windows users, please run the script in [Git BASH](https://gitforwindows.org/))
Commit all changed files.
This is important, as CI jobs will verify _all_ generator outputs of your HEAD commit as it would merge with master.
These must match the expectations made by your contribution.
You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example `./bin/generate-samples.sh bin/configs/java*`.
For Windows users, please run the script in [Git BASH](https://gitforwindows.org/).
- [ ] In case you are adding a new generator, run the following additional script :
```
./bin/utils/ensure-up-to-date
```
Commit all changed files.
- [ ] File the PR against the [correct branch](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches): `master` (7.0.1 - patch release), `7.1.x` (minor release - breaking changes with fallbacks), `8.0.x` (breaking changes without fallbacks)
IMPORTANT: Do **NOT** purge/delete any folders/files (e.g. tests) when regenerating the samples as manually written tests may be removed.
- [ ] File the PR against the [correct branch](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches): `master` (upcoming 7.1.0 minor release - breaking changes with fallbacks), `8.0.x` (breaking changes without fallbacks)
- [ ] If your PR is targeting a particular programming language, @mention the [technical committee](https://github.com/openapitools/openapi-generator/#62---openapi-generator-technical-committee) members, so they are more likely to review the pull request.
[](https://join.slack.com/t/openapi-generator/shared_invite/zt-12jxxd7p2-XUeQM~4pzsU9x~eGLQqX2g)
[](https://twitter.com/oas_generator)
[](https://gitpod.io/#https://github.com/OpenAPITools/openapi-generator)
[](https://ge.openapi-generator.tech/scans)
[](https://ge.openapi-generator.tech/scans)
:star::star::star: If you would like to contribute, please refer to [guidelines](CONTRIBUTING.md) and a list of [open tasks](https://github.com/openapitools/openapi-generator/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22).:star::star::star:
:star::star::star: If you would like to contribute, please refer to [guidelines](CONTRIBUTING.md) and a list of [open tasks](https://github.com/openapitools/openapi-generator/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22).:star::star::star:
:bangbang: To migrate from Swagger Codegen to OpenAPI Generator, please refer to the [migration guide](docs/migration-from-swagger-codegen.md) :bangbang:
@@ -60,24 +60,34 @@ If you find OpenAPI Generator useful for work, please consider asking your compa
#### Thank you GoDaddy for sponsoring the domain names, Linode for sponsoring the VPS and Checkly for sponsoring the API monitoring
#### Thank you GoDaddy for sponsoring the domain names, Linode for sponsoring the VPS, Checkly for sponsoring the API monitoring and Gradle for sponsoring Develocity
OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an [OpenAPI Spec](https://github.com/OAI/OpenAPI-Specification) (both 2.0 and 3.0 are supported). Currently, the following languages/frameworks are supported:
For **Windows** users, you will need to install [wget](http://gnuwin32.sourceforge.net/packages/wget.htm) or you can use Invoke-WebRequest in PowerShell (3.0+), e.g.
(if you're on Windows, replace the last command with `java -jar modules\openapi-generator-cli\target\openapi-generator-cli.jar generate -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/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/7.0.0/openapi-generator-cli-7.0.0.jar)
You can also download the JAR (latest release) directly from [maven.org](https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.0.1/openapi-generator-cli-7.0.1.jar)
<!-- /RELEASE_VERSION -->
To get a list of **general** options available, please run `java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar help generate`
- 2023-06-28 - [Generate API contract using OpenAPI Generator Maven plugin](https://huongdanjava.com/generate-api-contract-using-openapi-generator-maven-plugin.html) by [Khanh Nguyen](https://huongdanjava.com/)
- 2023-06-30 - [Generate Client SDKs with OpenApi Generator in Springboot](https://medium.com/@ramavathvinayak/generate-client-sdks-with-openapi-generator-in-springboot-f9f012e73c0b) by [Vinayak Ramavath](https://medium.com/@ramavathvinayak)
- 2023-12-10 - [UnityでOpenAPI Generatorを使う](https://www.youtube.com/watch?v=CbNwKVV5LRM) by [Soup Tori](https://www.youtube.com/@souptori8417)
## [6 - About Us](#table-of-contents)
@@ -928,12 +944,9 @@ OpenAPI Generator core team members are contributors who have been making signif
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.