* adds memoization to speed up csharp code generation
* takes care of review comments
* memoize adds to toModel for Go generator as well
Co-authored-by: Aanisha Mishra <aanisha.mishra05@gmail.com>
* Create initial version of openapi micronaut generator
* Update validation, authorization, query parameters and time format
* Move micronaut to its own generator
* Add micronaut documentation
* Refactor and add tests to JavaMicronautClientGenerator
* Refactor model mustache for micronaut client
* Refactor model enum and pojo mustache files for micronaut client
* Move micronaut client generation to micronaut 3.0.0-M5 version
* Generate samples for micronaut client
* Add hidden files of generated samples for micronaut client
* Add and configure micronaut tests as maven profile
* Add option to choose between junit and spock for micronaut client generator
* Add tests for micronaut 'build' and 'test' options; regenerate micronaut samples
* - new PHP client generator php-dt
* - samples regen after rebase
* - README update
* - fix missing options for php-dt-modern config
* - use another workaround to prevent special treatment of form media types in DefaultGenerator - GlobalSettings usage mangled behaviour of other generators
- fix of missing spaces in generated docs
* - samples update after rebase
The skipIfSpecIsUnchanged did not work when the input spec came from a
classpath resource, which could lead to infinite build loops when the
plugin was used in eclipse
#5805
* respect the nullable flag for all parameters (except path params where this is not allowed)
* generate default values for header and query parameters that are not collections
* we can not handle default values for collection with built_value atm. (not const)
* we can not handle default values for form/body parameters atm. as those can be enums which we can not construct easily
* Bug #5813 :
As "deserialize_date" and "deserialize_datetime" are used outside of "deserialize_model", we should check 'None' value before parsing string.
* Bugfix 5813 :
Update samples and docs
* BUG FIX: A missing semicolon in cpp-pistache-server generated code.
* BUG FIX: Provide default values of schema in cpp-pistache-server generated code.
* BUG FIX: Provide default values of schema in cpp-pistache-server generated code.
* Include request body on DELETE call
This change updates the generated `ApiClient` to include the request body on DELETE calls. [Per the RFC on page 2][1], DELETE calls are allowed to have a request body, even though the behavior may be undefined. I've not come across many APIs that use this behavior but there are a few, in particular the [Ory Kratos API][2] does so, not forwarding the body prevents such an API from being used. An API spec that does not define a request body should continue to function as expected.
[1] https://datatracker.ietf.org/doc/html/rfc7231#section-4.3.5
[2] https://www.ory.sh/kratos/docs/reference/api/#operation/submitSelfServiceLogoutFlowWithoutBrowser
* Samples generated with dart2 template change
* fix parameter with list of `MultipartFile` being generated as single `MultipartFile`
* generate serializer factories for all container params, not only body params
* fix compilation errors when `skipFormModel=false`
If there were multiple concurrent requests at a time at which the OAuth token had expired, only a single request would be retried. The other requests would fail because of the expired token, but not be retried and so the failures would be propagated to the caller.
* [go] More idiomatic godoc comments
* [go] Mark deprecated fields and functions
* [go] Minor mustache readability/consistency fixes
* [go] Mark deprecated operation parameters
* [go] Deprecate a petstore component property for testing
* [go] Apply deprecated godoc in Go servers also
* Add backslash to load namespace from global namespace
* Update example
* Remove hardcoded slash
* Add backslash from java side
* Update samples
* Fix first sample
* Fix other snapshot
* Update version file
* 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>
* Adjust spacings, bring back suppresses to silence IntelliJ IDEs.
* Suppress few warnings since we know we are using them in the code.
* toLowerCase() is deprecated.
* Wrap enum values in backticks to guard against reserved names, bring back encode/decode for each enum.
* Wrap property names in backticks to guard against reserved names.
* Regenerate samples.
* Do not warn about unused imports.
* Regenerate samples.
* Updated petstore code.
* Add missing reserved Kotlin operators and special keywords.
* Revert adding backticks.
* Regenerate pet store shop code.
* Remove unused suppression.
* Use 3 braces to wrap name.
* Regenerate pet store shop code.
* Remove get from reserved words.
* Revert back removal of description.
* Regenerate source code for Petstore.
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [kotlin-spring] Support query params with model objects (#8080)
Must fix#8080
* [kotlin-spring] Support parsing date and date-time parameters
adopted #3860 for kotlin-spring
Co-authored-by: Мышкин Максим <m.myshkin@tinkoff.ru>
* [dart-dio-next] Update http mock test library
* [dart-dio-next] Fix authentication problems
* correctly map authentication by type and scheme
* add new authentication interceptor for `bearer` scheme - this currently does the same as the OAuth interceptor
* add tests for all authentication types except OAuth
* use temporary test library branch until new fixes and features get merge there
* Actually commit the fixed test library dependency
* Update http mock library
* Format :/
* Cherry picked commits from add-support-for-collection-of-generic-classes
* Regenerated samples
* Missing work by @adamsz-lume
* Try to fix maven plugin error
Co-authored-by: Bruno Coelho <4brunu@gmail.com>
* Fix obvious typo
* Add function to build Composer package name
* Add composerPackageName codegen property
* Use package name if it's not empty
* Refresh samples
* fix-filename-from-header-response-retrieval: fix early exit of iteration
before a match could be found
* fix-filename-from-header-response-retrieval: fixed same bug for alamofire usage too
* fix-filename-from-header-response-retrieval: build project and update samples
Co-authored-by: Christopher Gretzki <gretzki@adesso-mobile.de>
Refs #3358
Ensure `deprecated` operations are annotated/documented as such on the
generated methods. Libraries updated:
* [feign]
* [google-api-client]
* [microprofile]
* [okhttp-gson]
* [resttemplate]
* [retrofit]
* [retrofit/play*]
* [webclient]
* [vertx]
Ensure `deprecated` schemas are annotated/documented as such on the
generated classes/fields. Libraries updated:
* [feign]
* [google-api-client]
* [jersey2]
* [microprofile]
* [native]
* [okhttp-gson]
* [rest-assured]
* [resteasy]
* [resttemplate]
* [retrofit*]
* [webclient]
* [vertx]
Also fix two minor bugs to get the java sample tests working:
* Fix an invalid jackson-datatype-threetenbp version number in vertx/pom.mustache
* Fix a bad return type in webclient/api_test.mustache when uniqueItems=true
Since this commit updates petstore-with-fake-endpoints-models-for-testing.yaml,
several other samples were updated, but it's just new files to reflect the
deprecated schemas, so there should be no consequential differences.
Relevant bits of the spec:
* https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#user-content-operationdeprecated
* https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#user-content-schemadeprecated
* Introduce jaxrs-cxf-client-jackson-nullable sample
Generated using: ./bin/generate-samples.sh bin/configs/other/openapi3/jaxrs-cxf-client-jackson-nullable.yaml
* Add support for openApiNullable to JavaCXFClientCodegen
Add import mapping for JsonNullable to AbstractJavaCodegen
* Deduplicate string "jackson" in generators extending AbstractJavaCodegen
* Adjust nullable fields
* Adjust standard getters for nullable fields
add @JsonIgnore to standard getters
* Adjust standard setters for nullable fields
* Adjust fluent setter for nullable fields
* Introduce distinct getter and setter for nullable fields
* Adjust add method for nullable lists
* Adjust put method for nullable maps
* Cleanup JavaJaxRS/cxf/pojo.mustache
* Further cleanup JavaJaxRS/cxf/pojo.mustache
* Adjust inner enum getters
* Make endpoints which don't return anything yield NoContent
Relevant issue: OpenAPITools/openapi-generator#9901
The haskell-http-client generator tries to generate a polymorphic return
type for endpoints which don't return anything in the success case, but
still produce content in other cases. This means that these endpoints
hit a decoding error in the success case, because there is no content to
decode.
This changes the behaviour so that endpoints that don't return anything
are *always* generated as returning NoContent, and never try to decode
the response. This change is based on a similar one for the
haskell-servant generator, which can be found at:
OpenAPITools/openapi-generator#9830
which resolved a similar issue for that generator.
* Update samples after haskell-http-client NoContent change
For tests it’s useful to have direct access to the Wai `Application`,
which is the plain function from `Request` to `Response`.
Then you don’t need to use a full-blown http server to run requests.
* Adds boolean enum component and object property and tests of it
* Regenerates samples
* Passes needed locale argument to toUpperCase
* Regenerates samples
* [BUG][PYTHON] Do not set Content-Type for GET, HEAD or DELETE requests
The Python generator no longer sets a default `Content-Type` of
`application/json` for `GET`, `HEAD` and `DELETE` requests.
Having the `Content-Type` set for these requests was causing issues with
other tools which insist that GET, HEAD and DELETE requests do not have
a Content-Type (as per the OpenAPI 3 specification).
An example of the problem that this commit fixes is when using
[Prism][1] as a [validation proxy][2].
[Prism rejects any GET request that has a Content-Type][3].
Here is [an example of the problem manifesting itself][4].
To validate the fix in this commit:
1. Start with any OpenAPI3 spec e.g. the Petstore example at
https://editor.swagger.io/
2. Generate Python client code for the spec
3. Look at the generated `rest.py` e.g. in the [standard sample in this
repo][5] and see that the `Content-Type` defaults to `application/json`
for all HTTP methods (including `GET`, `HEAD` and `DELETE`), rather than
there being no `Content-Type` for `GET`, `HEAD` and `DELETE`.
Fixes#9831
[1]: https://github.com/stoplightio/prism
[2]: https://meta.stoplight.io/docs/prism/docs/guides/03-validation-proxy.md
[3]: https://github.com/stoplightio/prism/issues/1408#issuecomment-690948020
[4]: https://github.com/agilepathway/gauge-openapi-example/pull/28/checks?check_run_id=2888606052#step:13:18
[5]: 969cea8ce1/samples/openapi3/client/petstore/python/petstore_api/rest.py (L141)
* update samples
* Fix Python DELETE bug introduced in earlier commit
The earlier commit 9dfe1f6 introduced a bug for `DELETE` requests on the
standard Python generator. This commit fixes that bug and also includes
the updated samples.
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [Java] [Native] Unify exception messages for async, add the status code
The template has two methods for creating API exceptions, and the enhancements from #9169 didn't make it to the async version.
- unify the signatures of the two methods (name, arguments)
- make sure the sync version is not generated with asyncNative
- extract the formatting logic into a common formatExceptionMessage() method
- add the status code to the exception message as well, not just the body
- shortened "call received non-success response" to a more concise "call failed with"
* Treat an empty body the same as a null body
Co-authored-by: Jens Fischer <jens.fischer@vier.ai>
* Update Kotlin Multiplatform with Kotlin 1.5.10, Ktor 1.6.0 and Kotlinx.serialization 1.2.1
* remove @Serializable from interfaces
* Using 'String(CharArray): String' is an error. Use CharArray.concatToString() instead
* Fix, RequestConfig needs a type to infer type variable T
Fixes from @DevSrSouzaern
* Fix `private` keyword not being handle as a reservedWords
* Fix enum serialization generation
* Migrate gradle build to Kotlin DSL
* update samples and documentation
* PR Review changes
* sample update
* revert non multiplatform kotlinx_serialization removal
* default Json{} in ApiClient
* revert accidental version push for jvm client
* Match ktor and Kotlinx Serialization version in documentation and build.gradle.kts
* remove const from JSON_DEFAULT
* Update AbstractKotlinCodegen.java
Co-authored-by: Gabriel Souza <devsrsouza@gmail.com>
Co-authored-by: ern <ern@ti8m.ch>
* Implement new PowerShell example structure
Signed-off-by: Simeon Gerginov <sgerginov@vmware.com>
* Modify documentation template to work with the new PowerShell example format
Signed-off-by: Simeon Gerginov <sgerginov@vmware.com>
* Update PowerShell Generator documentation with the new properties
Signed-off-by: Simeon Gerginov <sgerginov@vmware.com>
* Update PowerShell samples with the new PowerShell example format
Signed-off-by: Simeon Gerginov <sgerginov@vmware.com>
* Fix issues with array of models as parameters
Signed-off-by: Simeon Gerginov <simeongerginov1@gmail.com>
* Change string value generation to include the prefix 'My'
Signed-off-by: Simeon Gerginov <simeongerginov1@gmail.com>
* Remove multiple new lines and trim leading and trailing spaces in PowerShell example
Signed-off-by: Simeon Gerginov <simeongerginov1@gmail.com>
* conditional serialization add only those property which user wants to configure.
* fixed the samples
* fixed the sample String to string issue.
* fixed the sample String to string issue.
* updated the sample
* Added unit test for conditional serialization
* update samples
* remove trailing spaces, update samples
* remove files
* add back files
* build the project in the ci
Co-authored-by: William Cheng <wing328hk@gmail.com>
* first commit: add cli option for saga and records. Added dummy sagas.mustache test file.
* More progress with default values. First prototype for isEntity and isUniqueId.
* record generation complete
* record generation complete
* progress with saga generation
* progress with saga generation
* first fully working saga generation
* merge with latest master
* removed unneeded "items" properties.
* moved global CodegenModel modifications into subclass ExtendedCodegenModel used exclusively by TypescriptFetchClient. Adding missing samples files.
* moved global CodegenOperation modifications into subclass ExtendedCodegenOperation used exclusively by TypescriptFetchClient.
* moved global CodegenProperty modifications into subclass ExtendedCodegenProperty used exclusively by TypescriptFetchClient.
* moved global CodegenParameter modifications into subclass ExtendedCodegenParameter used exclusively by TypescriptFetchClient.
* added the missing "allSagas" export.
* renamed & reworked "meta data response" flags to a more useful general concept of "operation return passthrough"
* added vendor flag keepAsJSObject as escape hatch to support circular dependencies in models and other special cases. Also fixed issues with default values for some records properties.
* added autodetection for passthrough to simplify standardised specs.
* fix small issue with passthrough void
* fix small issues with passthrough void and missing passthrough imports in some cases. Fix issues with enum default values.
* fix small issues with passthrough void and missing passthrough imports in some cases. Fix issues with enum default values.
* Added "reservedRecordField" feature to support remapping fields names that cannot be used in Records. Added missing export to record: toApi().
* added uniqueId inference. Fix small generation when uniqueId property is an array.
* removed feature "reservedRecordField" and replaced it with existing built-in "reserved words" feature. Fix minor issues with typings in generated files.
* Changed api recType names to make them less likely to cause name conflicts. Added generated ApiEntities (record, reducer & selector) files.
* Moved location of ApiEntities related files and fix issues with exports.
* - merge latest master
- renamed fake test apis to better fit the "pet theme"
- added mode for "SourceOnlyLibrary" (same as used in codegen typescript jquery)
* - missing ganarate sampless
* - Modified way to export apiEntitiesSelectpr to reduce typescript analysis time for consuming project. Removed tab characters in mustache files. Reformat code for TypeScriptFetchClientCodegen to try to remove false positive for tabs vs spaces.
* - added markErrorsAsHandled property to api sagas. Increased typescript version to address some typing errors on library build.
* - fix bug in saga interfaces. Upgraded to typescript "strict" mode to ensure proper typechecking info is generated.
* - added optional id for apiEntity selectors. Added toInlined() support to convert an entity to an inlined model recursively.
* - minor tweak for apiEntitySelector to accept null id
* - minor tweak for apiEntitySelector
* - runned ensure up to date.
* Revert "- runned ensure up to date."
This reverts commit ea9b4aed
* - runned ensure up to date.
* - runned ensure up to date.
Co-authored-by: Bruno Flamand <bflamand@stingray.com>
* Continuing from #1317 and its PRs for pistache server string enum code generation;
* A class that has an `anyOf` specification, in cpp side will have no members: in stead it should have a member having the type `classname_anyOf`
* Thus, Its `==` operator is not present or wrongly filled
* An string enum, should have a better usage, hence the `setEnumValue`
* this PR, is a brigde between `stringenumclassname_anyOf` and `stringenumclassname`
* `anyOf` specification is not just about `Enums`, so a better handling is needed from mustache templates, hence new template model parameter `isStringEnumContainer`
* PR fix: muttleyxd: `double semicolon`
* PR fix: wing328: `I think std::string is C++ only. What about adding x-is-string-enum-container instead in the postProcessModel operation in the C++ pistache server generator?`
* PR fix: wing328: `I think std::string is C++ only...` after fix get latest codes and then generate samples
Co-authored-by: Mehmet Fatih <mfyuce@netas.com.tr>
Use Gradle 6.9 and Kotlin 1.4.32. Generate Paths for other HTTP verbs
(#828) and fix imports (#5640). Use 'object' when no parameters are
used. Introduce 'featureMetrics' to control metrics plugin usage. Remove
HOCON configuration parsing. This is provided by
`Application.environment.config already` and removes a dependency.
Resolves#9087, resolves#828, resolves#5640
Relates-To #5346
* Revert a change to the Go Client code that broke
the ability to download files. This reverts the change
from 14d41310b9
* Missed import for "io/ioutil"
* update samples
Co-authored-by: icubbon <icubbon@gmail.com>
* Add imports for inner items of arrays/maps in composedSchemas
* Add test case for typescript-angular
* tests
* tests
* disable generate alias
* Create different config
* [python][client] allow passing floats for _request_timeout
While several method docstrings suggested that you could pass floats for
_request_timeout and the underlying urllib3.Timeout can deal with them,
the code only allowed integer values so far when passed as a single
number.
* [python][samples] update with fix for _request_timeout type
* [python-fastapi] Fixed integration tests
Currently, it is required to use python 3.7 to make
python-fastapi generator work. This version is already
set in the generated Dockerfile. Thus, it makes sense to
build this image. Spotify's docker maven plugin can be
used to build the docker image.
Signed-off-by: Nikita Vakula <programmistov.programmist@gmail.com>
* fixup! [python-fastapi] Fixed integration tests
Signed-off-by: Nikita Vakula <programmistov.programmist@gmail.com>
* fix compilation break with validate function
* fix error handling in handleParsingException
bug caused all errors to be regarded as an internal server error
* generate samples
* map free-form objects to Dict[str, Any]
* support Forward Type References
Forward type references will be supported by default from Python 3.10 on only. Until then (and starting with Python 3.7), we can opt in by a __future__ import, cf. https://docs.python.org/3.9/whatsnew/3.7.html?highlight=forward#pep-563-postponed-evaluation-of-annotations
* re-created pet-store sample
* bump required Python version to 3.7 for generated FastAPI projects
* make pydantic modell classes process forward type references
* [haskell][server]: Set "AnyType" to `Aeson.Value`
`AnyType` would not be translated to the json value type.
This fixes that.
* [haskell][server] Fix haddock error in `API.hs`
Haddock (the Haskell documentation generator) would choke on the
misplaced docstring. The heading has to appear inside the list.
Thanks to Julian(jfastnacht) who started Slim3 generator and maintained it
until Nov 27, 2017(latest PR). Since Slim4 codegen is based on deprecated
Slim3 I greatly appreciate your commitment.
Add new configuration flags: REMOVE_OPERATION_ID_PREFIX_DELIMITER and REMOVE_OPERATION_ID_PREFIX_COUNT
Add the corresponding fields in the DefaultCodegen
Sanitize the operationId according to the new fields
Add delimiter to list of nonNameElementPattern
Add unit test
* [ci] Only run samples when they actually changed
* in pull requests only run the samples that matter
* if a sample is outdated it will still fail in the build pipeline
* Test Kotlin sample changes
* Revert Kotlin sample change
* pass init and url as returned by the premiddleware to the postmiddleware
Current implementation will always pass the initial url and init object. However if a pre middleware changes returns an object whose `init` or `url` property refer to a different url string or object, any following post middleware wont have access to it. Effectively providing the post middleware with a completely different request information then what was actually used to make the fetch call.
* update samples and docs
Model naming conforms to the property: modelPropertyNaming, however the
parameter naming scheme is currently hardcoded to camelcase. Since the
parameter names are closely tied to the model properties names, is maybe
desirable to use a similar naming approach.
The toParamName cannot directly use the paramPropertyNaming since that
will cause issues with current generated code, since the
modelPropertyNaming currently defaults to "original"
A new property has been created to override this behavior, named
"paramPropertyNaming", and its default is set to "camelcase".
* [python-fastapi] Apply constraints to models
Signed-off-by: Nikita Vakula <programmistov.programmist@gmail.com>
* [python-fastapi] Use pydantic types to validate models fields
Some data formats can be validated by annotating fields with some
special pydantic data types (EmailStr, forr example).
Signed-off-by: Nikita Vakula <programmistov.programmist@gmail.com>
* [python-fastapi] Updated samples
Signed-off-by: Nikita Vakula <programmistov.programmist@gmail.com>
* [dart][dart-dio] Add support for query collection parameter format
* add support for collectionFormat in query parameters and www-url-encoded content
* add tests
* remove empty query parameter maps from generated code
* closes#6681
* closes#9522
* closes#8271 (the last remaining parts)
* Fix formatting
`toModelImportMap` only accounts for union types and not intersection types, so I've combined those cases into `splitComposedType`. For `splitComposedType` I combined `replace(" ","").split("\\|")` and `split("( [|&] )|[<>]")` into `replace(" ","").split("[|&<>]")`.
I've added the `needToImport` check to `toModelImportMap`. This is the same check that happens in `addImport`.
* Allow to run ValidateTask tests against Gradle 7.0 as well
* Drop setters for ValidateTask properties of mutable types
This is applicable to the following properties:
- inputSpec
- recommend
Otherwise, Gradle 7.0 now returns an error when attempting
to configure this task.
See https://docs.gradle.org/7.0/userguide/validation_problems.html#mutable_type_with_setter
* Be more specific about the versions of Gradle tested in ValidateTaskDslTest
Test against the latests Gradle 5.x and 6.x versions
* [python-fastapi] Ignore some flake8 warnings
1. Some of the "imported but not used" warnings are there because
it is not easy to express what should be imported in mustache template
language. These warnings are silenced in order to keep the templates
morre readable.
2. Single quotes -> Double quotes (for consistency).
Signed-off-by: Nikita Vakula <programmistov.programmist@gmail.com>
* [python-fastapi] Added flake8 config
Signed-off-by: Nikita Vakula <programmistov.programmist@gmail.com>
* [python-fastapi] Set extra constraints on values
It is important to set all constraints (pattern, greater than, etc.)
on values of all arguments, because FastAPI can handle them automatically.
Signed-off-by: Nikita Vakula <programmistov.programmist@gmail.com>
* [python-fastapi] Updated samples
Signed-off-by: Nikita Vakula <programmistov.programmist@gmail.com>
* fix handle_request_json spec res
* fix client spec
* make it possible to answer with 0 size binary for 204
* only generate empty bin for 204
* only generate empty bin for 204
* [swift5] Rename the API class to {{projectName}}
Instead of {{projectName}}API. This removes some unnecessary naming
complexity.
* [swift5] Define models and Configuration classes under namespace
When swiftUseApiNamespace is set, API classes get defined under the
projectName namespace. This does the same for models and the
Configuration class. Plus adding a deprecation warning when using the
un-namespaced variants.
* [swift5] Use CodingKeys in model decoder
Fixes: 0f5e7d1e3c ("Swift5 models improvements (#9205)")
* [swift5] Add swiftUseApiNamespace to urlsessionLibrary config
* Update samples
* Try to reduce model changes
Co-authored-by: Bruno Coelho <4brunu@gmail.com>
And update to Kotlin 1.5.0 and kotlinx.serialization 1.2.1. Fix nested
enum annotation '@Serializable' instead of '@KSerializable' when
'kotlinx_serialization' is used. Fix missing JsonMediaType in
ApiClient.kt (#9242). Add 'kotlinx_serialization' serialization library
to documentation. Use explicity type in RequestConfig to keep type
information for JSON serialization.
Resolves#9242
* [cpp-restsdk] Update json double/float parse.
Fix cpp-restsdk double and float parse.
double.NaN was parsed when server doesn't ensure the floating point value has decimal point in in.
* Update docs & samples.
* remove deprecated author field from all pubspec templates
* improve dart-dio-next readme/markdown documentation
* add a lot of dart-doc to model and API classes
* changed correct values
* Updated virtualan version
* updated the correct version
* Updated with latest version
* Update pom.xml
* Updated with 2.5.0
* Updated with db 2.5.0 version
* Adds getter + setter methods for isShortInteger in IJsonSchemaValidationProperties
* Adds isShortInteger to CodegenModel
* Adds isShortInteger to CodegenProperty
* Adds isShortInteger to CodegenParameter
* Adds isShortInteger to CodegenResponse
* Ensures that samples are up to date
* Changes interface to isShort
* Removes typescript file
* Adds isShort to CodegenModel and CodegenProperty instances
* Samples updated, shows too many changes across generators
* Adds isUnboundedInteger and implements it in CodegenModel
* Adds isUnboundedInteger to COdegenProperty
* Adds isUnboundedInteger to CodegenParameter
* Adds isUnboundedInteger to CodegenResponse
* Regenerates samples and docs
* Adds testBooleansSetForIntSchemas
* Fixes integer tests
* [cpp-ue4] Added public methods to process enums in string form as it may be useful for the user code
* [cpp-ue4] Fixed linker errors in some configurations
* [kotlin][client] fix Android crash on API level
* [kotlin][client] update sample project
* Try to fix CI
* [kotlin][client] add flag to control android api level supported
* [kotlin][client] update docs
* [kotlin][client] update docs
* [dart][dart-dio] Improve support for file uploads
* add support for filenames in multipart requests by using `MultipartFile` from dio directly
* add support for binary/file body data
* fixes#6671
* fixes#9079
* Add and fix tests
* Only use MultipartFile for body/multipart parameters
* Fix test
* Actually fix tests
* initil tiny client generator
* Helper string
* WIP: added helper file with json helper functions
* WIP: model implementation.. Working on JSON
* Added codegen files for model and helper
* WIP: toJson()
* Added mapping configurations
* Upadet string compare
* Removed redundant namespaces
* Added files for example
* fixed syntax errors
* fixed syntax errors
* header generation
* unittest example for pet class
* Refactored mustache & fixed logical errors
* WIP: unit test mustache format
* Removed legacy file
* mustache service
* Declare service in Java file
* Removed legacy file
* removed legacy code
* Documentation
* Added folder structure + new supporting files
* Added file to run all unittests
* Refactored unit tests
* typemappings and new paths
* First service impl
* Added esp32 and esp8266 env
* Added default values
* Added cli option to specify controller
* added type decl method
* Added stringify methods
* service get requests
* Fix helper header
* post merge fix
* fix long test
* Tiny namespace
* remove shared pointer
* include petapi
* stringify
* return problems
* Canged logic for response-body handling
* Implemented last logic for reponse handeling
* Implemented constructor logic
* first tiny sample
* update basepath to petstore v3
* standard main example
* root certificate example
* root folder
* TODO cleanup
* exclude features
* supports delete again!👷
* remove todo ❌
* new main example ❣️
* new main example ❣️
* Make our feature set realistic
* fix indentation
* HTTP / HTTPS Connection
* Root certificate sample
* https vs http 👨🏻🔬
* fix lint in template
* default value for controller in config
* new readme 📜
* remove old comments
* removed unused testfile
* no default root certificate
* new main
* remove test
* Update platformio.ini.mustache
🤷♂️
* Update platformio.ini.mustache
remove native
* added support info
* Add namespace to Pet 🐅
* bourne compatibility fix
* spelling error in python file
* bourne python script 🐍
* Version bump
* Add bourne script to readme
* update main sample, from template
* pre_compiling_bourne.py.mustache to samples folder 📃
* set header Content'type to json
* map todo🗺️
* remove unused debug flag⚒️
* added support for ESP8266 ༼ つ ◕_◕ ༽つ
* added new sample for ESP32 📀
* 🎯
* removed use of namespace std ❌
* removed use of "__" in variables
* removed unused code in destructor
* fixed type comparison
* move default ctor to header
* added zero initialized primitive variables
* moved variable to TypeMappings
* updated ifndefines
* Extra comment for build error in standard example 🦸🏽
* afer cpp-ish cast from std::string to uint8* cast🏰
* excluded maps type
* Documentation og generator
Co-authored-by: kaareHH <kaare.hattel@gmail.com>
Co-authored-by: mkakbas <45030188+mkakbas@users.noreply.github.com>
Co-authored-by: mkakbas <martinkandersen1@gmail.com>
* [ci] Move openapi-generator build/docs/samples to github actions
* Naming
* Test failure on samples and docs
* Revert code changes after successful docs/sample failure
* [dart] Improve content-type handling
* fixes#9334
* superseeds #9454
* use `prioritizedContentTypes` in the same way `JavaClientCodegen` does
* move `application/json` to the front if it exists
* don't do anything if it is multi-part or url-encoded as for this the first content-type already needs to match
* log warning if an unsupported content-type is first after prioritizing
* remove some unused code blocks from dio generators
* Only use first prioritized content-type in dio generators
* don't default to any content-type in dio-next, dio defaults itself to JSON
It was a mistake to extend Slim4 from Slim3 codegen. When I need to fix
something in Slim4 I have to overwrite code from Slim3 somehow and it's
not always possible. It's even more important that Slim3 codegen shouldn't
be touched as soon as it's deprecated long time ago.
* Introduce FileParameter as an abstraction
* Update Samples
* Add new file to samples
* Fix hardcoded package name
* Fix hardcoded package name, import FileParameter in Model
* Remove unneccesary warning
* [dart] Move Dart samples from CircleCI to Github actions
* Fix format failing with latest Dart version
* Workflow naming
* Split dart samples depending on version
* use fixed version to prevent flaky builds
* Change branch pattern for release branches
* Huge update for php-mezzio-ph generator:
- proper container support for data types
- support for query parameter references and query parameter schema references
- dependency update (PHP 7.3+, PathHandler 0.7+, DataTransfer 0.5+)
* Sample regeneration after rebasing for php-mezzio-ph
* - added custom CLI option for php-mezzio-ph to generate code using modern PHP syntax
- removed obsolete php-mezzio-ph samples in samples/openapi3/server/petstore/php-mezzio-ph
* - fixes for JavaDoc declarations that seems to break CI
* - fix for outdated sample file
* [Kotlin] [#8809] Allow optional header parameters with Kotlin and retrofit2
* [Kotlin] [#8809] Update sample client
* [Kotlin] [#8809] Replace mustache dot notation with more classic style
* [Kotlin] [#8809] Remove new line at the end of the mustache template
* Fix go-echo-server sample not running in CircleCI
* remove wrong argument
* [dart] Fix petstore sample tests & Multipart not working
* follow up to #9392
* `MultipartRequest(null, null)` is no longer valid after `http` package upgrade
* fix petstore sample project not compiling
* disable live petstore tests
* use template to strip out unused code blocks
* [crystal][client] support authorization header
* [crystal][client] update samples
* [crystal][client] update tests
* [crystal][client] add unit test for api_client.cr
* [crystal] update crystal version 1.0.0
* [crystal] show crystal version on CI
* [crystal][client] $ shards update --ignore-crystal-version
* [crystal][client] update pom.xml
* [swift5][client] add option to generate or not the models additional properties
* [swift5][client] update sample projects
* [swift5][client] format code
* [swift5][client] format code
* [swift5][client] format code
* [swift5][client] update docs
* Revert "[cpp-ue4] Added the possibility to retry requests easily with AsyncRetry method on the response and SetAutoRetryCount on the request"
* [cpp-ue4] Improved retry system to use Unreal's FHttpRetrySystem
* [cpp-ue4] Updated style guide link
* update samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* overhaul pistache templates
* fix function signature in model-source
return type now aligns with definition in model-header
* use default keyword for destructors
* generate pistache samples
* move bin/configs/other/cpp-pistache-server-cpp-pistache.yaml to bin/configs/cpp-pistache-server-cpp-pistache.yaml
* Only generate validation body if necessary
* generate pistache samples
* Add VMware to users list
LMK if I can provide the png for company logo. I tried uploading to img folder and could not.
* add logo, update readme
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Removed obsolete attribute on constructors without HttpClient prameter
* add clickable link in the tooltip
* update doc, add tests
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [TypeScript] Fix misplaced parentheses
* [TypeScript] Run PR relevant scripts
* [TypeScript] ensure up to date
* Revert "[TypeScript] ensure up to date"
This reverts commit 320ec45f
* Revert "[TypeScript] Run PR relevant scripts"
This reverts commit 23cda753
Co-authored-by: Stefan Wendt <stefan.wendt@isax.com>
* [scala][akka] Update dependencies for scala 2.13
* Update pom.mustache to support multiple scala's version
* Update pom.xml
* Scala cross build 2.12 and 2.13
* Update version. Migrate to sbt
* Remove space
* Add pom.xml back
* nim petstore to use 3.0 spec
* ktorm to use 3.0 spec
* update c petstore to use 3.0 spec
* Revert "update c petstore to use 3.0 spec"
This reverts commit a8ff0517ba.
In 5.0.1 the generated line in `ApiClient` was:
```
return RequestBody.create(MediaType.parse(contentType), (byte[]) obj);
```
in 5.1.0 it is:
```
return RequestBody.create((byte[]) obj, MediaType.parse(contentType));
```
Looks like this change was introduced in #8969, and requires a more recent version of OkHttp to compile in some (all?) circumstances.
* Fix parentSchema conditional
we cannot call `parent::` if parent isn't present. Everywhere else in the schema we're checking for `{{parentSchema}}` but here we're checking for `{{parent}}` which is causing errors when parent is not present
* Update samples
* Fixes additionalProperties values for models, updates docs, adds tag test of it, fixes frit and gmfruit tests
* Moves this.setDisallowAdditionalPropertiesIfNotPresent higher
* Makes setting additional_properties_model_instances contingent on the presence of addprosp in schema, updates sample spec composed schemas to remove addprops False form two
* Fixes oneOf anyOf allOf instantiation logic
* Removes Address from Cat definition
* Adds required vars for apple and banana, removes required vars from composed schema init sig
* Updates composed schema vars to be set on self and all composed instances
* Removes get_unused_args, get_var_name_to_model_instances, and get_additional_properties_model_instances
* Fixes fruit + deserilization tests, creates ComposedSchemaWithPropsAndNoAddProps
* Fixes FruitReq tests
* Fixes GmFruit tests
* Fixes discard_unknown_keys tests
* Samples updated
* Removes additionalproperties False in Child
* Samples updated
* Improves handling of v2 and v3 specs for isFreeFormObject, v2 sample spec updated with link to bug
* Adds cli option disallowAdditionalPropertiesIfNotPresent to python
* Adds getAdditionalProperties method so the value for addProps will be correct
* Reverts file
* Reverts file
* Updates python doc
* Reverted anytype_3 definition
* Updates test_deserialize_lizard
* Updates test_deserialize_dict_str_dog
* Updates testDog
* Updates testChild
* Adds v2 python_composition sample
* Adds needed files for python testing
* Adds existing tests into the new python sample
* Fixes test_dog
* Removes addProps false form Dog
* Fixes testChild
* Updates how additionalProperties are set
* Fixes empty_map type
* Type generation fixed for v2 and v3 specs
* Refactors getTypeString, updates artifactids in pom.xml files
* Adds new python sample to CI testing I think
* Fixes artifactId collision, regenrates docs
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`, `5.1.x`, `6.0.x`
- [ ] File the PR against the [correct branch](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches): `master`, `5.3.x`, `6.0.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.
@@ -87,12 +88,10 @@ To add test cases (optional) covering the change in the code generator, please r
To test the templates, please perform the following:
- Update the Petstore sample by running the shell scripts under the `bin` folder. For example, run `./bin/generate-samples.sh .
/bin/configs/python*` to update the Python-related samples under [`samples`](https://github.com/openapitools/openapi-generator/tree/master/samples). For Windows, please install [GIT bash](https://gitforwindows.org/). (If you find that there are new files 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`.
- 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)
- 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)
[](https://github.com/OpenAPITools/openapi-generator/actions?query=workflow%3A%22Check+Supported+Java+Versions%22)
| 6.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/6.0.0-SNAPSHOT/) | Nov/Dec 2021 | Minor release with breaking changes (no fallback) |
| 5.2.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/5.2.0-SNAPSHOT/) | May/Jun 2021 | 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.1.0/openapi-generator-cli-5.1.0.jar)
You can also download the JAR (latest release) directly from [maven.org](https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/5.2.0/openapi-generator-cli-5.2.0.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`
@@ -562,7 +560,7 @@ When code is generated from this project, it shall be considered **AS IS** and o
### [3.5 - IDE Integration](#table-of-contents)
Here is a list of community-conitributed IDE plug-ins that integrate with OpenAPI Generator:
Here is a list of community-contributed IDE plug-ins that integrate with OpenAPI Generator:
- Eclipse: [Codewind OpenAPI Tools for Eclipse](https://www.eclipse.org/codewind/open-api-tools-for-eclipse.html) by [IBM](https://www.ibm.com)
- IntelliJ IDEA: [OpenAPI Generator](https://plugins.jetbrains.com/plugin/8433-openapi-generator) by [Jim Schubert](https://jimschubert.us/#/)
@@ -575,6 +573,7 @@ Here is a list of community-conitributed IDE plug-ins that integrate with OpenAP
## [4 - Companies/Projects using OpenAPI Generator](#table-of-contents)
Here are some companies/projects (alphabetical order) using OpenAPI Generator in production. To add your company/project to the list, please visit [README.md](README.md) and click on the icon to edit the page.
@@ -666,6 +668,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- [Twitter](https://twitter.com)
- [unblu inc.](https://www.unblu.com/)
- [Veamly](https://www.veamly.com/)
- [VMWare](https://www.vmware.com/)
- [wbt-solutions](https://www.wbt-solutions.de/)
- [Woleet](https://www.woleet.io/)
- [WSO2](https://wso2.com/)
@@ -821,8 +824,12 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- 2021-03-28 - [Trying out NestJS part 4: Generate Typescript clients from OpenAPI documents](https://dev.to/arnaudcortisse/trying-out-nestjs-part-4-generate-typescript-clients-from-openapi-documents-28mk) by [Arnaud Cortisse](https://dev.to/arnaudcortisse)
- 2021-03-31 - [Open API Server Implementation Using OpenAPI Generator](https://www.baeldung.com/java-openapi-generator-server) at [Baeldung](https://www.baeldung.com/)
- 2021-03-31 - [使用OpenAPI Generator實現Open API Server](https://www.1ju.org/article/java-openapi-generator-server) at [億聚網](https://www.1ju.org/)
- 2022-04-19 - [Introducing Twilio’s OpenAPI Specification Beta](https://www.twilio.com/blog/introducing-twilio-open-api-specification-beta) by [GARETH PAUL JONES](https://www.twilio.com/blog/author/gpj) at [Twilio Blog](https://www.twilio.com/blog)
- 2022-04-22 - [Leveraging OpenApi strengths in a Micro-Service environment](https://medium.com/unibuddy-technology-blog/leveraging-openapi-strengths-in-a-micro-service-environment-3d7f9e7c26ff) by Nicolas Jellab at [Unibuddy Technology Blog](https://medium.com/unibuddy-technology-blog)
- 2021-04-19 - [Introducing Twilio’s OpenAPI Specification Beta](https://www.twilio.com/blog/introducing-twilio-open-api-specification-beta) by [GARETH PAUL JONES](https://www.twilio.com/blog/author/gpj) at [Twilio Blog](https://www.twilio.com/blog)
- 2021-04-22 - [Leveraging OpenApi strengths in a Micro-Service environment](https://medium.com/unibuddy-technology-blog/leveraging-openapi-strengths-in-a-micro-service-environment-3d7f9e7c26ff) by Nicolas Jellab at [Unibuddy Technology Blog](https://medium.com/unibuddy-technology-blog)
- 2021-04-27 - [From zero to publishing PowerShell API clients in PowerShell Gallery within minutes](https://speakerdeck.com/wing328/from-zero-to-publishing-powershell-api-clients-in-powershell-gallery-within-minutes) by [William Cheng](https://github.com/wing328) at [PowerShell + DevOps Global Summit 2021](https://events.devopscollective.org/event/powershell-devops-global-summit-2021/)
- 2021-05-31 - [FlutterでOpen Api Generator(Swagger)を使う](https://aakira.app/blog/2021/05/flutter-open-api/) by [AAkira](https://twitter.com/_a_akira)
- 2021-06-22 - [Rest API Documentation and Client Generation With OpenAPI](https://dzone.com/articles/rest-api-documentation-and-client-generation-with) by [Prasanth Gullapalli](https://dzone.com/users/1011797/prasanthnath.g@gmail.com.html)
- 2021-07-16 - [銀行事業のサーバーサイド開発について / LINE 京都開発室 エンジニア採用説明会](https://www.youtube.com/watch?v=YrrKQHxLPpQ) by 野田誠人, Robert Mitchell
## [6 - About Us](#table-of-contents)
@@ -852,6 +859,7 @@ Here is a list of template creators:
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.