* 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
My understanding of the version 5 release of OpenAPI generator was that Java 7 support was dropped. Currently the Java client defaults to Java 7, Java 8 can be opted in with the `java8` config option. This removes the conditional logic in `build.gradle` around that config option and defaults to Java 8. This is to support #9151, up-to-date dependency versions rely on Java 8 and it's easier if that is the default.
To be clear, this changes behavior - previous default version was Java 7, this changes it to Java 8.
* [swift5] Fix additionalProps inner type
* [swift5] Add and use AnyCodable type instead of any
* [swift5] Use the original petstore w/fake models for testing default
* [swift5] Update swift-tools-version to 5.1
* [swift5] Update samples and docs
* [swift5] Add useClasses to use `final class` instead of `struct`
* [swift5] Always include CodingKeys enum
* [swift5] Implement model equals and hash functions
* [swift5] Encode `null` values
* [swift5] Test `useClasses` in urlsessionLibrary
* [swift5] Add a required nullable prop test case to 2_0/swift/petstore*.yaml
* [swift5] Update samples and docs
* [Kotlin][#9313] Make form params optional in Kotlin retrofit2 template.
* [Kotlin][#9313] Update sample files.
* [Kotlin] [#9313] Remove new line at the end of the mustache template
* Update Dockerfile.mustache
Using alpine instead of ubuntu for leaner Docker images.
Small fix for welcome message.
Changing default shell to `zsh` and fixing entrypoint.
* update samples
* move config, add new files
Co-authored-by: avbenavides <62693723+avbenavides@users.noreply.github.com>
* Update codegen config
* Add templates for Go Echo openapi-codegen
* Add the yaml config file!
* Add GoEchoServerCodegen.java.
This is the first iteration, it works but probably needs a lot of improvements.
* Update codegen, adds some comments.
* Update GoEchoServerCodegen.java
* Update GoEchoServerCodegen.java
* Update GoEchoServerCodegen.java and related yaml file
* Add the result of generate-samples.sh for CI purposes.
* Add the result of bin/utils/ensure-up-to-date for CI purposes.
* Update go-echo-server-petstore-new.yaml
Fix the outputdir
* Update in regard to result of ./bin/generate-samples.sh
* Update in regard to result of ./bin/generate-samples.sh
* Remove wrongly generated files
* Add correct generated files.
* Add changes regarding /bin/utils/ensure-up-to-date
* Update templates to include comments.
* Update/add result of ./bin/generate-samples.sh and ./bin/utils/export_docs_generators.sh
* add the Dockerfile and updated the README and others.
Signed-off-by: Yasuhiro ABE <yasu-abe@u-aizu.ac.jp>
* fixed the indent to follow the coding style guide.
Signed-off-by: Yasuhiro ABE <yasu-abe@u-aizu.ac.jp>
* revised.
Signed-off-by: Yasuhiro ABE <yasu-abe@u-aizu.ac.jp>
* feat(adapter): add BigDecimal kotlin support
this allows the kotlin client generator to support
BigDecimal values
Fixes#7196
* update samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [Java] [JavaJaxRS] Respect readOnly/writeOnly attribute markers
Generate jackson JsonProperty like following:
- `readOnly` is present in Spec: `@JsonProperty(value = "[name]", access = JsonProperty.Access.READ_ONLY)`
- `writeOnly` is present in Spec: `@JsonProperty(value = "[name]", access = JsonProperty.Access.WRITE_ONLY)`
Edge case: both are present -> Spec is invalid and generator cancels anyway with:
> org.openapitools.codegen.SpecValidationException: There were issues with the specification. The option can be disabled via validateSpec (Maven/Gradle) or --skip-validate-spec (CLI).
> | Error count: 1, Warning count: 1
> Errors:
> -attribute components.schemas.Example. writeOnly and readOnly are both present
* update samples
Co-authored-by: Michael Kroll <9883575+mickroll@users.noreply.github.com>
While inner enum classes from dataClass.mustache work fine, standalone enum classes lack `@JsonProperty` annotations so that Jackson uses names instead of values.
* Fix#8027 - import the auto generated supporting JSON class only when generateSupportingFiles is true
* Fix#8027 - import the auto generated supporting JSON class only when generateSupportingFiles is true
* Fix#8027 - import the auto generated supporting JSON class only when generateSupportingFiles is true
* Revert "Fix #8027 - import the auto generated supporting JSON class only when generateSupportingFiles is true"
This reverts commit 56e2b1fb
* Revert "Fix #8027 - import the auto generated supporting JSON class only when generateSupportingFiles is true"
This reverts commit 335c304d
* Fix#8027 - import the auto generated supporting JSON class only when generateSupportingFiles is true
* Fix#8027 - import the auto generated supporting JSON class only when discriminator is needed
* Fix#8027 - import the auto generated supporting JSON class only when discriminator is needed
* Fix#8027 - import the auto generated supporting JSON class only when discriminator is needed
* [Java] [Native] Add response body to exception message
* [Java] [Native] Use default base URI if baseUri param is null
* [Java] [Native] Use default base URI if baseUri param is null
* Don't include read-only properties in Python examples.
When using a schema with read-only fields as API inputs, Python
generates examples for those: this excludes them.
* Fix tests
Motivation:
In Gradle 7.0 apply @Input and @Internal on property is forbidden.
Before Gradle 7.0 applying both on the same property is confusing. According to the documentation:
* @Input: Attached to a task property to indicate that the property specifies some input value for the task.
* @Internal: Attached to a task property to indicate that the property is not to be taken into account for up-to-date checking
* Added int arrays parsing in parameters. Respect the 'required' property.
* Replaced spaces with tabs
* Generate samples with new spacing
* Removed unused import
* Merged with latest master
* fix by mapping outside of class
* tests
* regeneration and tests
* server
* INDENT
* a
* enable mapping
* Revert "server"
This reverts commit 6fc9712fb5.
* Samples regenerated
Co-authored-by: Justin Black <justin.a.black@gmail.com>
* fix: rename var
* fix: run pr checklist scripts
* fix: correct response type var name for http client
* chore: run build scripts
* test: ci and correct name?
* [dart] Improve types & imports
* don't use importMapping as it is intended for something different that is not possible in dart
* introduce imports map for dart specific features
* always import `dart:core`
* get rid of additionalReservedWords
* fix `--type-mappings` not working
* use required type mappings in samples
* no longer define additional reserved words as it is impossible to list all anyways, they can now be configured via type-mapping parameter
* simplify dio imports
* Don't use guava for map instantiation
* Update docs
In order to avoid a compiler error when using `noImplicitReturns `, we
change the mustache template to use provide a return value for the if-
and else branch.
Fixes#9174.
* Add bool query in example
* Add parseBoolParameter
* test with boolean parameter
* add endpiont for testing boolean
* remove bool parameter test
Co-authored-by: Stéphane Guillemot <gmtstephane@gmail.com>
* #7325 kotlin-spring remove exchange field from reactive delegate pattern
* #7325 remove examples from kotlin-spring reactive delegate and add missing import
* #7325 add test assertions
* fix swagger spec in test
* Change signature of deserialize() to be a Future.
* Grammar tlc for a couple of sentences.
* Make serialize() use a Future also.
* Add useCompute as a parameter to ApiClient, adjust to use compute when serializing/deserializing.
* Updated Pet Store client code.
* Ordered imports.
* Remove Flutter-specific implementation.
* Rename global functions to serialize/deserialize JSON.
* Fix return type for apiClientSerialize.
* Updated pet store client code.
* Remove remark for _deserialize.
* Make _decodeBodyBytes a Future function.
* Updated pet store client code.
* Use await when calling serialize().
* Fix a grammatical error.
* Adjust doc.
* Centralize deserialization code in one function.
* Updated pet store client code.
* Add await to serialize() in few more tests.
* Make output look better for linting and humans.
* Updated pet store code.
* Add an empty line.
* Updated pet store code.
* Call the right serializer.
* Reuse same variable.
* Updated pet store code.
* Fix a logical error when deserializing.
* Calculate growable once.
* Ignore reassignment.
* Adjust a test.
* Regenerate petstore code.
* Revert back previous test.
* Use serialize() for testing.
* Revert using serialize() for testing.
* Add removal deprecation for serialize/deserialize.
* Updated petstore code.
* Updated deprecation note.
* Adjust tests to wait for futures.
* [csharp][netcore-httpclient] Reuse HttpClient, Allow use of external HttpClient.
* Updated samples
* Removed local variables no more useful
* Added InvalidOperationException when used a configuration not supported for the constructor
* Updated samples
* [dart-dio] Update dio
* [dart-dio] Update to dio 4.0.0
* [dart-dio] Fix dependency problems with Dart 2.12 SDK during build
* Revert changes to analyzer
This only fails locally, not sure why. CI only shows a warning.
* Fix compile error after http_mock update
* Do not allow not reusing HttpClient, fix socket exhaustion issues, add Readme on how to add your own client
* Add Readme change
* Alternative version via constructor injection
* Update samples
* Update usage in ExecAsync
* Clean Constructor
* Add Warning to constructor, Update Samples
* Add warning, fix last constructor, update samples
* Change client to private in constructor injection
* Add disposable to ApiClient
* Do not dispose handler if we did not create it
* Update samples
* Add disable switch and update samples and documentation
Prepare custom auth function template to be optional one
Rename auth function to middleware
Move middleware execution below operations with context
Generate samples for go
Modify new line characters in template not to affect default one
Generate samples with modified template
Including the generated JS client library code as a git repository did not work when executing npm install. It complained about not being able to find 'babel'. Apparently when referencing a dependency from git, both prepare and prepack are executing to build the 'dist' directory, but prepack does will not include any devDependencies. Therefore we need to switch this to prepare instead.
* Update controller.mustache
Moved using directive for Microsoft.AspNetCore.Authorization outside of useSwashbuckle tag to prevent compilation errors with Authorize tag if Swashbuckle is disabled.
* Updated aspnetcore-3.x samples
* [Java][Jaxrs-Resteasy] Fixes generator devaultValues for int64/float/double
* add test
* fix tests
* trigger rerun of timeout tests
* remove SmartBear line from comments for new files
* trigger rerun of validations
* trigger rerun of validations
* trigger rerun of validations
* trigger rerun of validations
* trigger rerun of validations
* move postProcessParameter to AbstractJavaCodegen
* move postProcessParameter to AbstractJavaCodegen
Co-authored-by: zewang <zewang@deepmap.ai>
* Turns on setting model.additionalProperties for composed schemas when supportsAdditionalPropertiesWithComposedSchema is true, tests updated for v2 and v3 specs
* Comment change
* Samples updated
* Turns on supportsAdditionalPropertiesWithComposedSchema for CsharpNetCoreClient, samples regenerated
* Changes commented out, samples regnerated
* Refactors the update in setAddProps to not impact the charp client
* [dart-dio] Remove old Dart 1.x templates
* [dart-dio] Initial version of a next-gen Dart Dio generator
* Fix a couple readme links and examples
* Fix import in testcase
* Add integration tests to master POM
* Run initial dart format and improve some base formatting
* Generate docs
* Use integer matchers in test for content-length
* Separate more built_value specific files
* Fix mustache partial path
* Update pubspec template
* Fix tests after mock lib updates
* Generate with new built_value pre-release
This solves the problem of not being able to serialize null.
* Update built_value dependency
* Regenerate after merge
* Regenerate tests
* Fix missing byte response cast
* Update dio to 4.0.0-prev1
* Run format
* Ignore unused imports in inheritance classes
* Update mock test library
* Update docs
* Make a couple variables final
* Update and freeze dio dependency
* Update generator doc
* Add a new option to post processes all dart output at once
This is much faster than individual files. The committed samples should be formatted since Dart is very opinionated and it makes diffs in PRs much easier to read.
Due to this, we also need to format in CI, otherwise there is a git diff.
* Test some CI stuff
* Fix Request Body File Upload for RestSharp and csharp-netcore
* Update Samples
* Fix missing using and update samples
* Enable upload test
* Fix form data and file upload handling for httpclient, update samples
* [dart] Generic docs update and fixes
* none of the dart generators supports XML
* jaguar is no longer maintained
* dart and dart-dio support bearer token
* none of the dart generators supports composition atm.
* [dart-dio] Supports customization of authorizations and userAgent
* Remove deprecation of dart-jaguar for now
* [cpp-ue4] Fixed enum values not being quoted. I'm not sure when this started breaking.
* [cpp-ue4] UE 4.26 Compatibility: Replaced TSharedRef<IHttpRequest by FHttpRequestRef for better portability
* [cpp-ue4] Improved DateTime parsing
* [cpp-ue4] Made HttpFileInput constructors explicit
* [cpp-ue4] Added the possibility to retry requests easily with AsyncRetry method on the response and SetAutoRetryCount on the request
WIP auto retry
[cpp-ue4] Adds support for instant retry
* [cpp-ue4] Using TaskGraph instead of TaskGraphMainThread for async retries
* update samples
* remove trailing spaces
Co-authored-by: Jean-Noel Gourdol <jngourdol@stormancer.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Upgrade jackson version used in the Kotlin client #8688
* Generated project
* Remove spaces before import
* Add generated sample from previous commit
* Replace usage of QVariant with a more intuitive wrapper which also supports non standard types/classes
* Fix crash due to usage of object instead of reference
* [jaxrs-spec] Add missing @NotNull annotation for required body parameters when using BeanValidation.
* [jaxrs-cxf] Add missing @NotNull annotation for required body parameters when using BeanValidation (#4280).
* [jaxrs-cxf] Add @NotNull annotation only for body parameters that are required and not nullable.
* [jaxrs-spec] Add @NotNull annotation only for body parameters that are required and not nullable.
* [jaxrs-cxf] Updated sample files after adding missing @NotNull annotation for required body parameters when using BeanValidation.
* [jaxrs-spec] Updated sample files after adding missing @NotNull annotation for required body parameters when using BeanValidation.
* Add additional reserved words list for parameter name in PowerShell
Signed-off-by: SimeonGerginov <simeongerginov1@gmail.com>
* Add missing check for parameter name starting with number
Signed-off-by: SimeonGerginov <simeongerginov1@gmail.com>
* Fix api-client deserialization for json_serializable
* Use raw string for url path
* Use Set/List.of
* Use returnTypeIsPrimitive in template
* Regenerate all templates
* Fix casting map to Iterable of things
* Add json_serializable to maven modules
* Run build_runner before pub run test
* Return future of type for strong linter mode
The `8.x` versions are no longer compatible with the current generated code. An update is also not possible without breaking change and null-safety support.
* Fix not processing enums in cpp-pistache-server
Defining a reusable enum as a component schema results in an empty
class. Following changes are made:
- activate 'postProcessModelsEnum' in 'AbstractCppCodegen'
- modify model templates for the 'cpp-pistache-server' project
As 'postProcessModelsEnum' is now available in the 'AbstactCppCodegen'
the 'enumVars' variables are now available in mustache templates for all
cpp based code generators.
As the 'AbstractCppCodegen' was touched all cpp based
samples were updated.
* fixes encountered on real world
* PR fixes
Co-authored-by: mfyuce <mfyuce@netas.com.tr>
* Add a space between table title and the line above it to resolve issues when translating markdown to asciidoc
* Regenerate Samples
Co-authored-by: Tyler Ballast <tyler.ballast@reportix.com>
Co-authored-by: tballast <tyler.ballast@gmail.com>
* Changed virtualan version from 1.0.0 to 2.1.7. Update readme.md and description in springboot generator.
* Updated virtualan link in spring.md.
* update samples
Co-authored-by: networkinss <oliver.glas@inss.ch>
Co-authored-by: William Cheng <wing328hk@gmail.com>
* update csharp-netcore dep to newer versions
* restore Org.OpenAPITools.Test.csproj
* rollback CompareNETObjects version
* rollback .net test sdk
* use 15.9.2 for test
* rollback sdk test version
* Revert "rollback CompareNETObjects version"
This reverts commit c03c00facb.
* Revert "Revert "rollback CompareNETObjects version""
This reverts commit acc66ae4f9.
* DeepObject also for required parameters
* Fix NullPointerException on inline deepObject such as a Dictionary<string, string>
* Add deepObject in ParameterToMultiMap for deepObjects without explicit parameters
* Add some context to TODOs
* ParameterToMultiMap fixed in CSharp template for OAS 3 Dicts, taking deepObject into account
* Remove added whitespace
* Update samples
* Remove redundant operations
* Use logger correctly with object placeholders
* static compile of frequently used pattern
compile pattern ahead of time to reduce object creation and optimize
method
* Fix typo in method name
* [dart][dart-dio] Improve parameterToString handling
* add tests
* not sure this is complete but it is better than before and can serve as a baseline with the test cases
* Add a map parameter to FormData test
* Rename method to clarify what it actually does
* Couple more tests
* add api client mustache for http client
* clean up api client template for restsharp
* test c# httpclient in appveyor
* remove apiclient.cs
* regenerate apiclient.cs
* set library for http client
* remove Libraries
* use libraries folder
* Add switch to disable RestSharp
* Introduce CLI Option for webRequestLibrary
* Fix missing brace
* Remove restsharp references
* HttpClient added
* WebRequest NewRequest functionality added
* WebRequest added to CLIOptions
* Add custom HttpMethod only for Restsharp.
* Add WebRequestPathBuilder.mustache
* HttpClient NewRequest
* Add using Statement to WebRequestPathBuilder.mustache
* Adjusts retry configuration for HttpClient
* Reuse JsonDecoder
* Make reusing the client a separate option
* Save cookies in request
* Implement more methods for HttpClient
* Small fixes
* Fix post content
* Add new sample config
* Update existing samples
* Add new sample
* Add new property supportsRetry
* Use new property to exclude RetryConfiguration
* Exclude Polly on non supporting Retry
* Update sample and documentation
* Create HttpMethod Patch for netstandard 2.0 compatibility
* Fix query parameter generation
* Switch to library settings
* Allow httpclient reuse (experimental)
* Remove webrequest from template as its not used right now
* Make nullable fix on all vars in Go
This applies the Nullable change to all variables on the model, instead
of just the ones in vars.
* Add sample showing the issue
When a GET/PUT/POST operations includes queryParams, then the feign generator wrongly generates the Basename instead of the paramName. That leads to
a java.illegalstateException ("Body parameters cannot be used with form parameters") in Feign Contract when attempting to invoke the Method.
i.e: a generated feign client:
public interface PersonClientTest extends RestApi {
@RequestLine("GET /personen/{kundenNummer}?mitUnterstruktur={mitUnterstruktur}")
@Headers({
"Accept: application/json",
"If-None-Match: {ifNoneMatch}"
})
PersonOut getPersonByKundenNummer(@Param(value="kundenNummer", expander=ParamExpander.class) String kundenNummer, @Param(value="If-None-Match", expander=ParamExpander.class) String ifNoneMatch, @Param(value="mitUnterstruktur", expander=ParamExpander.class) Boolean mitUnterstruktur);
}
in the headers:
"If-None-Match: {ifNoneMatch}"
but in the method:
@Param(value="If-None-Match", expander=ParamExpander.class) String ifNoneMatch
the value should be ifNoneMatch instead of "If-None-Match"
* [dart][dart-dio] Refactor API template
* first construct a `RequestOptions` instance with all parameters etc. inline
* then construct and serialize the body data
* then send the request and await the response
* then deserialize the response
* always use the `specifiedType` for built_value (de)serialization instead of a mix of ways (this does the same as finding the serializer directly)
* use indent of 2 spaces (as per Dart convention)
* prefix all local variables to prevent name clashes with parameters
* Add tests that (de)serialize collections and add API key header
* Add Dart configuration flag to set new generator
* Change templates to add json_serializable generator
* Fix dart tests
* Add custom serialization for standard generator
* this change opens us a way to allow adding more than 2 generators
* Add sample project for json_serializer
* Use basename for json field name
* Update samples with basename as json key
* Update dart generator docs
* Create AbstractDartCodegen class
* Update docs, dart-dio and dart-jaguar dont get json_serializable yet
* Deduplicate method calls
* Dix dart-dio generation
* Revert formatting change in dart mustache
* Fix formatting changes again
* Improve dart serialization documentation
specify default serializer
* Better name for cli option
* Rename default dart generator to 'native'
* Another attempt to reduce whitespace noise
* Fix api-client and api-helper
* Rename default serialization mode to include word serialization
* Remove trailing whitespace in enums
* [dart][dart-dio] Remove manual json encode/decode calls in API classes
Dio automatically adds a default transformer which does call `json.encode` and `json.decode` when the content-type is `application/json`. When the content-type is different, then it is up to the consumer to configure the Dio instance correctly to support custom content-types.
Also tests!!!
* [dart] Constraint test library to < 1.16.0 as it requires Dart 2.12.0
* Fix more constraint problems for the new test project
* use Files.createTempFile to address security concerns
* Update modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/service/Generator.java
Co-authored-by: Jonathan Leitschuh <Jlleitschuh@wpi.edu>
Co-authored-by: Jonathan Leitschuh <Jlleitschuh@wpi.edu>
* [typescript-axios] Support array query arguments
typescript-axios does not correctly output query arguments when you use `explode: true` for a parameter.
fixes#7966fixes#7973
* Fix mistake in query parameter setting
* [dart-dio] Disable nullable fields by default
This is not in line with the OAS and will prevent future Dart nullabilty features (NNBD) from being useful as all types would be optional.
Users can still opt-in for this.
* [dart-dio] Properties are nullable when not required AND not nullable
* [dart][dart-dio] Support nullable/required fields
* properties in built_value need to be nullable when they are nullable in OAS or when they are not required in OAS
* built_value does not support serializing `null` values by default as it is based on a serialization format based on iterables/lists and not maps
* dart-dio uses the built_value json plugin to convert the built_value format to regular json
* by generating a custom serializer for each class we can add support for serializing `null` values if the property is required AND nullable in OAS
* this is a breaking change as not all properties in the models are nullable by default anymore
* Implement required/nullable for dart
* Changes for set types and enum names after rebase
* Add some comments and fix built_value fields with default being nullable
* More rebase changes and regenerate docs
* [dart][dart-dio] Improve prefixing of inner enums with classname
* prevent further name conflicts by correctly naming the enum, until now there could potentially occur conflicts e.g. 2x `MapTestInnerEnum` by renaming the `items` child property
* correctly set `enumName` to match `datatypeWithEnum`
* Unrelated test regeneration
* [REQ] Added enumClassPrefix option to go-gin-server. Used same approach as #7008 (go-server)
modified: docs/generators/go-gin-server.md
modified: modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoGinServerCodegen.java
modified: modules/openapi-generator/src/main/resources/go-gin-server/model.mustache
* Fixed CI error in docs
* [typescript-fetch] handle uniqueItems correctly in model and api
uniqueItems produces Set instead of Array as type, but the corresponding code did not treat Set correctly
use `Array.from` and `new Set` to convert from Set to Array and vice versa, if uniqueItems is true.
related to https://github.com/OpenAPITools/openapi-generator/issues/8258, but only fixes typescript-fetch
* [typescript-fetch] update samples
* Fix#8027 - import the auto generated supporting JSON class only when generateSupportingFiles is true
* Fix#8027 - import the auto generated supporting JSON class only when generateSupportingFiles is true
* Fix#8027 - import the auto generated supporting JSON class only when generateSupportingFiles is true
* Revert "Fix #8027 - import the auto generated supporting JSON class only when generateSupportingFiles is true"
This reverts commit 56e2b1fb
* Revert "Fix #8027 - import the auto generated supporting JSON class only when generateSupportingFiles is true"
This reverts commit 335c304d
* Fix#8027 - import the auto generated supporting JSON class only when generateSupportingFiles is true
* Fix#8027 - import the auto generated supporting JSON class only when discriminator is needed
* Fix#8027 - import the auto generated supporting JSON class only when discriminator is needed
* Fix#8027 - import the auto generated supporting JSON class only when discriminator is needed
* Fixed typescript bug in models.mustache with for...in on an empty array.
When an empty array comes in, the current for...in syntax results in creating an empty object being created and added to the array. This is the output from receiving an empty array that gets deserialized, resulting in an object with undefined values.
Switching to a for i < array.length loop fixes this issue.
```
body: [
GroupCustomResource {
apiVersion: undefined,
kind: undefined,
spec: undefined,
metadata: undefined,
status: undefined,
'': undefined
}
]
```
* Fixed typescript deserialization bug that was adding non-existent entries to objects during deserialization.
When an object comes in, the current for...in syntax results in adding an undefined key/value pair to each nested object, with key being empty string and value being undefined. This is the output from receiving an object that gets deserialized.
Adding a check to see if attributeType.name exists before adding it to the deserialized object fixes this.
```
res.body of listGroup for saved group is [
GroupCustomResource {
apiVersion: 'v1',
kind: 'Group',
spec: GroupSpec {
name: 'TestDeploymentGroup67264',
tenancyId: 'tenancy',
description: 'TestGroup description',
'': undefined
},
metadata: { additionalProp1: {}, spectra: [Object] },
status: undefined,
'': undefined
}
]
```
* Fixed for array for loop in serialize and added truth check for deserialize
* Made for...in loop a for loop; gets rid of the need for the truth check
* Fixed serialze/deserialize for loops for arrays
Co-authored-by: Gary Blaser <gary.blaser@oracle.com>
* updated the regex used in the String.replace for parseDate() to more precisely target ISO-8601
* added the replace function call to the ES6 mustache file
AutoRefactor cleanup 'AnnotationCleanUp' applied by erefactor:
Simplifies annotation uses:
- empty parentheses will be removed from annotations,
- single members named "value" will be removed from annotations and
only the value will be left.
For AutoRefactor see https://github.com/JnRouvignac/AutoRefactor
For erefactor see https://github.com/cal101/erefactor
- add missing 'use Swagger.Streams;' clause
- add Style_Checks pragma to fix style compilation warnings in generated Ada code
- fix spurious spaces in licence headers that cause Ada style compilation warning
- update the default GNAT project config
* [dart][dart-dio] Add support for set types
* copy `uniqueItems` usage from 2.0 fake spec to `3.0`
* add support for sets in parameters, responses and properties
* Regenerate all other samples
* Fix broken tests due to invalid cast
* Update documentation
* Regenerate samples
* update samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [rust-server] Add support for Bearer auth
- Added bearer auth to the security features for rust server
- Supplemented the basic auth condition in the context template to handled basic auth and bearer auth separately.
- Repurpose an exising sample to confirm the code generation works as expected.
* Update docs
* Update readme for bearer tokens
* [Rust Server] Support Cargo Metadata Configuration
This adds support for publish, repository, documentation and homepage metadata.
* [Rust Server] Test Cargo Metadata configuration
* Add CORS support to python-flask server generator
* Documentation update and CORS support for other generators using the same base class
* Trivial sample changes
* Removes nulltype from python, updates samples
* Removes nulltype from the python requirements
* Removes nulltype import in models, moves requiredVars to optionalVars when approprieate
* Fixed defaultValue escaping in Vert.x server template
* Ran all java/vertx scripts in bin folder (java-vertx-*, java-petstore-vertx) and committed result.
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Spring codegen - fix equals and hashCode methods for byte array and binary
- they should be compared using Arrays.equals
- they're hash code generated using Arrays.hashCode
* Corrected checkstyle issues
* Revert changes for binary types
* Remove weak self to fix too early deallocations
* Update samples
* Remove podfile lock
* Run pod install on samples/client/test/swift5/default/TestClientApp/
* Revert "Run pod install on samples/client/test/swift5/default/TestClientApp/"
This reverts commit 5ad327c707.
Collection related refactorings:
- replaces for/foreach loops to use Collections.addAll() where
possible,
- replaces for/foreach loops to use Collection.addAll() where possible,
- replaces for/foreach loops to use Collection.removeAll() where
possible.
AddAllRatherThanLoopCleanUp from AutoRefactor applied by erefactor.
For AutoRefactor see https://github.com/JnRouvignac/AutoRefactor .
* removed depricated functions
* using preprocessor variable. Updated samples
* added version check for random functions
* added another version check to Json functions
* Update modules/openapi-generator/src/main/resources/cpp-qt5-client/HttpFileElement.cpp.mustache
Co-authored-by: Martin Delille <martin@delille.org>
* Update modules/openapi-generator/src/main/resources/cpp-qt5-client/HttpFileElement.cpp.mustache
Co-authored-by: Martin Delille <martin@delille.org>
* Update modules/openapi-generator/src/main/resources/cpp-qt5-client/HttpRequest.cpp.mustache
Co-authored-by: Martin Delille <martin@delille.org>
* Update modules/openapi-generator/src/main/resources/cpp-qt5-client/HttpRequest.cpp.mustache
Co-authored-by: Martin Delille <martin@delille.org>
* Update modules/openapi-generator/src/main/resources/cpp-qt5-client/HttpRequest.cpp.mustache
Co-authored-by: Martin Delille <martin@delille.org>
* Update modules/openapi-generator/src/main/resources/cpp-qt5-client/HttpRequest.h.mustache
Co-authored-by: Martin Delille <martin@delille.org>
* Apply suggestions from code review
Changed version check to Qt 5.15 to remove the warning of the deprecated functions when compiling with Qt 5.15
Co-authored-by: Martin Delille <martin@delille.org>
Co-authored-by: Martin Delille <martin@delille.org>
* remove trailing slash
* update sample app
* added tests
* bug fix
* Adds test in DefaultGeneratorTest
* Reverts python files
* Does not modify a value of /
* Stops skipping / use case
* update samples
Co-authored-by: Justin Black <justin.a.black@gmail.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [Core] Inline Model Resolution of Enums
Enums need to be named types, so handle them as part of inline model resolution
* [Rust Server] Handle models starting with a number correctly
* [Rust Server] Additional trace
* [Rust Server] Add support for oneOf/anyOf
* [Rust Server] Update supported features
* [Rust Server] General template tidy up
* [Rust Server] Implement IntoHeaderValue for wrapped data types
* [Rust Server] Convert from string correctly
* [Rust Server] Test for anyOf/oneOf
* Update samples
* Update docs
* Update the bean validation to use version 2.0. For a reason I don't know, it was not working anymore with version 1.
* better format
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Update min sdks when Combine is used
* Update samples
* Revert "Update min sdks when Combine is used"
This reverts commit e88b8abaa7.
* Wrap import combine with canImport directive
* Update samples
* Wrap functions using Combine with canImport because of compiler error on archive
* Update samples
* Remove unnecessary newline and update samles
* Implement unit tests for feign client
Implement tests
Migrate to junit 5
* Default feign client does not support PATCH verb
Default feign client does not support PATCH verb
* Remove test for GET endpoint with request body
* Configure junit in gradle build
* Configure logback for unit tests
* Add missing dependencies to sbt
* Fix gradle dependency
* Add logback to gradle unit test
* Regenerate samples
* Make junit test classes package private
* Make junit test classes package private
* Update samples
* Organize imports
* Organize imports
* [dart-dio] Improve form param handling, respect required flag
* simplify template
* respect required flag (only null check when not rquired)
* minor formatting
* Add additional nullable check
* Adds hasValidation to IJsonSchemaValidationProperties
* Adds model validation examples for maxItems, minItems, minProperties, maxProperties, minLength, maxLength, multipleOf
* Adds schemas with pattern validation
* Adds minimum example schemas
* Adds maximum example schemas
* Adds ArrayWithUniqueItems
* Adds exclusiveMinimum schemas
* Adds exclusiveMaximum examples
* adds testModelGetHasValidation
* Adds testPropertyGetHasValidation
* Adds testQueryParametersGetHasValidation
* Uncomments out query parameters
* Adds testHeaderParametersGetHasValidation
* Adds testCookieParametersGetHasValidation
* Adds length assertions for properties and marameters
* Adds testBodyAndResponseGetHasValidation
* Improves validation setting
* Only sets exclusiveMinimum when minimum is set, only set exclusiveMaximum when maximum is set
* Adds fix for rust
* Fixes min and max setting for integers
* Regenerates python samples
* Updates code so python sample does not change
* Update gradle plugin version to 4.3.1
1. Updated gradle plugin version to 4.3.1 (to keep in sync with maven sample)
2. Removed modelFilesConstrainedTo in the gradle sample to generate code for dummies who are pasting and running.
* Update version to 5.0.0
* Added Javadoc + meta-data about request/response + abstract class.
* Added one more method to set base path.
* Updated Javadoc for each endpoint.
* Shorten the method name displayed in Javadoc.
* Fix README grammar.
* Separate imports based on type.
* Put operations into their own interface class.
* Update Javadoc.
* Adjust Mustache template to support Java 1.5.
* Add import for HttpServerExchange, suppress warning about using a Lambda.
* Remove @Override from a mgetStatefulHandler().
* Regenrate the samples.
* - Replace apache oltu with scribejava
- Implement the following authentication methods
- ApiKey header
- HTTP basic authentication
- Oauth client credentials flow
- Oauth Implicit flow
- Oauth Pasword (deprecated)
* Create class hierarchy for Oauth flows implementation
* Add instructions of how to use the ApiClient to Readme.md
* Update samples
* Remove support for java 6 and 7
* Remove java 6 and 7 support from gradle
* Format pom.xml
* Remove empty line
* Update samples
* Remove oltu dependency from build.gradle and build.sbt.
Replace oltu with ScribeJava
Update samples
* Update samples
* Update samples
* Adds isNull to all schema classes
* Adds null model and property samples, adds models test of isNull
* Adds isNull tests for parameter and response also
* Reverts version file
* Fix#8395 - changed function name to basic
* Fix#8395 - changed function name to basic
* Fix#8395 - removed test.yaml file
Co-authored-by: sergey <sterentyev@ebay.com>
1. unable to use --global-property models="User,Pet" as this creates only User model.
2. to solve the issue, instead of "," separator used ":" separator
3. made some changes with that
* only generate actually used serializers (anything used in body or response)
* generate previously missing serializers for collection types
* improve formatting
* create enum documentation in model
* add newline to fix layout when a markdown table follows a markdown list
* avoid escaping of attributes to make sure documentation is displayed as in the spec
The rule to split a capitalized word with plural didn't work properly,
leading to weird name generation in a few languages. This is an attempt
at fixing it.
* feat: add providedIn for Angular 9+
Adding new option, providedIn, for generator typescript-angular
Keep providedInRoot for backward compatibility but mark as deprecated
for Angular 9+
fix: #6432
* doc: providedIn
infos about providedIn
Mark providedInRoot as deprecated
* doc: run generate-samples for typescript
using typescript-angular-v9-provided-in-any.yaml
* refactor: runned ensure-up-to-date locally
* refactor: api.module.mustache rely on providedIn too
* doc: re-generate samples
Added a Set<String> in toExampleValueRecursive() to keep track of which models we have
generated to avoid an infinite recursion for recursive models. An example of a recursive
model would be a GeoJson GeometryCollection.
Co-authored-by: Frank Levine <frank.levine@blacklynx.tech>
* empty arrays are now correctly generated
* default arrays with values are empty
* date/dateTime is now always null in order to prevent compile errors
* [dart-dio] Enable strong-mode and strict types
This will make it easier to eventually transition to NNBD. Also fix some formatting things.
* [dart-dio] Add implicit-casts: false to analysis options
* [dart-dio] Add dartanalyzer to integration tests
* raise minimum Dart version to 2.6 (to support spread collection)
* add header to all files for language version
* fix some missing imports that can be fixed (some remain due to missing inheritance support)
* [swift5] fix issue with form data with null file
* [swift5] fix issue with form data with null file on alamofire implementation
* [swift5] update sample projects
* [swift5] fix issue with form data with null file on alamofire implementation
* [swift5] add support for form url enconded in URLSession
* [swift5] add support for form url enconded in Alamofire
* [swift] improve code formatting
* [swift] improve code formatting
* [swift] dont defaut to application/json
* [Swift 5] deprecated retry hook since its no longer needed
* [Swift 5] deprecated retry hook since its no longer needed
* [swift] fix generator code formatting
* ran `mvn -N io.takari:maven:0.7.7:wrapper`
* this fixes colored output not working in zsh/MacOs/BigSur, not exactly sure what caused it not to work anymore
* 7141: filter out problem+json mime type from JSON mime types fast tracked into the Accept header (resttemplate)
* 7141: ran ensure-up-to-date
* 7141: minimize changes with master (keep using isJsonMime for MediaType)
* [swift] create a sample of bearer token authentication with URLSession
* [swift] create a sample of bearer token authentication with URLSession
* [swift] create a sample of bearer token authentication with URLSession
* [swift] create a sample of bearer token authentication with URLSession
* [swift] create a sample of bearer token authentication with Alamofire
* [swift] create a sample of bearer token authentication with Alamofire
Added a Set<String> in toExampleValueRecursive() to keep track of which models we have
generated to avoid an infinite recursion for recursive models. An example of a recursive
model would be a GeoJson GeometryCollection.
Co-authored-by: Frank Levine <frank.levine@blacklynx.tech>
* rxgen version update
* rgxgen version 1.2
* update rgxgen version to 1.3
* remove start end slash in patterns
* Remove debug logs
* fix logic for removal of backslash
* fix logic for forward-slash removal
* fix logic for removing unwanted characters in regex
* add test for example value for string properties
* improvise regex validation logic for example generation
* complicate regex examples
* regex pattern correction
Co-authored-by: aani <aani>
* test aspnetcore server in appveyor
* update samples
* to break the build
* Revert "to break the build"
This reverts commit ab23062815.
* ignore csproj. update samples
* first Commit parameterzied Server support
* fixed serverconfig classes
* Defautl constructor f. Config, fixed regex replace
* Polosihed Templates, Added MultiServer support
* Update Readme. Fixed MultiServer. Fixed def. Value
* Passing global Server to mustache. Small fixes
* Updated samples, fixed mustache for multi server
* added prefixes, removed unused imports
* added newly generated samples
* missing vendorExtension in mustache. Update smaple
* update doc
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Fixed the query string for HttpSigning core vs dotnet47
* updated the sample
* replace the tab with space
* update samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* test: enable typescript-axios integration test
* chore: update old dep & devDep
* refactor: use axios installed in test target
* chore(travisCI): update node version from v8.12.0 to v12.20.0
* [dart-dio] Generate default value builders
* return `null` when there is no default value instead of `"null"`
* use built_value's `_initializeBuilder` to set default values
* [dart-dio] Fix default value formatting in model doc
* [dart][dart-dio] Prevent name clashes with existing dart types
Can not use dart import aliases for now as this is not supported by built_value. This means we need to add potentially clashing names/classes to an `additionalReservedWords` exclusion list. Starting with a basic list of some http/io classes.
Correctly use `importMapping` and `defaultIncludes` this time around. Improve reserved word checking.
This now successfully generates `ModelList`, `ModelFile` and `ModelClient` models which previously were not generated at all or were wrong types.
* Address review comment
* Update generator docs
* Make header params with dynamic types
Otherwise this will generate code which is not compile-able. Like this:
```dart
Future<Response<List<StockItemProjectionDirect>>>getAllStockItems(Store storeId,{ int xXChunkNumber,int xXChunkSize,StockItemRequestFilterDto stockItemRequestFilterDto,CancelToken cancelToken, Map<String, String> headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async {
String _path = "/api/store/{storeId}/stock".replaceAll("{" r'storeId' "}", storeId.toString());
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
dynamic bodyData;
headerParams[r'XX-Chunk-Number'] = xXChunkNumber;
headerParams[r'XX-Chunk-Size'] = xXChunkSize;
```
See how the func recieves int argument which then assignes into a string... last 2 lines
* FIX: Dynamic header and sync with upstream
* DART-DIO new samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Use system CA by default and remove certifi
See https://github.com/OpenAPITools/openapi-generator/issues/6506
* Use system CA by default in asyncio client
* Update README_onlypackage.mustache
* Result of ./bin/generate-samples.sh
* Add ssl_ca_cert argument for Configuration
* Result of ./bin/generate-samples.sh
* Remove certifi, use system CA by default
* Include description directly in python docstrings
mustache escaping the description make them render weirdly, including
sometimes unsupported characters in python.
* More parameters
* always add trailing commas in arrays and break each line
* make variables final
* improve API formatting (mainly leading spaces)
* remove empty lines and whitespaces
* fix formatting of datatype and description and docs
* consistently use single quotation marks (dart already does this)
* correctly generate enums from `mostInnerItems`
* use `datatypeWithEnum` which should always be he correct type
* dart generators prefix inner enums with the classname of the containing class, ensure datatypeWithEnum always matches
* only use `FormData.fromMap()` for multipart content, `FormData` does not work with `x-www-form-urlencoded`
* use a basic map for `x-www-form-urlencoded` content
* fix formatting
* [dart] Always use the correct enum data type
* use raw strings for enum string values
* [dart-dio] Use raw strings for built_value enums
`@BuiltValueEnumConst` does some wierd string handling in the generated code `r'\$'` becomes `'$'`. This is different compared to the wireName in `@BuiltValueField`
* [dart] Properly escape param/var names that clash with Dart types
* [dart] Add tests for var/enumVar names
* note: public and private are no keywords in Dart
* some tests are still wrong, some are commented out
* Fix typo
* [dart] Improve variable name escaping
* add more tests
* [dart] Fix operationId naming
* [dart] Fix upper case var name with leading underscore
* [dart] Correctly support model prefix/suffix
* [dart] Support spaces in property names
* Call super for empty operationId
* [dart] Fix and improve enumVar naming/generation
* use same handling for all 3 generators
* allow `updateEnumVarsWithExtensions` to have access to the data type
* improve `x-enum-values` handling and add supprt for other enum vendor extensions
* remove duplicate and outdated tests from `DartDioModelTest`
* add more tests to `DartModelTest`
* no longer force lowercase enums for plain dart generator (breaking)
* this change also removes the trailing underscore from plain dart generator (breaking)
* [dart-dio] Fix wrong escaped serializer names
* [dart-dio] Prevent enum name collisions in inlined enums
Prefix the private built_value instances with the enum class name. Prevents clashes when multiple inline enums contain the same value - for example `EnumTest`. No breaking changes here as all the changed fields/references are private and automatically re-generated with built_value.
* Updated all C# templates ToJson method not to conflict reference with model properties.
* update samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [dart] Configure and use import mapping
This prevents models from being generated which would clash with exisiting dart types, e.g. List.
* [dart] Fix decimal format not supported
* [dart-dio] Remove redundant modelToIgnore & ignore dart:core import
* modelToIgnore is now handled via importMappings the same way other generators do this
* choose not to import dart:core as this is available by default
* [dart-dio] EnumClass is a reserved word in built_value
* Review changes
* Fix regenerate docs
* Fixes issue 8014, _check_type flag not being honored.
Updated model_utils.mustache to pass the check_type flag into attempt_convert_item(). Failure to do so
results in type validation errors occurring when the user has specifically requested that they be disabled.
* regenerated samples
Co-authored-by: Frank Levine <frank.levine@blacklynx.tech>
* Remove redundant encoding definitions
UTF-8 is already the default encoding in Python 3.
* Remove Python3.4 related requirements
* Remove dead Python version 3.5
* Add Python 3.9 to CI and test configs
* Update petstore example
* encode object in json and add content-type:application/json for multipart/form-data
fix issue https://github.com/OpenAPITools/openapi-generator/issues/8068
* update samples by ./bin/generate-samples.sh
* non-ascii chars supported in encoding object to json, and add "content-type:application/json; charset=utf-8"
* update samples again, by ./bin/generate-samples.sh
* update comment(docstring) in parameters_to_multipart according to the discussion in PR review.
* fix default value in parameters_to_multipart function as described in PR review comment.
* update samples again, by ./bin/generate-samples.sh
* [dart] Cleanup and regnerate old/wrong tests and docs
* docs path seems to be doc now in all dart generators
* generated tests are very old and use wrong classes
* [dart-dio] Improve formatting
* [dart][dart-dio] Restructure tests to same layout
* remove duplicate/old openapi sample for which there is no generation config
* generate to `petstore_client_lib` for both generators
* run generated tests as integration tests for dart2 even if empty - this makes it easier to find compile errors
* [dart] Improve gitignore handling for Dart generators
* globally ignore all dart related files that should not be commited
* remove old ignores that are no longer valid
* [dart][dart-dio] Add OAS3 generation and integration tests
Dart2 doesn't compile, needs fixes.
* [dart] Do not attempt to deserialize binary content from JSON fields
Not sure if that case is ever relevant but for now there doesn't seem to be a better option.
* [dart] Fix integration tests for OAS3 petstore
Some POST operations now return 200 with content.
* [dart] Generate Petstore Fake API but don't add to integration tests yet
Explicitly not adding the new integration tests to the master POM. They do not work but having them allows for quickly iterating on open issues without breaking existing basic OAS2/OAS3 petstore examples. Instead they should be run manually until everything is fixed.
* [typescript-axios] Sets 'isCollectionFormatMulti' to true on file uploads.
Fixes#8104
* Safely checks if dateFormat is "binary" #8105
Co-authored-by: Bruno Matissek <bruno.matissek@gmail.com>
* feat(config): pull the basePath from config if the basePath doesn't exist
* chore: update samples
* chore: use the basePath from the base class
* chore: update all the samples
* Bump Gradle in Java projects from 6.0.1 to 6.7.1
Regular maintenance, 6.0.1 was released November 18th, 2019 and the latest release (November 16th, 2020) is 6.7.1. This updates all the wrapper templatesto the latest version.
* Updated generated Java samples
Generated via `./bin/generate-samples.sh bin/configs/java-*`
* update samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Updated Eiffel code generator.
Added missing language reserved words.
Updated mustache templates to use the latest Eiffel rules to avoid obsolte
feature calls and Cat-Calls.
Updated Eiffel configuration files (ecf's)
Updated comments styles.
Updated Travis CI file to use the latest Eiffel compiler.
Updated EIffel sample to use https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml
* Added missing mapping decimal to REAL_64
Added Eiffel Kernel classes to importMapping to avoid generate models for
them.
Fixed issue with Eiffel feature name generation, updated toOperationId(String) method.
Simplified toInstantiationType method implementaetion.
Improved model.mustache to generate Eiffel models.
* Updated Eiffel sample.
* Removed unneeded tabs.
* Added AnyType mapping to ANY
Removed unneeded tab
Updated model name, remane models that starts with _.
* update doc
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [java][spring] updated template to support proper reactive map type
* [java][spring] supporting unit test for spring boot reactive request map issue
* [java][spring] updated samples
* [java][spring] refactoring the issue test spec
* Default body to NULL
* update samples
* Update to set body to NULL only when no hasBodyParam
* Revert any whitespace changes.
* Makes defaulting body conditional on hasFormParams also not being set
Co-authored-by: William Cheng <wing328hk@gmail.com>
Co-authored-by: Robert Pyke <robertpyke@fb.com>
* [dart-dio] Add basic integration test POM
This basically just fetches dependencies, runs the built_value generator and empty test cases. Even running empty test cases is more than is currently possible and at least finds compile errors.
There are compile errors atm which need to be fixed.
* [dart-dio] Fix missing BuiltSet import in models that use enums
* [dart-dio] Fix compile error when the return type is a Map
* the compile error was `serializerForType(Map<String, int>)` in `StoreApi` which needs to be `serializerForType(Map)`
* use final instead of var in response handling
* [dart-dio] Generate docs after changes
* [dart-dio] Add integration test to CI execution list
When generation examples of objects with additional properties, we use
the map syntax inside a model instantiation, which is incorrect. This
fixes it by checking for model at the right place.
* first commit of api Key feature.
* added multi key and URL query key support
* fixed error in mustache files, updated samples and tests
* added Basic Auth with Base64 encoding.
* updated Readme, added bearer token
* added check that authentication credentials are set. fixed typo in README
* fix async in java play generator
* add async operation option
* Remove the return null and replace with a return at the right place.
Co-authored-by: Jean-François Côté <jcote@stingray.com>
* [JAXRS-CXF] Introduce petstore sample for jaxrs-cxf-client with additional property jackson (preparational commit)
generated using: ./bin/generate-samples.sh ./bin/configs/other/jaxrs-cxf-client-jackson.yaml
* [JAXRS-CXF] Generate missing jackson annotations in inner enum
fix for generators jaxrs-cxf and jaxrs-cxf-client
* Add basic types imports to generated examples
This adds an extension to include basic types imports to generated Java
examples.
* Make some fixes to example generation
* Generate OffsetDatetime correctly
* Create a useful sample for enums, regenerate samples
* Fix BigDecimal as well
* Fix list examples in python
When a model has an example in an array, it wrongly wraps it again in a
list instead of returning the list examples. This fixes it.
* Add comment
* Expose JsonSerializerSettings in ApiClient
* Update generated petstore sample
* Add XML comments for SerializerSettings and match new OverrideSpecifiedNames default
* Add GetSerializerSettingsTest
* Allows install typescript client via npm from Git
'prepublishOnly' is run before the package is published. 'prepack' is run before the package is published and after installation local installation eg. via Git.
* Update examples for Typescript
* [ruby] fix oneOf handling
* use previous ruby configs due to issue #4690
* check for oneOf model in base_object
* validate the attributes in partial_oneof_module
* Fixed a couple of problems with current implementation.
1) When encoding non-String header values, the client will forwar to parameterToString() for encoding.
2) fromJson() now accepts a dynamic value since the type transformer accepts a dynamic value.
* Updated Pet Store files.
* Proper spacing between blocks.
* Adjust spacing.
* Make fromJson() as a static function, thus not instantiating a new object if JSON is null.
* Adjust doc for fromJson() function.
* python->python-legacy, python-experimental->python
* test with openjdk8
* test with openjdk11
* comment out rm
* move kotlin tests to circleci
* move kotlin tests
* move tests to circleci
* fix circleci
* rearrange test
* move tests
* use wrapper
Co-authored-by: Justin Black <justin.a.black@gmail.com>
* Add CLI options to remove runtime checks (serialization/deserialization).
* Update templates to support the new parameter
- Generates all the models in a same file to avoid import complexity
- Extract interfaces creator templates to reuse them
* Fix formatting and generate client examples
* Add documentation
If a form-parameter had the same name as another (header-, query-,
path-, or cookie-)parameter, a conflict could be caused (for example
in the typescript generator). This fix executes the same uniqueness-
check and renaming for form- and body-parameters as it is done for
all other parameters.
@see issue #7575
Co-authored-by: Alexander Rashed <alexander.rashed@ntsretail.com>
* Fix a few issues with go examples generation
This fixes a bunch of issues seen when generating go examples, namely
- Numbers aren't casted to the right type
- The time import is missing
- Enums are treated as regular models
* Rebuild more samples
* Use examples properly
* Handle multiple instances in the same doc
* Fix wrong array closure
* Handle model arrays
* Fix file and enum namespace
* Regenerate samples
* Handle maps of complex types
* Handle oneOf
* Fix padding
* Fix enum doc
* Removes links to basic types in arrays
* Remove links to basic types in maps
* Fix enum links
* Minor indent fix
* Handle review comments
* 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>
# If you break your build into multiple jobs with workflows, you will probably want to do the parts of this that are relevant in each
# The following `checkout` command checks out your code to your working directory. In 1.0 we did this implicitly. In 2.0 you can choose where in the course of a job your code should be checked out.
- checkout
# Prepare for artifact and test results collection equivalent to how it was done on 1.0.
# In many cases you can simplify this from what is generated here.
# 'See docs on artifact collection here https://circleci.com/docs/2.0/artifacts/'
- [ ] 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).
- [ ]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/).
- [ ] 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.
- [ ]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.
- [ ] Run the following to [build the project](https://github.com/OpenAPITools/openapi-generator#14---build-projects) and update samples:
```
./mvnw clean package
./bin/generate-samples.sh
./bin/utils/export_docs_generators.sh
```
Commit all changed files.
This is important, as CI jobs will verify _all_ generator outputs of your HEAD commit as it would merge with master.
These must match the expectations made by your contribution.
You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example `./bin/generate-samples.sh bin/configs/java*`.
For Windows users, please run the script in [Git BASH](https://gitforwindows.org/).
- [ ] File the PR against the [correct branch](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches): `master`, `5.1.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.
- 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".
@@ -49,6 +49,7 @@ Code change should conform to the programming style guide of the respective lang
@@ -85,12 +86,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` and `bin/openapi3` folder. For example, run `./bin/python-petstore.sh` and `./bin/openapi3/python-petstore.sh` to update the Python PetStore API client under [`samples/client/petstore/python`](https://github.com/openapitools/openapi-generator/tree/master/samples/client/petstore/python) and [`samples/openapi3/client/petstore/python`](https://github.com/openapitools/openapi-generator/tree/master/samples/openapi3/client/petstore/python). For Windows, the batch files can be found under `bin\windows` folder. (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: `./bin/python-petstore.sh -t modules/openapi-generator/src/main/resources/python`.
- 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.
@@ -105,7 +108,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://opencollective.com/openapi_generator) [](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)
:notebook_with_decorative_cover: The eBook [A Beginner's Guide to Code Generation for REST APIs](https://gum.co/openapi_generator_ebook) is a good starting point for beginners :notebook_with_decorative_cover:
:warning: If the OpenAPI spec, templates or any input (e.g. options, environment variables) is obtained from an untrusted source or environment, please make sure you've reviewed these inputs before using OpenAPI Generator to generate the API client, server stub or documentation to avoid potential security issues (e.g. [code injection](https://en.wikipedia.org/wiki/Code_injection)) :warning:
:warning: If the OpenAPI spec, templates or any input (e.g. options, environment variables) is obtained from an untrusted source or environment, please make sure you've reviewed these inputs before using OpenAPI Generator to generate the API client, server stub or documentation to avoid potential security issues (e.g. [code injection](https://en.wikipedia.org/wiki/Code_injection)). For security vulnerabilities, please contact [team@openapitools.org](mailto:team@openapitools.org). :warning:
:bangbang: Both "OpenAPI Tools" (https://OpenAPITools.org - the parent organization of OpenAPI Generator) and "OpenAPI Generator" are not affiliated with OpenAPI Initiative (OAI) :bangbang:
@@ -46,6 +63,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/) | 25.06.2020 | Major release with breaking changes (no fallback) |
| 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.
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.1.0/openapi-generator-cli-5.1.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`
@@ -426,20 +447,22 @@ 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:
[--reserved-words-mappings <reserved word mappings>...]
@@ -506,14 +528,7 @@ cd samples/client/petstore/java/okhttp-gson
mvn package
```
Other languages have petstore samples, too:
```sh
./bin/android-petstore-all.sh
./bin/java-petstore-all.sh
./bin/objc-petstore.sh
```
... and others. [Here is a list of all scripts.](https://github.com/OpenAPITools/openapi-generator/wiki/Samples-folder#scripts)
Other generators have [samples](https://github.com/OpenAPITools/openapi-generator/tree/master/samples) too.
### [3.1 - Customization](#table-of-contents)
@@ -547,7 +562,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/#/)
@@ -561,6 +576,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.
@@ -667,7 +700,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)
@@ -754,6 +787,43 @@ 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-12 - [Interoperability by construction: code generation for Arrowhead Clients](https://ieeexplore.ieee.org/document/9274746) by Michele Albano, Brian Nielsen at [2020 IEEE Conference on Industrial Cyberphysical Systems (ICPS)](https://ieeexplore.ieee.org/xpl/conhome/9274544/proceeding)
- 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/)
- 2020-11-05 - [Automated REST-Api Code Generation: Wie IT-Systeme miteinander sprechen](https://www.massiveart.com/blog/automated-rest-api-code-generation-wie-it-systeme-miteinander-sprechen) by Stefan Rottensteiner at [MASSIVE ART Blog](https://www.massiveart.com/blog)
- 2020-12-01 - [OpenAPI GeneratorでGoのAPIサーバー/クライアントコードを自動生成する](https://qiita.com/saki-engineering/items/b20d8b6074c4da9664a5) by [@saki-engineering](https://qiita.com/saki-engineering)
- 2020-12-04 - [Scaling the Test Coverage of OpenAPI Generator for 30+ Programming Languages](https://www.youtube.com/watch?v=7Lke9dHRqT0) by [William Cheng](https://github.com/wing328) at [Open Source Summit Japan + Automotive Linux Summit 2020](https://events.linuxfoundation.org/archive/2020/open-source-summit-japan/) ([Slides](https://speakerdeck.com/wing328/scaling-the-test-coverage-of-openapi-generator-for-30-plus-programming-languages))
- 2020-12-09 - [プロジェクトにOpenAPI Generatorで自動生成された型付きAPI Clientを導入した話](https://qiita.com/yoshifujiT/items/905c18700ede23f40840) by [@yoshifujiT](https://github.com/yoshifujiT)
- 2020-12-15 - [Next.js + NestJS + GraphQLで変化に追従するフロントエンドへ 〜 ショッピングクーポンの事例紹介](https://techblog.yahoo.co.jp/entry/2020121530052952/) by [小倉 陸](https://github.com/ogugu9) at [Yahoo! JAPAN Tech Blog](https://techblog.yahoo.co.jp/)
- 2021-01-08 - [Hello, New API – Part 1](https://www.nginx.com/blog/hello-new-api-part-1/) by [Jeremy Schulman](https://www.nginx.com/people/jeremy-schulman/) at [Major League Baseball](https://www.mlb.com)
- 2021-01-18 - [「アプリ開発あるある」を疑うことから始まった、API Clientコードの自動生成【デブスト2020】](https://codezine.jp/article/detail/13406?p=2) by [CodeZine編集部](https://codezine.jp/author/1)
- 2021-02-05 - [REST-API-Roundtrip with SpringDoc and OpenAPI Generator](https://blog.viadee.de/en/rest-api-roundtrip) by [Benjamin Klatt](https://twitter.com/benklatt) at [viadee](https://www.viadee.de/en/)
- 2021-02-17 - [REST-API-Roundtrip with SpringDoc and OpenAPI Generator](https://medium.com/nerd-for-tech/rest-api-roundtrip-with-springdoc-and-openapi-generator-30bd27ccf698) by [cloud @viadee](https://cloud-viadee.medium.com/)
- 2021-03-08 - [OpenAPI Generator 工具的躺坑尝试](https://blog.csdn.net/u013019701/article/details/114531975) by [独家雨天](https://blog.csdn.net/u013019701) at [CSDN官方博客](https://blog.csdn.net/)
- 2021-03-16 - [如何基于 Swagger 使用 OpenAPI Generator 生成 JMeter 脚本?](https://cloud.tencent.com/developer/article/1802704) by [高楼Zee](https://cloud.tencent.com/developer/user/5836255) at [腾讯云专栏](https://cloud.tencent.com/developer/column)
- 2021-03-24 - [openapi-generator-cli による TypeScript 型定義](https://zenn.dev/takepepe/articles/openapi-generator-cli-ts) by [Takefumi Yoshii](https://zenn.dev/takepepe)
- 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)
## [6 - About Us](#table-of-contents)
@@ -787,12 +857,14 @@ 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.