* Adds NotAnyTypeSchema
* Unit test sample regenerated
* Turns parameter tests back on
* Removes unused from_server_types
* Reverts version files
* Samples regerated with fixed type hints
* Further fixed type hints
* Adds json detection for application/json-patch+json
* Adds jsonPatch route and schemas
* Adds test_json_patch
* Unit test sample updated
* Reverts version files
* Adds getters and setters for boolean schema true and false
* Updates CodegenModel
* Updates codegenProperty
* Updates codegenparameter and codegenresponse
* Adds comments describing the new properties
* Updates additionalProperty setting for python-experimental
* Sample regenerated
* Docs updated
* Do not write additionalProperties when they are unset
* Updates criteria for when DictSchema subcalsses are created
* Adds NotAnyTypeSchema when a schema is False
* Updates new kwargs signature
* Updates get_item type hints
* Updates sample, readme updated
* Simplifies method calls
* Adds get_item_oapg, removes unset from get_item and getattr
* Sample regenrated
* Fixes tests
* Raises AttributeError if a property is not required and it is dotname accessed
* Fixes one test
* Fixes 3 tests
* Fixes test
* Fixes two more tests
* Fixes test
* Fixes two tests
* Fixes two tests
* Tests fixed
* Unit test sample regerated, fixed unset addprops required type hint issue
* Migration guide updated
* Samples regenerated
In case the lifecycle phase is "generate-test-sources" the default output directory is:
"${project.build.directory}/generated-test-sources/openapi"
In case of any other lifecycle phase the default output directory is:
"${project.build.directory}/generated-sources/openapi"
Also use the "src/main/java" as the only default source folder in the output path for both
cases when addCompileSourceRoot == true and when addTestCompileSourceRoot == true.
In case you really need "src/test/java" it still can be set in the configOptions manually:
<configOptions>
<sourceFolder>src/test/java</sourceFolder>
</configOptions>
* Replaces all validate methods with public validate ones
* More methods made public with _oapg suffix
* Makes methods private where one can
* Fixes tests
* Fixes typo, maked Disciminable methods public
* Method changed to from_openapi_data_oapg
* Fixes tests for from_openapi_data_oapg
* Tweaks endpoint stub so the endpoint exists for ycharm type hints
* Makes Api methods protected
* Adds binary python type hints, makes get_new_instance_without_conversion_oapg public
* Protects some schema methods
* Protects more schema methods
* Renames as_x, is_x acessors with needed suffix
* Fixes some tests
* Fixes tests, fixes new signature for DateSchema
* Methods removed and made private
* Fixes indentation
* Samples regenerated
* Adds Unset type hint for use cases containing additional properties
* Simplifies no addProps type hint template
* Unset type hints added when additionalProperties are off
* Adds __getitem__ unset fix
* Adds unset test
* Fixes non overload method when addprops are present
* Sample regenrated, tests added, readme updated
* Unit test sample updated
* Reverts version files
* Uses frozendict module import in schemas and api_client
* Regnerates sample
* Adds overload type hints
* Adds __getitem__ methods for invalidly name properties
* Fixes code that instantiates referenced schemas in object payloads
* Fixes getitem literals containing control charaters
* Sorts params by required, adds type hints for properties with addProps turned off
* Unit test spec sample regenerated
* Adds stub files for models and endpoints
* Omitting some endpoint info from endpoint stub files
* Removes more from endpoint stub
* Deletes all except for schema definition in endpoint stubs
* Removes simple validations from stubs
* Removes endpoint parameter deifnition from endpoints stubs
* Removes unnecessary ../ stub variable access
* Samples regenerated
* Samples regenerated, fixed handling of invalidly named properties
* Samples regenerated
* Reverts version files
* Regenerates sample with additional enum values
* Sample regenerated, array type hints working
* Unit test sample regenerated
* Removes unneeded __getattribute__
* Sample regenerated using getRequiredVarsMap for property type hints
* Adds schemaFromAdditionalProperties to tell if a CodegenProperty is from properties or additionalProperties
* Adds get/setSchemaIsFromAdditionalProperties
* Updates codegenModel
* Updates codegenParameter
* Updates codegenResponse
* Uses setSchemaIsFromAdditionalProperties
* Fixes array new typ ehint and additional property type hints
* Samples regenerated
* Adds missing parms to javadoc
* Fixes param name
* Adds missing param to javadoc
* Combine javascript and javascript-apollo generator functionality
* Combine javascript and javascript-apollo templates
* update configs
* deprecate javascript-apollo generator
* bonus magic string deletion ✨
* update samples
* update generator docs
* fix: include .babelrc in apollo generation
* update samples
* update samples
* rename javascript-apollo to javascript-apollo-deprecated
* fix javascript apollo library template
Apollo library now uses the partial_model_generic template file from the ES6 library, as it includes many fixes and improvements (including handling models with ill-named attributes)
* update samples
* Create javascript-apollo-deprecated.md
* Updated javascript generator template's gitignore
Updates .gitignore with that from https://github.com/github/gitignore/blob/main/Node.gitignore
Main reason for the update is to ignore the 'dist' folder with compiled files by default.
* javascript generator: merge api_test template files
The only difference is that Apollo is not designed for browser, so having a "if(browser)" check is useless, but doesn't hurt.
* update docs
* cleanup
* avoid possible config clash
* update javascript-apollo sample
* update javascript-es6 sample
I kept the pom.xml from before
* update javascript-promise-es6 sample
kept pom.xml
* update samples
* Templates updated, dict properties moved into Meta
* Fixes tests
* Renames _discriminator to discriminator
* Moves required vars into required
* Renames _additional_properties to additional_properties
* Adds MetaOapgTyped
* Adds type hints for MetaOapg to classes that neen it
* Adds StrMixin
* Adds DecimalMixin
* Adds BoolMixin
* Adds NoneMixin
* Adds TupleMixin
* Adds FrozenDictMixin
* Regenerates unit test samples
* Only quotes type hints if they are imported
* Moves _items into Meta
* Renames _items to items, various small type hint fixes
* Adds type hints for object model new signature
* Adds type hints for body schema primitive types
* Adds primitive types to all query/path/header/cookie params
* Samples regenerated for unit test api
* Version files fixed
* Javascript Generator: small sanitization changes
Sanitize module name, do not sanitize description.
If we set the project name to "@myorg/mypackage" (scoped package[1]), running `npm test` will fail, as it will generate faulty code due to the module name including the '@' symbol, which is not a valid JS identifier.
Additionally, we don't need to sanitize the description - spaces and special characters are fine. We just need to make sure they are escaped, which we're already doing by invoking escapeText() on line 329
[1]anitize module name, do not sanitize description
* update JS samples
* fix TypescriptAngularPetstoreIntegrationTest
(since this has been abandoned for a long time: just copy the generated code the the "expected" directory)
* fix TypescriptAngularArrayAndObjectIntegrationTest
(since this has been abandoned for a long time: just copy the generated code the the "expected" directory)
* fix TypescriptAngularAdditionalPropertiesIntegrationTest
(since this has been abandoned for a long time: just copy the generated code the the "expected" directory)
* fixes#13131: add custom path parameter expansion to typescript-angular
* fixes#13131: add example for typescript-angular: paramExpansionStrategy=custom
* fixes#13131: document usage of paramExpansionStrategy=custom in README.mustache
* fixes#13131: fix unit tests and sample url for http-param-expander package
* fixes#13131: update samples
* fixes#13131: drop new cli parameter, handle encoding in template only
* fixes#13131: add TestNG groups to all Typescript tests
* fixes#13131: old angular/typescript does not understand type imports
* Apply suggestions from code review
Co-authored-by: Esteban Gehring <esteban.gehring@gmail.com>
* fixes#13131: implement backwards-compatible behavior for format: 'date-time'
* fixes#13131: update typescript-angular integrationtests
* fixes#13131: review fixes + lots of documentation
* fixes#13131: update integrationtests
* fixes#13131: update docs/examples
* fixes#13131: update integrationtests
* fixes#13131: unify enums to union-types to make the api feel mora angular-ish
* fixes#13131: update examples
* fixes#13131: update docs/examples after merge of master
Co-authored-by: Christoph Linder <post@christoph-linder.ch>
Co-authored-by: Esteban Gehring <esteban.gehring@gmail.com>
* Adds null checks to validation properties
* Modifies the templates to move validations into the cls
* Regnerates unit test spec
* Template update to get rid of cls factory for validations
* Updates samples for unit test spec
* Moves SchemaValidator class
* Removes SchemaValidator
* Fixes 2 tests in v3 sample
* Reverts version files
* Reverts 2 files
* bump apollo-datasource-rest to 3.6.1
* Fix RESTDataSource import
* fix ApiClient template
* fix parameters in callApi, add requestInit param
* change parameters to RESTDataSource convenience methods
* add .babelrc file, even in ES6
* simplify .babelrc... no need for all those fancy things, i think
* fix API test mustache template
* Update package.mustache
* add Set as a language-specific primitive
* Update JavascriptApolloClientCodegen.java
* make babel packages dev dependencies only
* Get inspiration from the main Javascript Generator 😖
* correctly get the basePath from spec
* fix basePath template reference
* Do not sanitize project description
Project descriptions are a multiline string — we just need to escape a few special characters (which we're already doing by invoking escapeText() on line 334)
* Fix module name when generating scoped package
If we set the project name to "@myorg/mypackage" (scoped package[1]), running `npm test` will fail, as it will generate faulty code.
[1] https://docs.npmjs.com/about-scopes
* Uses the same util to add all imports
* Removes unneeded class variable definition
* Samples regenerated for Groovy
* Fixes imports in Lua so object import does not show up
* Fixes nim imports
* Fixes proto generation
* Removes accidental new protobuf sample
* Improves proto allOf test
* Controls import addition with parametersAndResponsesImportFromV3SpecLocations
* More import protection in fromFormProperty
* More test fixes
* Samples regenerated
* Do not import composed schemas if those features are not supported
* Samples regenerated
* Adds new param importContainerType
* Fixes tests
* Samples regenerated
* Turns off importContainerType in JavaMicronautAbstractCodegen and regens samples
* Reverts most import changes, puts original imports behind a constant check
* Samples regenerated
* Updates model imports, samples regenerated
* Removes typeMapping and instantiationMap types from getImports
* Reverts template and regens samples
* Revers generator java files
* Stops setting complexType on codegenParameter
* Adds missing import back in
* Reverts languageSpecificPrimitives changes
* Samples regenerated
* Regnerates samples
* Reverts proto files
* Removes hoistParameterArrayItemBaseTypeHigher
* Samples regen
* Reverts parameter property
* Turns off importContainerType in getContent
* Samples regenerated
* Uncomments java test
* Adds imports for codegenParameter.schema
* Changes property name to importFromV3SpecLocations
* Changes property name to addSchemaImportsFromV3SpecLocations
* Removes unused java codes
* Fixes javadoc
* Removes extra docs file
* Add typescript-axios/with-separate-models-and-api-inheritance sample as test for #13203
* [typescript-axios] Add // @ts-ignore to imports in models if withSeparateModelsAndApi is set
* [typescript-axios] Update samples
* Fixed regular expression in python client codegen
The previous regular expression was too loose, including any last character in the second group. This commit fixes that, making sure we only remove leading forward slashes, trailing forward slashes or trailing `\i`.
This commit closes 13069.
* Added generated files
* Edit comment
* Add test cases
Co-authored-by: antonio.silva <antonio.silva@feedzai.com>
* Bump jimschubert/query-tag-action from 1 to 2
Bumps [jimschubert/query-tag-action](https://github.com/jimschubert/query-tag-action) from 1 to 2.
- [Release notes](https://github.com/jimschubert/query-tag-action/releases)
- [Commits](https://github.com/jimschubert/query-tag-action/compare/v1...v2)
Signed-off-by: dependabot[bot] <support@github.com>
* Use a normal variable name inside a function, no need to make it private.
* Pass on authentication names because authentication implementations may need those!
* Generate Petstore samples.
* Allow authentication implementations to apply header and query parameters asynchronously.
* Allow inherited implementations to define a type for authentication class.
* Generate Petstore sources.
* Remove `authNames` from API client and authentication classes.
* Reference properties with `this.` in case one of them has the same name as a local variable.
* Regenerate Petstore source code.
* Revert adding a generic T in `ApiClient`.
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* avro-schema generation fix for arrays with ref to enum (or any non primitive type) to include modelPackage prefix
* sample scenario and generated outputs for avro-schema
* create avro-schema dedicated test file
Faraday 0.16.0 added Faraday::FilePart as an alias to Faraday::UploadIO
and deprecated Faraday::UploadIO. In Faraday 2.0 the deprecated UploadIO
was removed.
Fixes: e12100b033
* [Ruby] Use Ruby autoload to lower memory usage and load times
Fixes#12648
Requiring all models up front can be very expensive in both time and
memory if there are many models. In an example client with 6000 models,
this would consume nearly 400MB of memory and take about 7 seconds to
load. This is mostly unnecessary as most users of the client library
will only actually use a small percentage of the library.
The changes in this commit use Ruby's autoload capability to defer the
loading until the constant is actually used. In that same example client
with 6000 models, when initially requiring the library, the memory
usage dropped to ~20MB and loaded in 0.3 seconds. As the constants are
loaded on-demand, the memory would increase towards that 400MB ceiling,
but if only a few constants are actually used, then memory will never
actually hit that ceiling.
An additional side effect of using Ruby's autoload is that the order of
declaring the constants is not important, as Ruby will naturally load
them in the correct order when they are needed. Thus, this commit obviates
PR #9103 and fixes#4690.
* add option to use autoload in ruby client
* test ruby clients only
* add tests
* update samples
* Revert "test ruby clients only"
This reverts commit 0aaf71cd4c.
* update doc
Co-authored-by: Jason Frey <fryguy9@gmail.com>
* [Java] enum space value must not be generated as underscore
as this is invalid in Java 9
this closes#9607
* script changes
Co-authored-by: Sven Meier <sven@meiers.net>
* Move logic so that it can dynamically be influenced by opts
* Or should it be here?
* We handle the useInlineModelResolver logic in configureGeneratorProperties after processOpts
Co-authored-by: Westerlaken, H.L. (Laurens) <laurens.westerlaken@devolksbank.nl>
* Adds requiredVarsMap
* Fixes imports
* Adds requiredVarsMap to CodegenParameter
* Updates CodegenResponse
* Adds feature to codegenModel
* Fixes codegenProperty
* Switches to getRequiredVarsMap
* Uses curly braces for set definition
* Added blocked examples back n to test spec now that the required bug is fixed
* Sample regenerated
* Handles escaping required property names
* Fixes CI tests
* Samples regenerated
* Samples regnerated
* Fixes test
* fix: [JAVA/SPRING] [#12692] fixed optional config property legacyDiscriminatorBehavior always being overwritten to false in spring codegen
* feat: [JAVA/SPRING] [#12692] spaces instead of tabs
* feat: [JAVA/SPRING] [#12692] spaces instead of tabs in test
* fix: [JAVA/SPRING] [#12692] added comment
* fix: [JAVA/SPRING] [#12692] spaces instead of tabs
* fix: [JAVA/SPRING] [#12692] spaces instead of tabs in test
* Issue 13043: Improved handling of recursive schemas
Converted Exception to a warning when a Schema is doubly added to the includedSchemas list
Broke recursion in a more reasonable place when generating example values
* Addressed comments from PR
* remove @RequestMapping from the apiController.mustache file and add it
to the api.mustache file
* move the defaultBasePath.mustache file in src/main/resources/JavaSpring
so that it commun with all Spring server-side libraries (spring-boot,
spring-mvc). The value of default context path is the value of
contextPath variable.
* added a unit test to verify it
* update the outputDir variable to samples/server/petstore/spring-stubs in
the bin/configs/spring-stubs.yaml file because it generates Spring
server-side classes. And not on the client-side as the output directory
seemed to suggest.
* Results of "generate-samples.sh bin/configs/spring*" command
* Remove default value of url in @FeignClient
* resolve conflicts with origin/master
* merge remote/master into branch
* fix samples after a merge with master
* delete the directory samples/client/petstore/spring-stubs because it
moved to samples/openapi3/...
* add samples/client/petstore/spring-stubs just for the CI build (normally
it is unnecessary))
* delete 3 kotlin class files commited by error in
samples/server/petstore/kotlin-springboot and
samples/server/petstore/kotlin-springboot-reactive
* Update the unit test SpringCodegenTest.doAnnotateDatesOnModelParameters
because one more annotation is generated (@RequestMapping)
Co-authored-by: rpruvost <rpruvost@ITEM-S78402.emea.msad.sopra>
Co-authored-by: rpruvost <rpruvost@ITEM-S78402>
Co-authored-by: rpruvost <rpruvost>
* Ensure CancellationTokenSource disposal in CSharp clients
* Fixed broken BaseValidate in CSharp models
* Ensure final CancellationToken is used in CSharp API clients
* Ensure EmitDefaultValue true for required properties in CSharp clients
* Regenerated samples
* Fixed broken C# ApiClient.ExecAsync disposable resources
* Regens docs in new locations, adds endpoint anchors
* Updates readme links and top of page link
* Model updates so the readme links work
* Samples regenerated
* Adds missing module names to apis and models
* Revert "Issue 13043: converted an exception to a warning for doubly adding schemas to the includedSchemas list (#13070)"
This reverts commit bbf463f727.
* Samples regen
Fixes an issue in python-experimental that was causing a stackoverflow
error.
* Fixed by adding composed schemas to the list of 'includedSchemas'
* Fixed an additional issue that was causing a schema to be added to the
'includedSchemas' list
* Added a unit test with a minimal GeoJson spec to confirm results
* Adds endpoint creation in path modules
* REgens samples
* Adds BaseApi so there can be 2 class interfaces for http method and operationid
* Adds paths init
* Adds enum containing paths
* Uses path enum for endpoint paths
* Adds camel case to undersce converstion in to ineum var name
* Fixes path enum generation
* Moves path api combination module into apis
* Moves tag apis into a tags module
* Adds path_to_api
* Changes module path to paths
* Fixes tag api imports
* Fixes self type in endpoint methods
* Adds test changes
* Adds tag enum
* Adds tag_to_api
* Adds missing tag
* Fixes self types in endpoint methods
* Refactors java endpoint generation to be simpler
* Further refactors generateEndpoints
* Generates one test file per endpoint
* Updates v3 samples
* Fixes endpoint tests, all tests passing now
* Samples regenerated
* Fixes petstore tests
* Generates separate endpoint test methods on each endpoint
* Fixes api docs and enum string values in those docs
* Regenerates samples
* Removes pass to fix tests
* support import mapping
* Remove unused imports
* Remove unused variable
* Not to clear importMapping
* Re-generate samples
* Use same model import path everywhere
* Move import mapping logic from toModelImport method
Co-authored-by: Bodo Graumann <mail@bodograumann.de>
* [kotlin][client] Kotlinx Serialization cleanup
* [kotlin][client] Kotlinx Serialization cleanup
* [kotlin][client] add support for unknown default case with Kotlinx Serialization
* [kotlin][client] add support for unknown default case with Kotlinx Serialization
* [kotlin][client] add support for unknown default case with Kotlinx Serialization
* [kotlin][client] improve Kotlinx Serialization naming
* [kotlin][client] improve Kotlinx Serialization naming
* Tags renamed
* Spec updated to add response bodies
* Adds correct tag to response body routes
* Adds response body autogen tests
* Adds pos test cases, removes dead code
* Adds and uses api_test_partial
* Samples regenerated
* [Typescript] Support text/plain by ObjectSerializer.parse
* generate-samples
* update samples
* clean up spaces
Co-authored-by: William Cheng <wing328hk@gmail.com>
If you send a request with a body and a header greater than 255 characters long there will be an exception. The session->fetch will not return the body in the synchronous way expected.
* Adds post request body routes and test data to spec
* Sample regenerated
* Adds tags and post endpoints
* Uses refs to tests examples in requestBodies
* Stops passing in test_examples into generate_operation
* Adds testCases to MediaType
* Adds refs to test cases in media type
* Adds post request body examples
* Fixes enum 1 ingestion of 1.0
* Only generates test examples when they exist
* Regenerates samples
* Update RestSharp to v108
* Add OAuth2 Application (client_credentials) authentication
* Run generators and fix typos
* Undo accidental python and rust changes
* Add documentation, fix authenticator bug, and fix user agent bug
* Fix tests
Missed some changes in the mustache templates.
Also had to update the `netcoreapp2.0` test project to `netcoreapp3.1` for compatibility with RestSharp
* Switch HttpUtility to WebUtility for compatibility
* skip oauth file generation for httpclient
* fix templates
* remove files, regenerate samples
* add reference to system.web
Co-authored-by: Jared Bates <Jared.Bates@sight-sound.com>
* Update RestSharp to v108
* Add OAuth2 Application (client_credentials) authentication
* Run generators and fix typos
* Undo accidental python and rust changes
* Add documentation, fix authenticator bug, and fix user agent bug
* Fix tests
Missed some changes in the mustache templates.
Also had to update the `netcoreapp2.0` test project to `netcoreapp3.1` for compatibility with RestSharp
* Switch HttpUtility to WebUtility for compatibility
### PR checklist
- [x] Read the [contribution guidelines](https://github.com/openapitools/openapi-generator/blob/master/CONTRIBUTING.md).
- [x] Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
- [x] 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/utils/export_docs_generators.sh
```
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/).
- [x] File the PR against the [correct branch](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches): `master` (6.1.0) (minor release - breaking changes with fallbacks), `7.0.x` (breaking changes without fallbacks)
- [x] 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.
This PR greatly reduces the time taken for Java code generation.
**toModelName()** method is invoked numerous times and it was accumulating a lot of time.
This has reduced the Java SDK generation time for our rather large open API spec from ~3h30m hours to 4 mins.
The generated code is the same as before.
spec: https://cdn.intersight.com/components/an-apidocs/1.0.11-7546/model/intersight-openapi-v3-1.0.11-7546.yaml
@wing328
* Perl: separate date and DateTime
- Since the json values to be returned are different for date and DateTime, they are managed separately
* Per: Enforcing Perl types to openAPI types
Perl JSON values return different types depending on the context, so look at openapi's type and modify the type.
* generate samples
* generate docs
* add perl test (json types)
* Spec regenerated with only allOf on
Sample regnerated
Fixes a bug where AnyType composed schemas omitted validations, Fixes a bug where properties in AnyType schemas were omitted, Stops storing multipleOf value in a list
Adds required variable info to AnyType classes
Samples regenerated
Turns all unit tests back on
* Samples regenerated
* Docs and models regenerated
* Added port definition to uriBuilder, since it was ignored before and couldn't be set even by supplying a custom client
* generated samples
* update samples
Co-authored-by: Matthias Lewen-Rieger | PROSPER X GmbH <matthias.lewen-rieger@prosper-x.de>
Co-authored-by: William Cheng <wing328hk@gmail.com>
Commit 1735ab9d27 added changes to set the `jakarta_annotation_version`.
I've recently noticed that when using retrofit2 library, the project builds fine with Maven but fails with Gradle.
The build fails due to `Could not get unknown property 'jakarta_annotation_version' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler`.
Digging into this, in the generated `build.gradle` the `jakarta_annotation_version` is never set.
Upon closer inspection, aforementioned commit seems to indeed set it differently for the Maven build configuration than the Gradle build configuration (same for SBT configuration) for that matter.
The issue is that due to human error the `jakarta_annotation_version` line is added within the `{{#usePlayWS}}` block, meaning it won't be generated when `usePlayWS` is false, even though it should.
This commit changes this to always generate it.
This is a fairly common alternative to `!=`, e.g. in SQL or in DevExtreme filters.
Previously, if one of an enum's variant was just '<>', its entire name would be sanitized away,
resulting in an empty string as symbol name and therefore a syntax error.
* add streaming option to r client
* support callback function to process data stream
* add stream test, minor bug fixes
* fix api client
* return void earlier if streaming, add tests
* Adds test folder file removal in python-exp only
* Samples regnerated
* Removes unused code, tweaks unit test sample to test PR change
* Reverts spec change
* FIxes javadoc
* feat(rust): support various Rust integer types (#2)
* fix: Use ROOT locale
* fix: unsigned int bounds were incorrect
* fix: deal with potential null value
* Resolve language vs. generator ambiguities
Since now "generatorName" is used instead of "language" to specifying what will be generated, some parts of the description were corrected, which were still using "language" instead of "generator".
* Update README.md
* fix typo in openapi-generator-maven-plugin readme
* fix copy&paste error in spring example pom.xml
spring generator is used for java server side code generation, not for client code generation
* fixed copy&paste errors in kotlin example pom.xml
kotlin generator is not used to generate java client code, but kotlin client code.
* [BUGFIX] model_generic.mustache: Display property name instead of its value, when throwing InvalidArgumentExeption() for values not respecting a given pattern
* [AUTOGENERATED] Generated files
This is in line with the OpenAPI specification:
The Responses Object MUST contain at least one response code, and
it SHOULD be the response for a successful operation call.
and excludes the 2XX range response itself.
* Bump the minimum version of Elixir supported
The previous minimum version of Elixir is several years EOL.
The current minimum version of Elixir is also EOL, but is the minimum
version required to support some upcoming changes to the config
templates.
* Bump the minimum version fo Tesla
Keep the dependencies up to date
* Add a default .formatter.exs
* Add two Elixir-specific mustache lambdas
- The `atom` lambda results in the proper quoting of an atom depending
on the safe contents of the atom text, per the Elixir language
specification. That is, `{{#atom}}foo{{/atom}}` will be turned into
`:foo` and `{{#atom}foo.bar{{/atom}}` will be turned into
`:"foo.bar"`.
- The `env_var` lambda results in the treatment of the identifier
provided being capitalized as an environment variable would be.
`{{#env_var}}apiVersion{{/env_var}}` would become `ENV_VAR`.
* Use modern Elixir configuration
- This includes runtime configuration
- It depends on the `env_var` lambda.
* Fix a Language Server Warning
This change is *optional*, but removes a LS warning that was raised.
* Regenerated openapi_petstore for Elixir
* Add ex_doc as a default dependency
Fixes#12484
* Refine the regular expression for atoms
The original regex incorrectly matched `123Number` (unquoted atoms
cannot begin with numbers) and would incorrectly quote atoms ending in
`?` or `!`. Through testing with `iex`, it also turns out that the atom
`:-` is legal.
The following atoms will now not be quoted that would have been
incorrectly quoted:
- `:-`
- `:declawed?`
- `:neutered!`
The following atoms will be quoted that were incorrectly unquoted:
- `:"123Number"`
* Improve regex (again), remove files not generated
- The previous commit resulted in a number of warnings that were still
present and so I played with the regular expression. This did not
solve the problem, but the resulting regular expression is *much*
better than the previous one, so I'm keeping it.
- The problem was that the configuration (`bin/configs/elixir.yaml`) is
generated using a 3.0 input spec:
```yaml
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
```
Which means that there were 16 files committed which were no longer
being generated. When I tested with the 2.0 input spec:
```yaml
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
```
The files were generated again. I *believe* that the correct change
here is to switch back to the 2.0 input spec, as it tests more code
generation, but I wanted to check in before I did this.
The following files are deleted:
- `elixir/lib/openapi_petstore/model/additional_properties_any_type.ex`
- `elixir/lib/openapi_petstore/model/additional_properties_array.ex`
- `elixir/lib/openapi_petstore/model/additional_properties_boolean.ex`
- `elixir/lib/openapi_petstore/model/additional_properties_integer.ex`
- `elixir/lib/openapi_petstore/model/additional_properties_number.ex`
- `elixir/lib/openapi_petstore/model/additional_properties_object.ex`
- `elixir/lib/openapi_petstore/model/additional_properties_string.ex`
- `elixir/lib/openapi_petstore/model/big_cat.ex`
- `elixir/lib/openapi_petstore/model/big_cat_all_of.ex`
- `elixir/lib/openapi_petstore/model/inline_response_default.ex`
- `elixir/lib/openapi_petstore/model/special_model_name.ex`
- `elixir/lib/openapi_petstore/model/type_holder_default.ex`
- `elixir/lib/openapi_petstore/model/type_holder_example.ex`
- `elixir/lib/openapi_petstore/model/xml_item.ex`
- `elixir/pom.xml`
- `elixir/test/pet_test.exs`
In the interim, I have removed those files from the commit.
* Adds draft6 tests and python file reader
* Adds processing of multiple files
* Moves test examples into a different component so component schemas can be booleans
* Excludes boolean schema cases and some others that contain patternProperties
* Adds automatic test generation, template not quite working with indentation
* Turns on allOf tests, some failing
* Adds more generated components and tests
* Adds enum tests
* Turns on all of themissing tests
* Adds exclmax and min exclusion reasons
* Adds items test cases
* Adds maximum
* Adds maxItems
* Adds maxLength
* Adds maxProperties
* Adds minimum
* Adds minItems
* Adds minLength
* Adds minProperties
* Adds multipleOf
* Adds not
* Adds oneOf
* Adds pattern
* Adds patternProperties
* Working on properties examples, partial fix for escaped characters
* Further improves example string escaping
* Fixes properties test cases
* Adds draft6 test samples license
* Adds ref
* Finishes ref
* Adds remoteRef
* Adds required
* Improves required testing
* Fixes build error / javadoc warning
* Fixes uniqueItems bug in python-experimental
* Turns all tests back on
* Fixes 2 failing tests, all python tests pass
* Fixes java npe errors
* Fixes formatting of tests, indentation fixed
* Test fase name fixed to toTestCaseName, docstring added to ObjectWithTypeBooleans
* Fixes typo
* Adds test deletion to samples generation, samples regenerated
* Updates python-exp unit test sample, includes new ref examples
* Idea plugin for marking source directories, and omitting gradle wrapper for creating sub projects
* Register the omitGradleWrapper option
* Added missing idea option
* use rlang as exception in the petstore test
* add errorObject support
* fix method name, use ModelApiRespeonse
* update samples
* update doc
* fix api exception
* Make it possible to opt out of JSONEncodable conformance
JSONEncodable is not a native type and does not exist if only models are generated.
* Match file indentation level
* Upgrade virtualan-plugin to 2.5.1
* Generate samples
* Upgrade virtualan sample to springdoc
* Generate Samples
* Add samples/server/petstore/springboot-virtualan to ci run
* Upgrade virtualan-plugin to 2.5.2
* Generate samples
* Add virtualan.version to spring-boot-3 pom.xml, upgrade to 2.5.2
* Replace @ character so we can use Hydra Jsonld models. This fixes
duplicate @id id properties in models.
* Invalid test method
* Fix tests
* Fix tests 2
Co-authored-by: Daniel Karso <daniel.karso@worldstream.com>
* Support DateTime parsing
I've got issue in parsing an Array of Strings in datetime format, which the generator translates into a List<DateTime>.
This just fixes it
* update dart sampels
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [Java/Spring] add missing key parameter to put-item method call of super class (#12494)
* [Java/Spring] add test for missing key parameter to put-item method call of super class (#12494)
* I feel the issue is due to the creation of self._var_name_to_model_instances while doing the deserialization of the data.
Earlier the Python SDK code was using get_var_name_to_model_instances function which was adding var name to model instances that contain it. So <class 'openapi_client.model.stream_options_all_of'> will not part of mapping in self._var_name_to_model_instances for variable name stream_options.
Now with the latest Python SDK code following is the way through which var_name_to_model_instances is created:
for prop_name in model_args:
if prop_name not in discarded_args:
var_name_to_model_instances[prop_name] = [self] + composed_instances
Now as we can see that the var_name_to_model_instances is populated with self and composed_instance which will also contain stream_options_all_of as a composed instance and there will be no check that if stream_options is present in composed_instances or not.
As there is no attribute_mapping found for stream_options in stream_options_all_of, the type for stream_options will be treated as dict for mapping stream_options_all_of as mentioned by @Chekov2k.
So what I suggest is the following code:
for prop_name in model_args:
if prop_name not in discarded_args:
var_name_to_model_instances[prop_name] = [self] + list(
filter(
lambda x: prop_name in x.openapi_types, composed_instances))
This way we can check if the property name is present in that composed instance or not. If it's okay for @spacether I can raise a PR for this.
* [get_item_all_of_bug]
Added samples, test cases to validate all_of schema.
* [getiem_all_of_bug]
Updated docs and samples.
* [getiem_all_of_bug]
Updated test cases, docs and samples.
* + support for enum models & separating mustache templates for enums and generics
+ extract property 'type' and 'default value' from a #ref to an enum model
+ support for `PascalCase` naming convention for PHP generators
+ use a default value for known basic types when they are not nullable
+ use 'null' as default value for nullable types when they do not specify the default value
+ use defined constant path as enum default value when found
* + sample output update
* + change model fields to be public and acessible from outside
* + sample output update
Co-authored-by: Mostafa Aghajani <mostafa.aghajani@virta.global>
* [ocaml] Open Lwt.Infix rather than Lwt
The Lwt module has functions that might shadow parameters, and all the
functions we use from Lwt are in Lwt.Infix too.
File "src/apis/image_api.ml", line 13, characters 69-72:
13 | let uri = Request.maybe_add_query_param uri "all" string_of_bool all in
^^^
Error: This expression has type 'a t list -> 'a list t
but an expression was expected of type bool option
* [ocaml] update petstore samples
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/).
- [ ] File the PR against the [correct branch](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches): `master` (6.1.0) (minor release - breaking changes with fallbacks), `7.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.
@@ -90,7 +90,7 @@ 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 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)
- 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). __Please notice:__ you must run a local instance of the Petstore server in order to perform the tests, as running them against petstore.swagger.io is not supported anymore. Please refer to item 3 of [Integration Tests - How to add integration tests for new Petstore samples](https://github.com/OpenAPITools/openapi-generator/wiki/Integration-Tests#how-to-add-integration-tests-for-new-petstore-samples) to learn how to quickly configure and run it.
- Finally, git commit the updated samples files: `git commit -a` (`git add -A` if added files with new test cases)
- For new test cases, please add to the [Fake Petstore spec](https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml)
[](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.openapitools%22%20AND%20a%3A%22openapi-generator%22) [](./LICENSE) [](https://opencollective.com/openapi_generator) [](https://join.slack.com/t/openapi-generator/shared_invite/zt-12jxxd7p2-XUeQM~4pzsU9x~eGLQqX2g) [](https://twitter.com/oas_generator)
[](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.openapitools%22%20AND%20a%3A%22openapi-generator%22) [](./LICENSE) [](https://opencollective.com/openapi_generator) [](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://github.com/OpenAPITools/openapi-generator/actions?query=workflow%3A%22Check+Supported+Java+Versions%22)
@@ -63,13 +68,13 @@ If you find OpenAPI Generator useful for work, please consider asking your compa
## Overview
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:
| 6.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/6.0.0-SNAPSHOT/) | Feb/Mar 2022 | Major release with breaking changes (no fallback) |
| [5.4.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v5.4.0) (latest stable release) | 31.01.2021 | Minor release with breaking changes (with fallback) |
| 7.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/7.0.0-SNAPSHOT/) | Feb/Mar 2023 | Major release with breaking changes (no fallback) |
| 6.1.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/6.1.0-SNAPSHOT/) | 03.08 2022 | Minor release with breaking changes (with fallback) |
For **Windows** users, you will need to install [wget](http://gnuwin32.sourceforge.net/packages/wget.htm) or you can use Invoke-WebRequest in PowerShell (3.0+), e.g.
(if you're on Windows, replace the last command with `java -jar modules\openapi-generator-cli\target\openapi-generator-cli.jar generate -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/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.4.0/openapi-generator-cli-5.4.0.jar)
You can also download the JAR (latest release) directly from [maven.org](https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/6.0.1/openapi-generator-cli-6.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`
@@ -564,6 +571,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
@@ -600,6 +608,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- [Element AI](https://www.elementai.com/)
- [Embotics](https://www.embotics.com/)
- [emineo](https://www.emineo.ch)
- [fastly](https://www.fastly.com/)
- [Fenergo](https://www.fenergo.com/)
- [freee](https://corp.freee.co.jp/en/)
- [FreshCells](https://www.freshcells.de/)
@@ -607,6 +616,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- [Gantner](https://www.gantner.com)
- [GenFlow](https://github.com/RepreZen/GenFlow)
- [GetYourGuide](https://www.getyourguide.com/)
- [Glovo](https://glovoapp.com/)
- [GMO Pepabo](https://pepabo.com/en/)
- [GoDaddy](https://godaddy.com)
- [Gumtree](https://gumtree.com)
@@ -854,6 +864,9 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- 2022-04-01 - [OpenAPI Generatorのコード生成とSpring Frameworkのカスタムデータバインディングを共存させる](https://techblog.zozo.com/entry/coexistence-of-openapi-and-spring) in [ZOZO Tech Blog](https://techblog.zozo.com/)
- 2022-04-06 - [Effective Software Development using OpenAPI Generator](https://apexlabs.ai/post/openapi-generator) by Ajil Oommen (Senior Flutter Developer)
- 2022-05-13 - [A Path From an API To Client Libraries](https://www.youtube.com/watch?v=XC8oVn_efTw) by [Filip Srnec](https://www.devoxx.co.uk/talk/?id=11211) at Infobip
- 2022-06-01 - [API First, using OpenAPI and Spring Boot](https://medium.com/xgeeks/api-first-using-openapi-and-spring-boot-2602c04bb0d3) by [Micael Estrázulas Vianna](https://estrazulas.medium.com/)
- 2022-07-01 - [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/)
- 2022-07-22 - [使用OpenAPI Generator Maven plugin开发api优先的java客户端和服务端代码](https://blog.roccoshi.top/2022/java/openapi-generator%E7%9A%84%E4%BD%BF%E7%94%A8/) by [Lincest](https://github.com/Lincest)
## [6 - About Us](#table-of-contents)
@@ -1081,7 +1094,7 @@ If you want to join the committee, please kindly apply by sending an email to te
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.