* Adds vars to all schema classes, adds partial test
* Adds tests and addVarsRequiredVarsAdditionaProps
* Adds CodegenProperty test
* Adds requiredVars
* Adds vars and requiredVars cloning for CodegenProperty
* Fix a bug when asking to upload a MultipartFile as body.
* Make finalizing MultipartFileRequest simpler.
* Restrict creating a MultipartFileRequest when not part of a multipart-form.
* Simplified the upload to use a StreamedRequest.
* Wrap all requests with try-catch.
* First iteration to support new mechanism that needs to have the handle of the result.
* Most of the samples now build except "async". Also, everything is messed up.. need to understand the mustache way to handle this.
* New version to support play 2.8
* Fix conflict
* Fix error when multiple file in forms
* test protobuf schema
* remove sudo
* use different image
* proto files
* test with go
* test with go
* test with go
* test with go
* break the build
* Revert "break the build"
This reverts commit 81c10e7d96.
* remove comment
* move config
* remove old protobuf-schema.yaml
* Update users.yml
We are happily using this, too!
* add our logo, too
* sort in our company alphabetically
Co-authored-by: Alexander Presber <alexander@giantmonkey.de>
* [python] add socket_options to configuration for the rest client
* (python-experimental) add socket_options to configuration for the rest client
This mirrors work done on the python generator
* (python-experimental) add test to cover socket_options is passed on from configuration
Co-authored-by: steve brazier <steve.brazier@trioptima.com>
* Force isCollectionFormatMulti in case of binary/file
* Manage multipartFormData in isCollectionFormatMulti
* Update petstore
Co-authored-by: Julien Herr <julien@nabu.io>
* test file return
* fix stream response
* use options
* use local var
* fix nil tempfile
* fix tempfile
* fix tempfile
* use stream
* check content
* open temp file
* test ruby file download
* fix stream data
* test faraday
* catch connection error
* catch Faraday::ConnectionFailed
* catch all error
* use sream
* refactor
* fi download file in faraday
* local fix
* fi streaming download
* undo changess to spec, test
* undo changes to spec
* add option to return None instead of raising exception when accessing unset attribute
* update python samples
* reimplement getattr using getitem or get depending on attrNoneIfUnset
* move getattr and setattr to respective templates
* update docstrings, def get/setattr methods to have docstrings in them, use __dict__ to avoid recursion issues
* revert required_properties change
* add manual tests for .get method
* Fix [jaxrs-jersey][java][jersey] multipart/form-data file array issue on generating jaxrs-jersey.
This commit aims to fix https://github.com/OpenAPITools/openapi-generator/issues/7330 with described solution 'choice C'.
* add test code [jaxrs-jersey][java][jersey] for multipart/form-data file on generating
* update test code [jaxrs-jersey][java][jersey] for multipart/form-data file on generating
followed latest master branch of OpenAPITools/openapi-generator
* update samples/* by executing ./bin/generate-samples.sh
* update mustaches for JavaJaxxRS/libraries/jersey1/* and samples/* to resolve failure of CI test on PR.
Complex types need to be serialized as JSON to avoid FormData.append()
from converting them into strings through .toString(). The generated
ToJSON mapper is used in case the value name has underscores or other
unusual characters.
Signed-off-by: Andreas Metsälä <andreas.metsala@gmail.com>
* adding multiple servers support to typescript-rxjs
* regenerated typescript-rxjs samples
Co-authored-by: Schwartz, Benjamin <benjamin.schwartz@cgi.com>
* Implements additionalProperties in CodegenParameter
* Implements additionalProperties in CodegenProperty
* Adds additionalProperties to CodegenModel
* Adds additionalProperties to CodegenResponse
* Adds additionalProperties examples for CodegenModel and CodegenProperty
* Adds test cases for CodegenParameter and CodegenResponse
* Adds testAdditionalPropertiesPresentInModelProperties
* Adds testAdditionalPropertiesPresentInResponses
* Adds underscore name for additionalProperties property, needed for CppTizenClientCodegen
* Changes prop name back to empty string, fixes CppTizenClientCodegen
This adds the Maven integration tests to the Check Supported Java
Versions job which runs on master.
Maven on Windows was previously broken with templateDirectory. This was
fixed previously in a pull request, but the Maven plugin integration
testing did not work in our other CI vendors. This was tested and
verified in a private repo. The difference is likely due to vCPUs
available in GitHub Workflows differing from other free CI we use
elsewhere.
* Move java specific import mappers to java specific code gen
* Use JVM specific import mappers in kotlin, scala, groovy
* Update generators docs
* Add autogenerated files
* Better code for building Retrofit
By removing the nullable `usedClient` passed to Retrofit, the code is compatible with newer Retrofit versions which don't allow null as client.
* Updated Kotlin retrofit2 samples ApiClient
* Updates key java files
* Adds all lingering isArray fixes
* Adds two files
* Reverts two cs files
* Fixes lingering isListContainer + isArrayModel references
* Some ensure up to date updates
replace setConfig and setOpenApi with the
non-deprecated config / openAPI methods
Co-authored-by: Peter Somogyvari <petermetz@users.noreply.github.com>
* [maven] Fallback to templates using classpath rather than OS-specific paths
Previous checks would cause logic in Windows to return early, for
built-in templates only. This reorganizes and simplifies the ordering
behavior.
* Match classpath check in WorkflowSettings with that in TemplateManager
* [maven] Much needed unit/integration tests
This follows similar approach used in PMD and other plugins managed by
maven.
Unit tests simply verify we can load configuration as expected into the
Mojo.
Integration tests execute actual sample projects bound to the current
build's Maven plugin. This uses maven-invoker-plugin, which also allows
for specifying the maven options in invoker.properties to execute the test.
It also provides a verification framework using groovy files with the
required naming convention of "verify.groovy". This allows us to quickly
and easily check that certain files are outputted by generation, and we
may also spotcheck file contents.
templateResourcePath option is skipped on windows. I've tested back to
version 3.3.3 and this doesn't seem to have worked consistently with how
the property works on non-Windows.
* Set groovy 3.0.5 for test harness
* Print stacktrace on Maven error in Travis
* [maven] Set groovy version in tests to supported in Java 11+
* Puts maven integration tests in separate profile called 'integration'
The FILES metadata is supplementary, but was logging a warning while
generating Ada client that FILES couldn't be written. An exception was
being thrown because Path was being reported as two different "types of
Path". One would be reported as mac file, while the other was reported
as a unix file. The fix here is to disconnect path details from the
underlying file system provider by creating a new Path based on the
file's absolute path. This change also fixes sorting so it works
alphabetically in ascending order.
* fixed import mapping for arrays with component of type string
* changed test title
* generated samples
* Revert "generated samples"
This reverts commit b86a6fcdee.
* Fix#7594: [BUG][Ada] Incorrect client Ada code generated
- Fix the identification of path parameters
- Fix the model and client to support FreeFormObject
* update doc
* fix errors, update samples
Co-authored-by: Stephane Carrez <Stephane.Carrez@gmail.com>
* Resolve an exception situation when a remote server returns 204 with no body.
* Only return a value when needed.
* Use HttpStatus codes instead of magic numbers.
* Drop checking for a body as it will consume too much memory.
* Cosmetic changes.
* Updated Dart2 template.
* Generated Petstore client code for Dart2.
* Use double-quotes instead of single-quotes, to be consistent with output of Dart generator.
* Updated Petstore samples.
* Wrap few more places with triple curly parentheses.
* Generated Petstore files.
* Revert to using single quotes, fix Java generator too.
* Generated Petstore files.
* Lower case the content type value.
* Only lower-case content type when checking its value.
* Generated files from running "./bin/utils/ensure-up-to-date".
* Remove outdated comments for Dart1.
* Regenerate Petstore samples for Dart.
* Added a new option "pubLibrary".
* Added support for (de)serializing a DateTime into an epoch value.
* Make client variable a getter/setter, adjust docs.
* Fixed a small error in class template.
* Fix Dart documentation in API classes.
* Simplify test in HTTP Basic auth, remove unused lint rule.
* Adds items getter and setter in IJsonSchemaValidationProperties
* Adds isModel interface
* Reverts file
* Fixes issue_7613.yaml schema for /array_with_validations_in_items/{items} response body
* Adds isModel to CodegenModel hash and print and comparison
* Updates CodegenResponse hash and comparison and print
* add oneOf support to c# netcore
* add oneof support to c# netcore client
* update samples
* remove unused file
* add oneof support to response in api client
* add oneof support to serialize
* update samples
* fix actual instance, add more tests
* fix oneof handling in api client
* update tests
* [Rust Server] Fix server example on non-Linux
The server example is broken because it tries to import `use openssl::ssl::SslAcceptorBuilder;` unconditionally when it won't be present on MacOS, Windows or iOS and then conditionally provides `create` causing compile errors on the aforementioned platforms.
To fix, we simply move the condition from the function to the import and all is happy again :)
* Update Samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Remove old dart generated code
* Remove uses of SUPPORT_DART2
* Remove dart1 only flag BROWSER_CLIENT
* Remove supportDart2 and browserClient from docs
* Revert removal of credits of dart(1)
* Update getHelp in dartcodegen
* [Python-experimental] Don't mandate passing in required value as argument
* Remove usage of have_value
* Address additional review comments
* Fix tests according to the code change
* Does not set None as value initial value, removes hasRequired tag usage, updates docstring
Co-authored-by: Justin Black <justin.a.black@gmail.com>
* Update RetryConfiguration.mustache
Use Policy<> instead of RetryPolicy<> to allow for use of wrapped policies.
* update samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
swagger-parser has the potential to return null
for messages which will throw NPE on
initialization of the validationMessages hashset.
rather that allow this to happen we will assume
that a null message collection represents an empty
collection and continue.
Fixes#7453
* fix: correct handling of customHeaders
Problem: custom headers could be overwritten between
request retries following, e.g. a token refresh ( for example,
while implementing @4brunu refresh code :
https://github.com/OpenAPITools/openapi-generator/issues/5462#issuecomment-592417371 ).
A simple reordering of the modifiedRequest headers construction
solves the problem.
* fix: correct PetStore samples implementation [PR#7527]
Co-authored-by: Franz Marini <f.marini@opengate.biz>
* Fixing java:S3599 - Avoid double brace initializer
Because Double Brace Initialization (DBI) creates an anonymous class with a
reference to the instance of the owning object, its use can lead to memory
leaks if the anonymous inner class is returned and held by other objects. Even
when there's no leak, DBI is so obscure that it's bound to confuse most
maintainers.
* Fix incorrect List.contains typed check
* Avoid potential NPE in DefaultCodegen
* [fsharp] Remove unused boolean and log
* Fix potential NPE in Haskell http client
* Fix potential bugs in JavaCXFExtServerCodegen, found by static analysis
* Adds "useTags" option to all jaxrs code generators (AbstractJAXRSServerCodegen):
- jaxrs-jersey
- jaxrs-spec
- jaxrs-cxf-cdi
- jaxrs-resteasy
- jaxrs-cxf
- jaxrs-cxf-extended
- java-msf4j
- jaxrs-resteasy-eap
* jaxrs-spec
- Changed handling of root paths: e.g "/:", "/{id}:" to simplify code and create a more consistent behaviour
-- old: use tag for classname
-- new: use tag only if useTags is enabled, use "DefaultApi" if not
* @path class level annotation
- for all generators above and the microprofile generator (uses same jaxrs postprocessing)
- extended the "commonPath" to contain more than only the root path if possible
- e.g. "/group1/subgroup1/op1" -> "/group1/subgroup1" is moved to class level annotation
* Adds free form model generation in python-experimental
* Adds hasValidation property to codegenModel
* Adds separate variable val
* Samples regenerated
* Updates test_some_object.py
* Adds two more boolean conditions
* Runs ensure up to date
* Updates tests to check that models are or are not generated
* Removes unused import
* Updates model names in java test
* Removes unneeded test
* Cleans up tests
* HTTPSigning implementation for CSharpSDK
* Updated the sample for HTTPSigning
* Updated the sample2 for HTTPSigning
* update samples
* HTTPSigning_For_Async
* update samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Issue 7425: Fixed comments that referred to RestTemplate.
* Ran genreate-samples.sh
* Re-ran generate-samples.sh against all configs.
* update samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Fix the new package that deal with Configuration (the old one is depecrated)
* First version to support Play Framework 2.7
* Fix small problems that prevent compilation of each samples. Now everything is compiling perfectly
Tests running under Gradle 5.6.4 were breaking due to a change in
informational output. It's not clear when this was introduced, but it
looks like the upgrade to Gradle 5.6.4 may have stopped running tests
during builds.
* Rust reqwest/api_mustache Missing api Vec in parameter
Not using #isListContainer in parameters
* incorrect value for supportAsync
supportAsync set to "false" should be false
* Sample updates for CI
* Fixed Double Vec
Only check for special case... "dataType" case includes Vec
* update samples
* remove old files
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Properly decode $ref
fixes#5720
* Specify decoding encoding
* Nicer syntax
* UTF-8 typo
* Unescape special characters
* Change order of unescaping to prevent escaped sequences by accident
* Comment for special decoding
Co-authored-by: Jim Schubert <james.schubert@gmail.com>
* Add unit test for simple ref decoding
Co-authored-by: Jim Schubert <james.schubert@gmail.com>
* Adds fix for issue7262 and a test of it
* Updates inline schema to not include properties
* Adds null check of discriminator
* Updates issue sample file
* replace go with go-experimental
* update samples
* extends with abstract go class
* rearrange
* remove deprecated
* minor fix
* remove go deprecated samples
* update pom, clean up samples
* mark generator as deprecated
* use java8 OffsetDateTime for clients
* use java8 OffsetDateTime for clients
* fix javadoc
* add javadoc to JavaTimeFormatter.mustache
* add javadoc to JavaTimeFormatter.mustache
* add javadoc to JavaTimeFormatter.mustache
* Add option to prevent usage of jackson-nullable (#2901)
Add a option for all java client and server to prevent
usage of third party library (jackson-databind-nullable)
which may be forbidden in some company
Add samples for Vertx, Spring MVC, Spring Cloud, Feign and Play
Upgrade dependencies for org.openapitools:jackson-databind-nullable
* Samples - Remove dependency org.openapitools:jackson-databind-nullable (#2901)
* Fix generation of gradle file for vertx (#2901)
* Regenerate samples (#2901)
* Fix documentation and up to date (#2901)
* Fix forgotten regeneration of vertx after dependency integration (#2901)
* Regenerate template after rebase (#2901)
* Use yaml config files introduce in #6509 to manage samples (#2901)
* Regenerate template using the config (#2901)
* Fix bad version during testing generated samples (#2901)
* Regenerate template after fix bad version (#2901)
* Fix merge, allow for set importing on codegen model
Co-authored-by: Jim Schubert <james.schubert@gmail.com>
* add model/index.ts
- move export of all models to model/index.ts
- move RequestFile definition to model/index.ts
This fixes#7126
* update samples
* Back out models/index.ts
Make this backwards-compatible:
- move `RequestFile` definition to `model/models.ts`
- remove `model/index.ts`
- re-export `RequestFile` from `api/apis.ts`
- make generation of `ObjectSerializer` conditional
* for some reason, Symfony isn't up to date
* reverts changes to php-symfony sample
* moves comment to mustache comment rather than TS comment
Co-authored-by: Esteban Gehring <esteban.gehring@gmail.com>
* removes stale files from samples (no longer generated)
* updates samples
Co-authored-by: Esteban Gehring <esteban.gehring@gmail.com>
* [java/resttemplate] Generate valid code if no Authentication implementations present
Take the logic used to decide which instances to add to the authentications map and re-use to not import classes or offer non-functional util methods
* parameterize formParams
fixes#5782
* replace use of ISO8601DateFormat and ISO8601Utils with StdDateFormat
fixes#5779
* add constructor to intialise calendar
* Revert "[java/resttemplate] Generate valid code if no Authentication implementations present"
This reverts commit 6e450907ba.
* Revert "parameterize formParams"
This reverts commit 7a26ce5dd2.
* also override single arg parse method to avoid throwing exception
* also override single arg parse method to avoid throwing exception
* update samples
* update samples
* fix jersey1 tests
* fix jersey2 test
* update resteasy dependencies
* fix java jersey2 oas3 tests
* use java8 in springboot-beanvalidation
Co-authored-by: Jon Freedman <jon.freedman@zoho.com>
This adds an x-is-free-form vendor extension to allow users to skip our
"free-form" logic which would previously prevent object schemas with no
properties to be considered "free-form". The previous behavior was due
in part to Swagger Parser not exposing `additionalProperties: false` to
us (which should be similar behavior to this extension).
A free-form object is considered a dynamic object with any number of
properties/types. DefaultGenerator does not allow for generation of
models considered free-form. However, a base type with no properties and
no additional properties is allowed by OpenAPI Specification and is
meaningful in many languages (e.g. "marker interfaces" or abstract
closed types).
* Updates docker images for CLI and Online to JDK 11 and Maven 3.6.3 builders
* Uses openjdk:11.0.8-jre-slim-buster rather than alpine as new image publishes CVEs
* Update apiInvoker.mustache
In scala-akka-client code that is getting generated, addAuthentication method is called after setting headers using header parameter in the below mentioned line
addAuthentication(request.credentials)(
httpRequest.withHeaders(headers(request.headerParams))
)
However, in addAuthentication method, we are using withHeaders method that overwrites the headers set using header parameters. So, I am proposing to
change the addAuthentication method be replacing withHeaders() method to addHeader() to add authentication header to the list of already existing headers.
* Update ApiInvoker.scala
Added changes to sample for the client generator code change
* Provide getter `values` for all enum values
* Add values getter also to inline enum
* Generate samples
Co-authored-by: SimonIT <simonit.orig@gmail.com>
* FILES is now path relative with no prefixes
some Java implementations don't honor .relativize documentation fully.
When outDir is /a/b and the input is /a/b/c/d, the result should be c/d.
Some implementations make the output ./c/d which seems to mix the logic
as documented for symlinks. So we need to trim any / or ./ from the start,
as nobody should be generating into system root and our expectation is no ./
This resolves regeneration issues for those on such Java
implementations, although we've not been able to track down the exact
vendor or configurations which might lead to these differences.
* Ensure windows outputs FILES paths in same format
* Normalize FILES paths to remove relativization mid-path
* Correct date format of date formatted strings
* Update petstore
* Regenerate samples on linux
* Remove final for letting the user configure custom date formats
Co-authored-by: SimonIT <simonit.orig@gmail.com>
* First approach for discussion
* typo
* add addiotional method
* polish a bit
* remove call of super method
* fix javadoc error
* com.google.common.collect.
* merge master regenerate samples
* sort imports alphabetically
* sort imports alphabetically with right key
* typo
* add type previous imports are still there.
* add type previous imports are still there.
* remove new test to see if they are the problem.
* merge master add tests back in
* align changes which should not lead to failing test but you never know.
* remove formatting changes
* dummy change
* revert spaces
* revert spaces
* revert functional changes
* comment out test
* remove model
* remove interface method
* remove test class completely
* put test class back - test body commented out
* rename test methods
* put back logic and tests
* remove generated APIs
* remark amakhrov
* check in one generated file to test
* adjust call super
* add comment use set.
for required fields better. This change ensures the required field isn't
overridden with undefined when the object is constructed - especially through
a chain of constructFromObject calls..
* Adds example setting code in python-experimental with one fn setting example values
Fixes sample indentations
Handles composed schema models, object model and arraymodels
Adds brackets in arraymodel input
Sets modelName with map schemas
Removes included_schemas arguments, dicriminator examples do not include property examples
Refactors modelName into toExampleValueRecursive argument
Fixes bug where example models contained themselves
Stops using model ExampleGenerator examples because they are inconsistent with the ones in python-experimental
Uses example values if they exist
Removes single quotes from enum examples
Fixes password example
Adds commented our regex handling, commented out because it breaks
Handles AnyType schema examples
Adds x_example values for simple string properties, uses toExampleValue for all example generation
Adds examples for simple string parameters
Updates comments in toExampleValueBase
Fixes the double nested bug for AdditionalPropertiesWithArrayOfEnums
Fixes bug where NumberWithValidations had double nesting
Updates simple string examples in arrays
Fixes array string examples
Fixes example for string endpoint body example
Adds exampleFromStringOrArraySchema
Adds regex examples, pegs slf4j-version to v1.7.29 for rgxgen
Adds comment about regex seed
Updates pattern matcher to not handle ^ and $
Updates used sample values
Adds ensureQuotes
Adds ensureQuotes
Fixes double quote bug
Updates mustache file
Adds ensureQuotes to key handling
Adds modelNameToSchema map, reduces run time by using it
Fixes java tests
Regenerates python-experimental samples
Fixes python test
* Rebased on master
* Adds getModelNameToSchemaCache
* Updates toDefaultValue to not mutate schemas
* Has all dates and datetimes default and example setting use the same helper function
* Samples regenerated
* indentation tweak, removes txt from sample file
* Added library and edited generator to support server stub generation with Kumuluzee framework.
* Trimmed and tweaked pom.xml template and removed unnecessary template files from generator and library.
* minor edits
* Added new library to Java client codegen (microprofile-kumuluzee). A
functional KumuluzEE REST client can now be generated.
* Edited README for microprofile-kumuluzee
* Edited docs to include new KumuluzEE library options.
* Updated kee-rest-client client POM dependency version to latest
* fixed pom, edited REAMDE
* Trimmed redundant dependencies from KEE client pom
* Removed unnecessary DefaultGenerator edit, modified config template accordingly.
* Made mp framework an additional property for microprofile instead of being another library option, removed now redundant library files.
* Updated documentation with microprofile framework
* Fixed errors caused by removed functions and variables
* update doc
Co-authored-by: Chuckledog <aljaz.pavsic@gmail.com>
Co-authored-by: Jan Meznaric <jmezna@gmail.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
* update spec
* fix datetime default value
* fix the issues when the class name is not in pascal case
* Update modules/openapi-generator/src/main/resources/csharp-netcore/modelGeneric.mustache
Co-authored-by: Tatsuro Shibamura <me@shibayan.jp>
* update samples
Co-authored-by: Tatsuro Shibamura <me@shibayan.jp>
* update csharp-netcore dependencies
* update test sdk version
* set tests.sdk version to 15.9.2
* rearrange test
* vs 2019 image
* rollback to v4.61.0
* update Microsoft.NET.Test.Sdk version
* Revert "update Microsoft.NET.Test.Sdk version"
This reverts commit 7a86bfc415.
* rollback Microsoft.NET.Test.Sdk
The "..._parseFromJSON" template was buggy because the name of the _e type used was not the same than the generated.
See the first argument of "..._convertToJSON" to see that the _e type used there was not the same
* Add samples composer.lock to root .gitignore
composer.lock may produce CI errors when you need to test build against
different PHP versions. However users most likely want to commit this
file, so I think it's better to exclude it only in root .gitignore.
* Commit composer.lock in default PHP templates
* Refresh samples
* Update play framework minor version + scala + swagger-ui + Remove bugs in the url of swagger-ui.
* update samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [python-experimental] Fix model tests
* Fixes model tests to template off the classname instead of
the model's description.
* Uses python-experimental templates when generating
python-experimental samples
* Fix sample file manifest
* Restore remaining tests
* Added a Configuration object in the Runtime that can be used to update a base path.
Added a new Configuration object that has attributes that can be used to alter the behaviour of the query config generators. In particular, added a basePath field which can be used to prepend to the urls in the query configs. The old behaviour only used relative paths for the urls which means cross domain support was not possible.
* Ran script to update the samples after making the template change
Co-authored-by: Steve Graham <stgraham2000@gmail.com>
* renamed async methods to end with async
* update samples
* updated samples
* updated test to use new name
Co-authored-by: William Cheng <wing328hk@gmail.com>
* added rx3 support
* fix rx3 support
* generated samples
* updated samples
* update samples
* changed rxjava3 adapter to the one from squareup
* changed dependency of RxJava3CallAdapterFactory
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Update to reset httpRepsonse.Body such that is available to client consumers via the returned httpResponse variable.
* update samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* fixed a typo issue in aspnetcore generator #4829
* solved an issue with integration tests using WebApplicationFactory
* updated aspnetcore samples impacted by the change
* added cancellation tokens to async calls
* changed variable name for consistency
* update samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Corrects tag for including HttpSignatureAuth in gradle builds
* Updates version of org.tomitribe:tomitribe-http-signatures in
gradle template to match version from maven template
* Updates samples
* Fix for issue 4656 typescript-node generate invalid require statement instead of import statement
* Fixed broken link under testing templates
* Result of run generate-samples.sh / typescript-node*
* import stmt depending on flag supportsES6
* Update petstore sample for typescript-node
* import ... from stmt for http/request module
* update samples
* update doc
Co-authored-by: William Cheng <wing328hk@gmail.com>
* fix(typescript-axios): add Set as language primitive
* fix(typemapping): added lowercased set as primitive type
* fix(samples): regenerated ts samples and added Set as language primitive to ts docs
* Requires python >= 3.5, adds type hints to call_api method
* Adds type hints to files_parameters and __call_api
* Adds and uses a new json encoded to prepare data before it is sent
* Removes nose name from gitlab testing invocations
* Also updates travis to py>=3.5
* Collapses encoder back into sanitize_for_serialization
* [Swift5] Fix Datetime default value
If a default value is provided by the API spec for a date-time attribute,
this commit fixes the generation code to build a correct Swift `Date` object.
* update samples with swiftlint
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [java][jersey2-client] Disable coercion of scalars
* Respect the coercion objectmapper setting in deserializers
* Update jackson in maven plugin to get version that has ALLOW_COERCION_OF_SCALARS
* [Dart] Fix enum generation
* Update generated Order file
* Re-add constructor
* Generate dart2 files
* Dart - nicer enum formatting
* Dart - generate enum name as className+enumName
* Dart - dont initialize vars to null by default
Fixes#3633
* Dart - Generate inlined enums and deserialize them
* Merge branch 'master' of github.com:agilob/openapi-generator into 6727
* Dart - Fix using default value
* Fix typo
* Regenerate add dart files
* dart Revert override for dart dio and jaguar
* Fix dart model tests
* Fix dart1 generated template
* Use {{{datatypeWithEnum}}}
* Dart - throw when enum not known
* Fix generating enum with datatype from list
* Default value for the non required fields to null
When a field is not required, the avro schema has no default value.
Has described in an [avro issues](https://issues.apache.org/jira/browse/AVRO-1803), the property default: null must be set.
If we don't do this in the avro file, when we generate java code from generated avro schema, the builder fail if the data isn't set in the avro data class.
* Update generated avro sample
* Fix dir path in PR request template
* Add "useAbstractionForFiles" config option for Java/RestTemplate to allow flexible options in generated client when a file is needed (#6715)
* Add "useAbstractionForFiles" config option for Java/RestTemplate to allow flexible options in generated client when a file is needed (#6715)
* Add "useAbstractionForFiles" config option for Java/RestTemplate to allow flexible options in generated client when a file is needed (#6715)
* #6715 - Add "useAbstractionForFiles" config option for Java/RestTemplate to allow flexible options in generated client when a file is needed.
* Removes future from python-exp v3 sample
* Removes future from python-exp v2 sample
* Deletes future from remaining python-exp files
* Removes six from python-exp templates
* Removes six from python-exp samples
* Removes mock from python-exp
* Python-exp switched to py3
* Removes python 2.7 for python-exp ci testing
* Requires python>=3.3 for python-exp
* Reverts unnecessary changes to two templates
* Mustache template should use invokerPackage tag to generate import
* add JsonSubTypes annotation to handle scenario when OAS name has special characters
* add JsonSubTypes annotation to handle scenario when OAS name has special characters. Add unit test
* run sample scripts
* fix unit test
* run sample scripts
* add minimal openapi document to show issue with special characters and discriminators
* Add 'isClassnameSanitized' tag
* Add 'isClassnameSanitized' tag
* Add 'isClassnameSanitized' tag
* Add 'isClassnameSanitized' tag
* Add 'isClassnameSanitized' tag
* Add 'isClassnameSanitized' tag
* Add unit tests for unmarshaling of discriminators with special characters
* Add unit tests for unmarshaling of discriminators with special characters
* use JsonTypeName
Co-authored-by: Vikrant Balyan (vvb) <vvb@cisco.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
* fix: make accept header of async apis consistent with sync version
* make sync and async version use same logic
* generate samples for csharp-netcore using generate-samples.sh
* fix: make accept header of async apis consistent with sync version
* change tabs to spaces to match existing code
* Support per-call authentication and JsonNullable in client request bodies
Extensions
----------
Since vertx is an asynchronous/reactive toolkit usage of mutable fields
of `ApiClient` to store authentication prohibits delegation of
authentication from incoming call without recreating the client
everytime (which is prohibitively expensive due to instantiation of objectmapper).
This commit adds a per call authentication override which takes precedence
over the mutable fields so a single client can be safely reused. To ease
usage a simple builder-style auxiliary `AuthInfo` object is provided
providing methods for each specified authentication.
A new configuration option for `ApiClient` has been added: `timeout`. It gets
applied as timeout for the vertx http request.
Fixes
-----
Request bodies have been wrongly serialized using vert.x built-in
objectmapper instead of the embedded instance thus usage of beans with
`JsonNullable` wrapped fields in request bodies led to bad requests.
* update vertx samples
* Client Java Vertx: Add url encode for path parameters.
* update vertx samples
* move postProcessModel to the end
* add isAdditionalPropertiesTrue
* remove supportsAdditionalPropertiesWithComposedSchema from go exp
* remove x-additional-properties
* update comment
* Typescript:
* Added default values for DateTimeSchema, DateSchema and BooleanSchema.
* Added simple tests for default value parsing
* Fixed date tests for default value parsing
I've not used C# since shortly after my initial contributions to the C#
and asp.net generators, and have not followed the .NET Community closely
for a few years now. As I'm focused on other initiatives I am
removing myself from the C# technical committee so that others may
maintain the generator(s) according to the C# community needs.
* remove the dead code
Remove the dead code from ApiClient
The code is not used and it contains vulnerability of Log Forgery when it writes unvalidated http header to the log. An attacker could take advantage of this behaviour to forge log entries or inject malicious content into the log.
* update Petstore samples
* whitespace
* Update ObjectSerializer.mustache
If the $data is a wrongly formatted Json or if data is not an array, php gives error:
Invalid argument supplied for foreach() at line 257 (Now line is 262)
* update samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* set adapterBuilder.client() only if okBuilder was used in retrofit2
* updated the samples
* added field okHttpClient and updated samples
* bug fixed, added exception if okBuilder is null
* added semicolon
* added space, changed Exception to RuntimeException and changed its message
* updated the samples
The following change can be helpful to create Swift model objects more simply, in particular when they have many parameters.
In addition, projects switching from swagger-codegen to OpenAPI will not encounter compilation errors and will not need to refactor old code
* wip: fix documentation tags
* update model.mustache
* update template for documentation
* update mustache templates
* update mustache templates
* run ./bin/r-petstore and update R pkg docs
* use loadNamespace instead of package:pkgName string
* update R package code
* wip: enum
* update enum function
* use httr::content to unwrap response
* update enum table and functions
* include simplifyVector and auto_unbox arguments
* remove mapping and return strings
* use triple stash values and update enum class methods
* remove extra comma
* minor: formatting
* update and run ./bin/r-petstore.sh
* move helper for template
- export tag does not coincide with original model function
- move helper down so it does
* update tests based on generator
* Revert "update tests based on generator"
This reverts commit b6314c8927.
* Update tests with engine
- preserve test_petstore.R
* restore apiResponse
* restore simplifyVector to TRUE value
* update api.mustache templates
* fix and add tests to package
Co-authored-by: William Cheng <wing328hk@gmail.com>
* feat(typescript-rxjs): add support for returning statusCode and progressSubscriber via function overloading
* feat(typescript-rxjs): use ?? instead of || to support relative basePath of "", upgrade to typescript 3.7
* feat(typescript-rxjs): regenerate samples
* refactor(typescript-rxjs): change explicit undefined checks to shorthand return
* feat(typescript-rxjs): add missing progressSubscriber key when building RequestArgs
* feat(typescript-rxjs): regenerate samples
* style(typescript-rxjs): remove whitespace, add colons
* feat(typescript-rxjs): regenerate samples
* refactor(typescript-rxjs): destructure configuration in BaseApi
* fix(typescript-rxjs): returning empty string for apiKey and accessToken
* feat(typescript-rxjs): replace withStatusCode option with response = raw option, reuse rxjs AjaxRequest and AjaxResponse types
* feat(typescript-rxjs): regenerate samples
* Prints out the parameter name in throwIfNullOrUndefined
* Fixed misspelling
* feat(typescript-rxjs): add withProgressSubscriber additional-properties flag to cli, remove unused withInterfaces flag
* refactor(typescript-rxjs): use backticks instead of String constructor in encodeURI
* feat(typescript-rxjs): replace Object.keys() with Object.entries() in queryString helper
* style(typescript-rxjs): improve indentation of new withProgressSubscriber checks within templates
* feat(typescript-rxjs): use entire es2017 lib in tsconfig.json for building with target es6
* feat(typescript-rxjs): regenerate samples
* feat(typescript-rxjs): adjust sample generation, regenerate samples
* docs(typescript-rxjs): regenerate docs
Co-authored-by: Justin Van Dort <justinvandort@gmail.com>
* Fix annoying compile error
Fixes an annoying compile error that happens when a .NET Core 3.1 Swashbuckle generated `swagger.json` has a Controller with a request class.
> Type 'ApproveBrandRequest[]' is not assignable to type 'string | number | boolean | HTTPQuery | (string | number | boolean)[]'.
Type 'ApproveBrandRequest[]' is not assignable to type '(string | number | boolean)[]'.
Type 'ApproveBrandRequest' is not assignable to type 'string | number | boolean'.
Type 'ApproveBrandRequest' is not assignable to type 'true'.
* generated template files.
* update samples
Co-authored-by: Mathias Lorenzen <mathias.lorenzen@broelstaerk.dk>
Co-authored-by: William Cheng <wing328hk@gmail.com>
* add nullable body support
* update serializeToString with nullable body
* add nullable support to body parameter
* minor code format change
* Revert "minor code format change"
This reverts commit 3af1838a9b.
* code format fix
* add 'deno' to typescript platforms
* add Deno support to typescript generator
* add Deno support to typescript generator
* add Deno support to typescript generator
* add Deno support to typescript generator
* add Deno support to typescript generator
* add extensionForDeno property for typescript generator
* add URLParse Deno wrapper for typescript generator
* update deno version in .travis.yml
* Dynamic server support
* regenerated
* Apply suggestions from code review
Co-authored-by: Thomas Hervé <thomas.herve@datadoghq.com>
* regenerated
* Add ParameterizedServer feature to Python experimental
* Fix lookup of server variables
* Add tests and change default value for servers
* Fix server variables
* Return base path when index is None
* Use HOST
* Apply suggestions from code review
* Apply suggestions from code review
* regenerated
* Add specific tests for dynamic servers
* regenerated
* add docstring
* regenerated
* Fix wrong merge resolution
Co-authored-by: Thomas Hervé <thomas.herve@datadoghq.com>
It's now been several months since I last contributed. I'm no longer working with Rust on a regular enough basis to be confident reviewing changes to the Rust generators. In my absence, the other members of the technical committee have been doing a great job. Thus, I intend to remove myself from the Rust technical committee.
Once this has been merged, I'll also remove myself from the organisation and delete any other permissions I might have accumulated.
I'm one of the owners of the [swagger crate](https://crates.io/crates/swagger), a dependency of code generated by the rust-server generator. I'll remove myself as an owner of that as well. That will leave two owners (one being @richardwhiuk) - let me know if you want me to add a replacement.
I'll leave this for a few days before merging. Please shout if there's something I've missed or need to hand over.
Thanks to everyone who's contributed to the Rust generators - I enjoyed my time as part of the technical committee. Thanks in particular to @wing328 - your help with rust-server was invaluable.
* Remove package from sources
* Add Mocker package
* Add BaseModel
Beside setters and getters this class implements three methods required
for mocking: getOpenApiSchema, createFromData and jsonSerialize.
BaseModel keeps all data values in $dataContainer like PHP client does.
I don't see other way to support scalar models(enum for instance).
That's why I've removed class variables generation.
* Update documentation
* Update PHPUnit section in readme
* Add constant with models namespace
This constant will be required for data deserialization when handling
refs.
* Refresh samples
* Add samples generation config
- A static set needs a static lock or we get multiple locks if the class is inherited
- If this fix is not included and SWGObject is accessed from a second thread then we get EXC_BAD_ACCESS error (crash)
* When withXml=false we shouldn't add the jaxb imports
When users are just dealing with json and set withXml=false jaxb (Java Api XML binding) imports are not needed.
* Updated the microprodile-rest-client samples
* Removed cxf-rt-rs-extension-providers dependency
* Fix processing of enum values
* Remove unwanted changes
* Remove spaces
* Fixed a bug where request body names were not being transferred appropriately based on openapi definitions
* Added changes made to output samples
* Fixed formatting on Controller.mustache
* Added sample code generated after last change
* Add unit tests for additional properties
* add unit tests
* Add unit tests and fix processing of additionalProperties
* fix deserialization issue with additional properties
* Use jsonb imports for serializing and deserializing pojo
* Fix: Exclude jsonbProperty class when withXml=true
Co-authored-by: Ravisankar Challa <ravisankar.challa@qantas.com.au>
* Remove duplicate definition of Endpoint class
The class is copied in every API modules, we can share it alongside the
API client.
* Regenerate examples
* Add jersey2-experimental to petstore build script
on-behalf-of: @nqminds <info@nquiringminds.com>
* [java] Add <source> to javadoc in pom.mustache
We add the following <source> tag to the <configuration> of
maven-javadoc-plugin for most pom.mustache files that use it.
This tells javadoc which version of java the compiler used.
This fixes the following error when running Java 11:
[ERROR] Exit code: 1 - javadoc: error - The code being documented uses
modules but the packages defined in
https://docs.oracle.com/javase/8/docs/api/ are in the unnamed module
Additionally, we also add maven-compiler-plugin to jersey2/pom.mustache
to specify that the source code is Java 6/7/8.
on-behalf-of: @nqminds <info@nquiringminds.com>
* [java-jersey2-java6] Update failing old tests
Pull-request #4666 changed jersey generation, but didn't update the
test samples Tests now succeed.
on-behalf-of: @nqminds <info@nquiringminds.com>
* [java-retrofit2-play24] Fix integration-tests
Running mvn integration-test failed in
samples/client/petstore/java/retrofit2-play24
This merges pull requests #1735 and #5527 into
retrofit2-play24.
Also removes the jackson-databind-version field,
since it should always be the same as jackson-version,
and updates build.gradle/build.sbt
on-behalf-of: @nqminds <info@nquiringminds.com>
Co-authored-by: Alois Klink <alois@nquiringminds.com>
* [Core] Record content type for parameters
* [Rust Server] Support query parameters in JSON
* [Rust Server] Add test for JSON query parameter
* Update samples
* [Rust Server] Pass context to client middleware
When creating a client with middleware, pass the context.
This allows users to pass contextual data about the requests through to the
client middleware.
* Update samples
* Update CMakeLists.txt for seamless building on Windows and Linux
* Update CMakeLists.txt
Missing the line ending
* Indent if statements and use target specific directives
* Change Client CMakeLists.txt to non Debug
* Added http module draft
* Added generic enum
* Modified http lib, added config & middleware definition to ts-fetch
* Added model generation with imports
* Added auth module
* Added servers
* Added sample for typescript client
* WIP: Models & API
* Updated auth
* WIP: api modeling
* Implemented RequestFactory and Processor completely
* Implemented fetch client
* Ignore dist folder in typescript client sample
* Added middleware to fetch
* Restructured TypeScript generator
* Reverted: http library.send returns string again
* Removed TODOs
* Added pom.xml files to TypeScript PetStore client samples
* Removed tabs from TypeScriptClientCodegen
* Added ts client codegen to root pom.xml and travis
* Added server variable configuration to ts-refactor
* [TS-Refactor] Added tests for Object Serializer
* Added simple test for PetApi
* Fixed ObjectSerializer test
* Added handling for different http status codes and test for deletePet
* Removed tabs in TypeScriptClientCodegen
* Removed tabs in DefaultCodegen
* Additional tests for pet store api
* Fixed file uploads
* Made api call configuration separately settable
* Use string union for enums
* Remove tab
* Restructured module layout
* Use observables internally
* Added promise based middleware
* Made discriminator and attributeTypeMap readonly
* Configure discriminator correctly
* Set discriminator value automatically
* Fixed date-time and date handling
* Added comments & license info
* Added comments
* Ignore openapi-generator-cli/bin
* Removed accidentally created generated code
* Fixed compilation issues in TypeScriptClientCodegen
* Added typescript to docs/generators
* Updated docs
* Added gitignore and git_push
* Added jquery library
* Added pom.xmls, fixed packagejsons and hopefully webppack
* Removed tabs in TypeScriptClientCodegen
* Fixed a couple issues with pom.xml
* Ensured up to date
* Fixed missing fetch definition in TS default tests
* Updated typescript docs
* Refactor typescript merge master (#4319)
Merge master into ts-refactor
* Typescript refactor: stub rxjs (#4424)
* Remove unused supportsES6 field from codegen
* Add a new switch for RXJS
* Remove redundant npm dependency on rxjs4 types
* Fix return type of PromiseMiddleware methods
* Install webpack dependency to run jquery tests
* Update form-data to 2.5 which includes typings
* Add missing dependency on node typings
* Fix test artifact name typo
* Stub rxjs when it is not explicitly enabled
* Typescript refactor: Platform select for browser and node (#4500)
* Use string form of filename parameter
This works for the form-data library and is also compatible with the
browser FormData object.
* Add new option to select platform node or browser
When no platform is selected, a default is chosen by the framework
option and likewise the file data type option is implied by the
platform.
* Remove redundant import of node dns module
* Only use form-data library for node platform
* Generate npm package from npmName option
* Use method convertPropertyToBooleanAndWriteBack
* Generate typescript samples with ensure-up-to-date
* Removed tab from DefaultCodegen
* Readded missing change
* Mark typescript client codegen as experimental
* Removed whitespace
* [TS-Refactor] Top-level exports for fetch & jquery (#6138)
* Added top-level exports
* Updated generator README
* Updated typescript generator docs
* Allow browsers File type for files (#5521)
* Allow passing file parameters as File objects
* Add test for jquery upload
* Use HttpFile object for node platform
* Regenerate samples
This is by far the most common use case. A `File` object already
contains the name attribute. This commit allows that information to be
used directly.
When sending a `Blob`, in most browsers the `File` constructor can be
used to assign a file name. In all other browsers the alternative is
```typescript
Object.assign(data, { name: "foobar.txt" });
```
That is why we explicitely pass the name as third parameter to
`FormData.append`. This `Object.assign` method also works for `Buffer`
objects in node.
If one really does not want to touch the data object in the browser it
is possible to define another reference to the data with
```typescript
new Blob([data], { type: data.type })
```
or in node via
```typescript
Buffer.from(data)
```
* [TS-Refactor] Added options for npm version, repository, name and updated readme (#6139)
* Added options for npm version, repository, name and updated readme
* Removed `this` where not required
* Updated typescript docs
* Typescript refactor fixes (#6027)
Fixes a handful of issues identified in https://github.com/OpenAPITools/openapi-generator/issues/802#issuecomment-617262139
List of changes
* Clean: Remove redundant cliOption definition
* Remove redundant directory structure in templates
If we need to have different index.ts files for the different
frameworks, we can mostly do that in the one mustache file. In the cases
where that is not possible, we can still add a new override file later.
* Use File.separator consistently
* Only export selected api type
* Simplify promise polyfill import
The behaviour should be the same, according to the es6-promise docs.
Previously tsc would report the error:
> error TS2307: Cannot find module 'es6-promise'.
* Import HttpFile in all models
* Export server configurations
* Use undefined as default body value
The empty string is not interpreted as "no body" by the browser fetch
api and thus leads to an exception during get requests
* Improve codestyle: prefer guards to nesting
* Remove verbose debug output
This should not be commited, because every developer has very different
requirements what debug information he needs to see.
* Fix: Use cleaned model names for imports
* Fix: do not call toString on undefined
* Fix typo in doc comment
* Introduce RequestBody type and remove method check
* Support media types other than json (#6177)
List of changes:
* Add */* as fallback to accept header
* Use more sophisticated media type selection
* Handle object stringify in ObjectSerializer
* Parse response with ObejctSerializer
* Fix: Correctly extract response headers in browser
* Create HttpFile objects from responses
* Handle binary responses
* Clean up dependencies and replace isomorphic-fetch
Instead of isomorphic-fetch, which is unmaintained, we directly use
node-fetch and whatwg-fetch polyfills.
* Updated versions in ts-default/jquery and ts docs
* Replaced isSuccessCode with is2xx
* [TypeScript-Refactor] Use OAIv3 spec and fix bugs in JQuery Blob download (#6416)
* Change to OAIv3 spec for TS-Refactor
* Moved samples to oaiv3 folder
* Updated package-lock
* Update pom to use OAIv3 paths for Typescript-refactor
* Renamed ts-refactor samples & tests in pom.xmls
* Fixed compile issues in ts-refactor jquery http test
* Fixed bugs in blob handling of jquery
* [Typescript] Support http bearer authentication with token provider (#6425)
* Add http bearer security
* Update typescript to 3.9
* Fix: Use Authorization header for basic and bearer
* Allow asynchronous tokenProvider in bearer auth
* Add TS-Rewrite-Jquery tests node_modules to travis caching
* Remove NoAuthentication
* Added file to generate TS samples on Windows
* Exclude btoa in browser
* Regen samples
* Remove outdated ToDo comments
* Document and optimize `getReturnType` in TSClientCodegen
* Added option to generate objects for operation function arguments
* Upgrade typescript docs
* Updated generators
* Updated samples
* Updated docs
* Readded pom.xml
* [Typescript] Support InversifyJS (#6489)
* Add config option to enable InversifyJS
* Add pascal case lambda for mustache
* Generate a class for each auth method
* Add service identifiers and service binder helper
* Split Configuration into interface and factory
This way we don't need to import the factory everywhere to do
typechecking.
* Define minimal interface for ServerConfiguration
* Add annotations for inversify when enabled
* Always expose list of server configurations
* Add samples and defalt tests for useInversify
* Simplify sample generation script
* Fix: Add object_params arg description to help
* Fix: Properly enable inversify with bool property
* Build tests in pom instead of prepublish
Otherwise running `npm install`, when the build failed was impossible.
* Update dependencies for inversify tests
* Test basic api service resolution
* Remove Promise and Observable prefix from exports
* Fix, RxJS: Import Observable in object params api
* Add ioc service identifier for object param api
* Add hint about unimpeded development
* Simplify api service binder syntax
* Remove default tests for inversify
* Add wrapper for easy promise based http libraries
This wrapper allows defining and injecting http libraries that do not
need to know anything about observables, especially when useRxJS is not
enabled. I will employ this in the tests for InversifyJS.
Not sure if we should also use this wrapper internally.
* Add named injects for remaining auth parameters
* Directly inject promise services without RxJS
* Add tests for api service binder
* Add convenience method to bind all api services
* Fix: Rename inversify test artifact
* Run bin/utils/copy-to-website.sh
* Restore changes to CONTRIBUTING.md from PR #6489
Co-authored-by: Bodo Graumann <mail@bodograumann.de>
Co-authored-by: Esteban Gehring <esteban.gehring@bithost.ch>
* Fix a section level issue in the parameters section
* Allow to use an introduction section instead of abstract
* Allow to use table titles rather than wrapping with sections
* Allow to use HTTP method and path as operation title
* Allow to skip examples sections
* Set PHP 7.2 as minimum version
* Update PHPUnit to 8 || 9
* Set Bionic environment in Travis config
* PHPUnit 8 requires void return in static methods
* PHPUnit 8 requires void return in static methods
* Fix curl exception message test
When I run "curl http://wrong_host.zxc" output is:
curl: (6) Could not resolve host: wrong_host.zxc
Maybe this message is different across versions.
Tested curl version:
curl 7.54.0 (x86_64-apple-darwin18.0) libcurl/7.54.0 LibreSSL/2.6.5 zlib/1.2.11 nghttp2/1.24.1
* Update assertions of deprecated assertInternalType
* Migrate to expectException method of PHPUnit 8
* Fix PHPCS Fixer errors
* Replace deprecated 'assertRegExp' assertion
* Exclude PHPUnit and php-cs-fixer cache
* Refresh samples
* Set root Travis CI environment to PHP 7.2.5
* Change to 7.3 as 7.2.27 is highest preinstalled
* Fix testWrongHost test
* Bump required PHP version to 7.2
* Update rest dependencies to meet php 7.2
Latest phpunit 9 requires PHP 7.3, so I've set phpunit 8 as a fallback.
* Fix TestCase inheritance
* Add phpunit cache file to gitignore
* Put license @phpdoc into separate mustache
* Bump readme PHP version to 7.2
* Bump @phpdoc PHP version to 7.2
* Update Zend Diactoros with suggested package
* Refresh samples
* Remove broken tests
These tests will be fixed in next PR which moves Mock feature to
external repo.
* Point root Travis CI environment to PHP 7.3
* Use HttpNotImplementedException from Slim
Specialized HttpNotImplementedException from Slim makes possible to
distinguish general exceptions from case when implementation isn't
complete. This update doesn't change API call results.
* Refresh samples
* Stronger typing for http errors with Rust client. (#5609).
* Error structure can be parametrized (but is still hardcoded with `serde_json::Value` in generated code).
* Each API method has is own enum of functionnal errors.
* Fix the missing "Debug" derivation for API error enums.
* Generate models for error deserialization.
* Handle several 2xx success models.
* Expose new API objects, required to use the API (params, success, error structs/enums).
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [python] Support aliasing of API keys
* Support for aliasing and prefix
* Make more realistic usage
* Regenerate
* Document alias in generated code
* Support override of aliased keys
* Use diferent id and name for api keys
* ensure up-to-date
* Simple example without x-auth-id-alias
* regenerate docs
* Regenerate
* Provide separate spec for x-auth-id-alias
* Apply suggestions from code review
* regenerated
* Add multiple auth methods to ApiClient. ApiClient more configurable
* Fixed missing close tag for isMultipart in api.mustache
* Generated samples ./bin/kotlin-client-all.sh
* Generated samples./bin/openapi3/kotlin-client-petstore-all.sh
* Use of better way to add supporting files based on conditions
* Fixed missing check for retrofit generating auth files
* Generated samples
Co-authored-by: Alexander Karkossa <alexander.karkossa@dataport.de>
- [ ] Have you provided a full/minimal spec to reproduce the issue?
- [ ] Have you validated the input using an OpenAPI validator ([example](https://apidevtools.org/swagger-parser/online/))?
- [ ]What's the version of OpenAPI Generator used?
- [ ] Have you search for related issues/PRs?
- [ ]Have you [tested with the latest master](https://github.com/OpenAPITools/openapi-generator/wiki/FAQ#how-to-test-with-the-latest-master-of-openapi-generator) to confirm the issue still exists?
- [ ] Have you searched for related issues/PRs?
- [ ] What's the actual output vs expected output?
- [ ] [Optional] Bounty to sponsor the fix ([example](https://www.bountysource.com/issues/66123212-javascript-client-produces-a-wrong-object-for-a-string-enum-type-that-is-used-with-ref))
- [ ] [Optional] Sponsorship to speed up the bug fix or feature request ([example](https://github.com/OpenAPITools/openapi-generator/issues/6178))
<!--
Please follow the issue template below for bug reports.
@@ -45,9 +45,13 @@ please create a Gist (https://gist.github.com) or upload it somewhere else and
link it here.
-->
##### Command line used for generation
##### Generation Details
<!-- including the language, libraries and various options -->
<!--
Prefer CLI steps, including the language, libraries and various options.
Providing config-based settings allows for simpler testing across CLI and plugins.
For examples, see https://github.com/OpenAPITools/openapi-generator/tree/master/bin/configs
- [ ] Read the [contribution guidelines](https://github.com/openapitools/openapi-generator/blob/master/CONTRIBUTING.md).
- [ ] 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.
- [ ] If contributing template-only or documentation-only changes which will change sample output, [build the project](https://github.com/OpenAPITools/openapi-generator#14---build-projects) beforehand.
- [ ] Run the shell script `./bin/generate-samples.sh`to update all Petstore samples related to your fix. 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/config/java*`. For Windows users, please run the script in [Git BASH](https://gitforwindows.org/).
- [ ] Run the shell script `./bin/generate-samples.sh`to update all Petstore samples related to your fix. 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/).
- [ ] File the PR against the [correct branch](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches): `master`
- [ ] Copy the [technical committee](https://github.com/openapitools/openapi-generator/#62---openapi-generator-technical-committee) to review the pull request if your PR is targeting a particular programming language.
- If you're not using the latest master to generate API clients or server stubs, please give it another try by pulling the latest master as the issue may have already been addressed. Ref: [Getting Started](https://github.com/openapitools/openapi-generator#getting-started)
- Search the [open issue](https://github.com/openapitools/openapi-generator/issues) and [closed issue](https://github.com/openapitools/openapi-generator/issues?q=is%3Aissue+is%3Aclosed) to ensure no one else has reported something similar before.
- File an [issue ticket](https://github.com/openapitools/openapi-generator/issues/new) by providing all the required information.
- File an [issue ticket](https://github.com/openapitools/openapi-generator/issues/new) by providing all the required information. Failure to provide enough detail may result in slow response from the community.
- Test with the latest master by building the JAR locally to see if the issue has already been addressed.
- You can also make a suggestion or ask a question by opening an "issue".
@@ -85,11 +85,14 @@ For [Vendor Extensions](https://github.com/OAI/OpenAPI-Specification/blob/master
To add test cases (optional) covering the change in the code generator, please refer to [modules/openapi-generator/src/test/java/org/openapitools/codegen](https://github.com/openapitools/openapi-generator/tree/master/modules/openapi-generator/src/test/java/org/openapitools/codegen)
To test the templates, please perform the following:
- Update the Petstore sample by running the shell scripts under `bin` folder. For example, run `./bin/generate-samples.sh ./bin/configs/python*` to update the Python PetStore samples under [`samples/`](https://github.com/openapitools/openapi-generator/tree/master/samples/). For Windows users, please install [Git BASH](https://gitforwindows.org/) in order to run the scripts.
-Run the tests in the sample folder using maven `mvn integration-test -rf :<artifactId>`, e.g. open a shell in `samples/client/petstore/python`, run `mvn integration-test -rf :PythonPetstoreClientTests`. The artifactId of the project can be found in the pom.xml file. (some languages may not contain unit testing for Petstore and we're looking for contribution from the community to implement those tests)
-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)
- 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/2_0/petstore-with-fake-endpoints-models-for-testing.yaml)
- 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)
To start the CI tests, you can:
- Run `mvn verify -Psamples`, assuming you have all the required tools installed to run tests for different languages.
@@ -104,7 +107,8 @@ See [OpenAPI Tools wiki](https://github.com/OpenAPITools/openapi-generator/wiki/
- Add test case(s) to cover the change
- Document the fix in the code to make the code more readable
- Make sure test cases passed after the change (one way is to leverage https://travis-ci.org/ to run the CI tests)
- File a PR with meaningful title, description and commit messages.
- File a PR with meaningful title, description and commit messages
- Make sure the option "Allow edits from maintainers" in the PR is selected so that the maintainers can update your PRs with minor fixes, if needed.
- Recommended git settings
- `git config core.autocrlf input` to tell Git convert CRLF to LF on commit but not the other way around
- To close an issue (e.g. issue 1542) automatically after a PR is merged, use keywords "fix", "close", "resolve" in the PR description, e.g. `fix #1542`. (Ref: [closing issues using keywords](https://help.github.com/articles/closing-issues-using-keywords/))
[](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.openapitools%22%20AND%20a%3A%22openapi-generator%22) [](./LICENSE)  [](https://join.slack.com/t/openapi-generator/shared_invite/enQtNzAyNDMyOTU0OTE1LTY5ZDBiNDI5NzI5ZjQ1Y2E5OWVjMjZkYzY1ZGM2MWQ4YWFjMzcyNDY5MGI4NjQxNDBiMTlmZTc5NjY2ZTQ5MGM) [](https://twitter.com/oas_generator)
</div>
<div align="center">
[](https://join.slack.com/t/openapi-generator/shared_invite/enQtNzAyNDMyOTU0OTE1LTY5ZDBiNDI5NzI5ZjQ1Y2E5OWVjMjZkYzY1ZGM2MWQ4YWFjMzcyNDY5MGI4NjQxNDBiMTlmZTc5NjY2ZTQ5MGM)
[](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.openapitools%22%20AND%20a%3A%22openapi-generator%22)
[](https://twitter.com/oas_generator)
[](https://github.com/OpenAPITools/openapi-generator/actions?query=workflow%3A%22Check+Supported+Java+Versions%22)
</div>
@@ -45,6 +46,7 @@ If you find OpenAPI Generator useful for work, please consider asking your compa
| 5.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/5.0.0-SNAPSHOT/) | 17.06.2020 | Major release with breaking changes (no fallback) |
| 5.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/5.0.0-SNAPSHOT/) | TBD | Major release with breaking changes (no fallback) |
| 5.0.0-beta3 (upcoming beta release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/5.0.0-SNAPSHOT/) | 01.11.2020 | Major beta release with breaking changes (no fallback) |
| [5.0.0-beta2](https://github.com/OpenAPITools/openapi-generator/releases/tag/v5.0.0-beta2) (latest beta release) | 04.09.2020 | Major beta release with breaking changes (no fallback) |
| [5.0.0-beta](https://github.com/OpenAPITools/openapi-generator/releases/tag/v5.0.0-beta) (latest beta release) | 30.06.2020 | Major beta release with breaking changes (no 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.
To generate a PHP client for [petstore.yaml](https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml), please run the following
To generate a PHP client for [petstore.yaml](https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml), please run the following
(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/2_0/petstore.yaml -g php -o c:\temp\php_api_client`)
(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/4.3.1/openapi-generator-cli-4.3.1.jar)
You can also download the JAR (latest release) directly from [maven.org](https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/5.0.0-beta2/openapi-generator-cli-5.0.0-beta2.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`
@@ -424,7 +430,7 @@ To get a list of PHP specified options (which can be passed to the generator wit
## [3 - Usage](#table-of-contents)
### To generate a sample client library
You can build a client against the [Petstore API](https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml) as follows:
You can build a client against the [Petstore API](https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml) as follows:
```sh
./bin/java-petstore-okhttp-gson.sh
@@ -436,7 +442,7 @@ This script uses the default library, which is `okhttp-gson`. It will run the ge
@@ -559,6 +563,7 @@ Here is a list of community-conitributed IDE plug-ins that integrate with OpenAP
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.
@@ -665,7 +679,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- 2019/01/03 - [Calling a Swagger service from Apex using openapi-generator](https://lekkimworld.com/2019/01/03/calling-a-swagger-service-from-apex-using-openapi-generator/) by [Mikkel Flindt Heisterberg](https://lekkimworld.com)
- 2019/01/13 - [OpenAPI GeneratorでRESTful APIの定義書から色々自動生成する](https://ky-yk-d.hatenablog.com/entry/2019/01/13/234108) by [@ky_yk_d](https://twitter.com/ky_yk_d)
- 2019/01/20 - [Contract-First API Development with OpenAPI Generator and Connexion](https://medium.com/commencis/contract-first-api-development-with-openapi-generator-and-connexion-b21bbf2f9244) by [Anil Can Aydin](https://github.com/anlcnydn)
- 2019/01/30 - [Rapid Application Development With API First Approach Using Open-API Generator](https://dzone.com/articles/rapid-api-development-using-open-api-generator) by [Milan Sonkar](https://dzone.com/users/828329/milan_sonkar.html)
- 2019/01/30 - [Rapid Application Development With API First Approach Using Open-API Generator](https://dzone.com/articles/rapid-api-development-using-open-api-generator) by [Milan Sonkar](https://dzone.com/users/828329/milan_sonkar.html)
- 2019/02/02 - [平静を保ち、コードを生成せよ 〜 OpenAPI Generator誕生の背景と軌跡 〜](https://speakerdeck.com/akihito_nakano/gunmaweb34) by [中野暁人](https://github.com/ackintosh) at [Gunma.web #34 スキーマ駆動開発](https://gunmaweb.connpass.com/event/113974/)
- 2019/02/20 - [An adventure in OpenAPI V3 code generation](https://mux.com/blog/an-adventure-in-openapi-v3-api-code-generation/) by [Phil Cluff](https://mux.com/blog/author/philc/)
- 2019/02/26 - [Building API Services: A Beginner’s Guide](https://medium.com/google-cloud/building-api-services-a-beginners-guide-7274ae4c547f) by [Ratros Y.](https://medium.com/@ratrosy) in [Google Cloud Platofrm Blog](https://medium.com/google-cloud)
@@ -752,6 +766,25 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- 2020-05-18 - [Spring Boot REST with OpenAPI 3](https://dev.to/alfonzjanfrithz/spring-boot-rest-with-openapi-3-59jm) by [Alfonz Jan Frithz](https://dev.to/alfonzjanfrithz)
- 2020-05-19 - [Dead Simple APIs with Open API](https://www.youtube.com/watch?v=sIaXmR6xRAw) by [Chris Tankersley](https://github.com/dragonmantank) at [Nexmo](https://developer.nexmo.com/)
- 2020-05-22 - [TypeScript REST API Client](https://dev.to/unhurried/typescript-rest-api-client-4in3) by ["unhurried"](https://dev.to/unhurried)
- 2020-05-28 - [Building APIs with Laravel using OpenAPI](https://www.youtube.com/watch?v=xexLvQqAhiA) by [Chris Tankersley](https://github.com/dragonmantank) at [Laracon EU](https://laracon.eu/)
- 2020-06-23 - [新規サーバーアプリケーションにTypeScriptを採用してみた](https://www.cam-inc.co.jp/news/20200623) at [CAM Tech Blog](https://www.cam-inc.co.jp/news/tech-blog/)
- 2020-06-29 - [Artifact Abstract: Deployment of APIs on Android Mobile Devices and Microcontrollers](https://ieeexplore.ieee.org/document/9127353) by [Sergio Laso ; Marino Linaje ; Jose Garcia-Alonso ; Juan M. Murillo ; Javier Berrocal](https://ieeexplore.ieee.org/document/9127353/authors#authors) at [2020 IEEE International Conference on Pervasive Computing and Communications (PerCom)](https://ieeexplore.ieee.org/xpl/conhome/9125449/proceeding)
- 2020-07-07 - [5 Best API Documentation Tools](https://blog.dreamfactory.com/5-best-api-documentation-tools/) by Susanna Bouse at [DreamFactory Blog](https://blog.dreamfactory.com/)
- 2020-07-12 - [Open API 3.0の定義からgolangのサーバコードのスケルトンを作成する](https://qiita.com/professor/items/4cbd04ec084d13057bc2) by [@professor (Qiita Blog)](https://qiita.com/professor)
- 2020-07-20 - [Datadog API client libraries now available for Java and Go](https://www.datadoghq.com/blog/java-go-libraries/) by Jordan Obey at [Datadog Blog](https://www.datadoghq.com/blog)
- 2020-07-23 - [Generate Client SDK for .NET Core using Open Api](https://dev.to/no0law1/generate-client-sdk-for-net-core-using-open-api-2dgh) by [Nuno Reis](https://dev.to/no0law1)
- 2020-07-26 - [Dartのhttp_interceptorライブラリを使うと配列のクエリパラメータが消えてしまう件の応急処置](https://qiita.com/gyamoto/items/eeeff81b6770487319ed) by [@gyamoto](https://qiita.com/gyamoto)
- 2020-08-01 - [Generate Angular ReactiveForms from Swagger/OpenAPI](https://dev.to/martinmcwhorter/generate-angular-reactiveforms-from-swagger-openapi-35h9) by [Martin McWhorter](https://dev.to/martinmcwhorter)
- 2020-08-03 - [Criando Bibliotecas para APIs RESTful com OpenAPI, Swagger Editor e OpenAPI Generator](https://medium.com/@everisBrasil/criando-bibliotecas-para-apis-restful-com-openapi-swagger-editor-e-openapi-generator-75349a6420fd) by [everis Brasil (an NTT DATA Company)](https://medium.com/@everisBrasil)
- 2020-08-19 - [マイクロサービスを連携してみよう](https://thinkit.co.jp/article/17704) by [岡井 裕矢(おかい ゆうや)](https://thinkit.co.jp/author/17588), [泉 勝(いずみ まさる)](https://thinkit.co.jp/author/17705) at [Think IT(シンクイット)](https://thinkit.co.jp/)
- 2020-09-10 - [Introduction to OpenAPI with Instana](https://www.instana.com/blog/introduction-to-openapi-with-instana/) by [Cedric Ziel](https://www.instana.com/blog/author/cedricziel/) at [Instana Blog](https://www.instana.com/blog/)
- 2020-09-17 - [Generate PowerShellSDK using openapi-generator](https://medium.com/@ghufz.learn/generate-powershellsdk-using-openapi-generator-33b700891e33) by [Ghufran Zahidi](https://medium.com/@ghufz.learn)
- 2020-09-24 - [How to automate API code generation (OpenAPI/Swagger) and boost productivity - Tutorial with React Native featuring TypeScript](https://medium.com/@sceleski/how-to-automate-api-code-generation-openapi-swagger-and-boost-productivity-1176a0056d8a) by [Sanjin Celeski](https://medium.com/@sceleski)
- 2020-09-25 - [Generate OpenAPI Angular Client](https://medium.com/@pguso/generate-openapi-angular-client-8c9288e8bbd4) by [Patric](https://medium.com/@pguso)
- 2020-10-24 - [Working with Microsoft Identity - React Native Client](https://www.josephguadagno.net/2020/10/24/working-with-microsoft-identity-react-native-client) by [Joseph Guadagno](https://www.josephguadagno.net/)
- 2020-10-31 - [[B2] OpenAPI Specification으로 타입-세이프하게 API 개발하기: 희망편 VS 절망편](https://www.youtube.com/watch?v=J4JHLESAiFk) by 최태건 at [FEConf 2020](https://2020.feconf.kr/)
## [6 - About Us](#table-of-contents)
@@ -944,7 +977,7 @@ If you want to join the committee, please kindly apply by sending an email to te
echo "IMPORTANT: this script should be run by the CI (e.g. Shippable) to ensure that the 'samples/' folder is up to date."
echo "Please press CTRL+C to stop or the script will continue in 5 seconds."
sleep 5
echo ""
"${root}/bin/generate-samples.sh"
@@ -22,6 +19,13 @@ if [ $status -ne 0 ]; then
exit $status
fi
if [[ "--skip-docs" == "${1}" ]]; then
# We export here rather than modify our iterable so that:
# - the scripts can show they ran and echo meaningfully
# - the scripts can do cleanup (if necessary) when skipped
export SKIP_EXPORT_DOCS=true
fi
# Some special case generators may expect to be run as a stanalone process (e.g. modifying classpath)
# Docs should always be run, regardless of batch or operation.
declare -a always_iterate=(
@@ -49,6 +53,9 @@ if [ -n "$(git status --porcelain)" ]; then
git --no-pager diff
echo "Perform git status"
git status
echo -e "\nThis script runs in pull requests against the anticipated merge commit (as if the PR was merged now)."
echo "When you see unexpected files here, it likely means that there are newer commits in master that you need to "
echo -e "rebase or merge into your branch.\n"
echo "Please run 'bin/utils/ensure-up-to-date' locally and commit changes (UNCOMMITTED CHANGES ERROR)"
exit 1
else
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.