The defaults configured for GENERATOR_HOST didn't really make sense.
When running the docker container with `-P`, GENERATOR_HOST defaulted to
http://localhost. This caused download links for generated client/server
code to be incorrect. For most cases, there's no reason to provide
GENERATOR_HOST as the code already figures the appropriate
scheme/host/port from the originating request.
GENERATOR_HOST could still be used for more complex deployment
scenarios, for instance if a specific server is configured as a file
server. I haven't tested this scenario, and it may require mounting /tmp
as a volume when running within a container.
* Adds python-experimental generator
* Adds python-experimental samples folder which uses its own v2 spec
* Adds enusre-up-to-date updates
* Removes samples/client/petstore/perl/t/AnotherFakeApiTest.t
* Removes comment line from python-experimental generator
* Reverts perl docs file
* Updates perl sample client
* Adds python-experimental to pom.xml
* Copies the python test foldeers tests and testfiles into python-experimental
* Copies python test folder into python-experimental
* Moves python testing from Travis (samples pom.xml profile) to Circlci (samples.circleci pom.xml profile)
* Adds python-experimental pom.xml
* Adds python-experimental makefile and .sh files
* Chenges python-experimental to use gitignored venv rather than .venv which is not ignored when testing
* Adds dev-requiremnts.txt and removes .travis.yml from python-experimental so CI tests will pass
* Moves python-experimental from CicleCI to Travis to get support for multiple python environments
* Updates generator java comment so CI tests will run over again
* Set error_reporting(E_ALL) in phpunit.xml settings, so that undefined variables will always cause a test failure
* Update petstore sample for php-laravel
The `mapping` property of the [Discriminator Object] is "An object to
hold mappings between payload values and schema names or references."
The subsequent examples in the spec have `mapping`s of both types.
The `mapping` support introduced in #536 only supports references.
Update the code to support names (identified by lack of `/`) or
references and change a test mapping to cover this case.
[Discriminator Object]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#discriminatorObject
Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
* feat(r): Added handling exception with ApiException class and document generation
* feat(r):enhancements to exception handling and documentation
* fix(r): fixes and reverting the man folder
* fix(r): minor fix of import statement
* fix(r): generated the docs file
* fix(r) minor doc casing fixes
* Update DefaultCodeGen to allow additional primitive types
If a string field is specified with a format which is also defined using
--typeMappings, it will be treated as a primitive type
* Fixed typo in android-petstore-httpclient.bat
Previously, this pulled from the GENERATOR_HOST system property. This
should have been an environment variable. Fallback is now generator.host
system property.
* First set of fixes to support ver 3.0, useswashbuckle does not work yet
* Fix swashbuckle issues iwth aspnetcore 3.0
* Use default routing for 2.2 and turn off default for 3.0
* fix up documentation
* PR Feedback and wrong name in mustache file
* Fix for 2.1 usage too
* Change isFramework to useFrameworkReference as name to make thngs explicitly clear. Also fix small messages for the review comments
* Make JSON.NET version configurable
* Activate endpoint routing and use camel case NamingStrategy
* Make Newtonsoft version configurable to match ASP.NET Core preview 5
* Fix spelling of an option, remove a duplicate call and update docs
* feat(r): Inclusion of useragent timeout and serialization
* fix(r): fixing name of timeout parameter
* fix(r): fixing unit tests
* fix(r): fixing minor issues
* fix(r): updated r petstore batch command
* fix(r): minor unit test fix
* fix(r): refactor of useragent passing and other minor
* feat(typescript-rxjs): change BaseAPI to arrow functions, use shorthands where possible
* feat(typescript-rxjs): replace null checking with throwIfRequired helper function in api controllers
* feat(typescript-rxjs): use shorthand syntax for object creation of query and header params
* feat(typescript-rxjs): provide fallback for previously exported RequiredError and querystring
* refactor(typescript-rxjs): change order of query and headers definition
* feat(typescript-rxjs): regenerate samples
* fix(typescript-rxjs): missing closing curly
* fix(typescript-rxjs): add condition to prevent undefined parameters in header or query params
* [Go][Client] Ensure test errors don't crash
Previously we did not interrupt execution of a test case
when an error was returned from an API call. This was
causing the tests to crash as soon as we try to
dereference the response.
We now fail the tests as soon as the first API error
is received.
* [Go][Client] Use configured Scheme and Host in requests
Previously we were simply setting the Host header and
completely ignoring the configured scheme.
* Initial implementation of a validation framework in core
* Print surefire summary (helps evaluate errors)
* Bump versions: surefire plugin,jmockit
* Depend on jmockit within maven-surefire-plugin which requires it
* Release versioning script with marker tags.
Introduces bump.sh which supports moving from version to version but
only within delimiting marker tags in the target file.
This script currently doesn't do validations or anything fancy.
* Allow bumping version according to type (major,minor,build,revision)
* bump.sh will display error if file contents are unchanged
URL-special characters such as /,?,% should be encoded when inside path
parameters. I changed the Ruby-client to do so.
https://github.com/OpenAPITools/openapi-generator/pull/3039
Unfortunately, some projects relied on slashes not being expanded within
path paramters:
https://github.com/OpenAPITools/openapi-generator/issues/3119
With this commit, these projects can now pass `--strict-spec false` to
not have / converted to %2F.
strict spec not specified: / -> %2F
--strict-spec true: / -> %2F
--strict-spec false: / -> /
* Add Flow import to kotlin spring reactive
* Add runBlockingTest to api tests
* Add kotlin-springboot-petstore-server-reactive.sh to ensure-up-to-date
* add reactive check for runBlockingTest
* Samples
* feat(csharp-documentation): Improving documentation and example
* feat(csharp-documentation): Updating pet project
* feat(csharp-documentation): Minor updates
* feat(csharp-documentation): Updating pet project
* feat(csharp): Updating pet project
* feat(csharp-netcore): Updating pet project
* feat(r): fixing serialization and deserialization issues
* feat(r): pet store file generated with serialization fixes
* fix(r): updated the query params with keyname in get request
* fix(r):fix issue with package name and other minor
* fix(r): fixing unit tests
* feat(r): adding api calls WithHttpInfo method
* fix(r): reverting unit test changes
* feat(r): saving changes for reference
* Revert "feat(r): saving changes for reference"
This reverts commit 0d091b5c20.
* feat(r): minor refactor of method position
* fix(r): fixing bug in withhttpinfo method args passing
* fix(r): generated petstore with fix
* Bump up babel version
* Update samples
bin/javascript-flowtyped-petstore.sh
* The dependency `babel-preset-react-app` requires `NODE_ENV` or `BABEL_ENV`
* Run `env BABEL_ENV=development npm run build` to update the samples
* Add support for enum schemas and properties to the rust generator
Also:
* Skip serializing a field with serde if it's optional and empty
* Fix borrow checker error when using &std::path::Path (should be std::path::PathBuf)
* Add script to generate sample with rust-reqwest
* Regenerate petstore sample for both rust targets
* Remove go code from README.md
* Fix formatting of serde skip_serializing_if attribute
* Explicitly ignore .bak in gradle samples directory
* Add gradle wrapper to local-spec sample, make .java-version (jenv local) be less machine specific
* Include gradle plugin samples in travis build
`URI.encode` is obsolete. `CGI.escape`, `URI.encode_www_form` or
`URI.encode_www_form_component` are recommended instead.
https://ruby-doc.org/stdlib-2.6/libdoc/uri/rdoc/URI/Escape.html#method-i-escape
URI.encode has different behaviour to CGI.escape:
```ruby
URI.encode('hello/world?test%string')
=> "hello/world?test%25string"
CGI.escape('hello/world?test%string')
=> "hello%2Fworld%3Ftest%25string"
```
I recently raised pull request #3039201cbdce29
That pull request escapes path items at insertion.
Before either pull request, the path item 'hello?world' would go into
the URL as 'hello?world'. That behaviour was insecure as if an attacker
could control the path item value, they could change the URL the
application connected to.
After #3039 'hello?world' would go in as 'hello%253Fworld'. This was
safer than before, but it's still not correct.
If I'd realised at the time, I would have made it correct at the time.
What this pull request does is make it go in as 'hello%35world', which
is correct.
ApiClient::build_request_url was URI.encoding the whole path.
This wasn't protecting against all undesirable characters in the path
items, but was escaping % characters a 2nd time which was unhelpful.
I have additionally removed URI.encode from Configuration::base_url as I
can't see any benefit it could be bringing.
There is no justification for it in the commit where it was originally
added: 47c8597d36
* test plugin in travis, move jobs to circle CI
* Revert "[maven-plugin] fix strictSpec parameter (#3071)"
This reverts commit 8c9a1512ae.
* Revert "Revert "[maven-plugin] fix strictSpec parameter (#3071)""
This reverts commit c3e5723c5a.
* test with jdk8
* general support to add scopes for bearer auth too
implemented authorize workflow in aspnet core too
* petstore update
* fix missing )
* multi roles fix
* null pointer error prevention
* null point exception fixes
* null pointer fixes
* npe fix
* solved line break issue
* Fixed case where invalid comma is added to consumes/produces list in case last element is empty.
* Changed default HttpStatus.OK response to match first response code in definition.
Allowing also other responses 201, 202 ...
* Changed default HttpStatus.OK response to match first response code in definition.
Allowing also other responses 201, 202 ...
* run ./bin/kotlin-springboot-petstore-server.sh
Updated APIs
* feat(java-jersey2): Adding http response headers and making example compilable
* feat(java-jersey2): Updating pet project
* feat(java-jersey2): Removing uncessary lines from Readme
* feat(java-jersey2): Updating pet projects
* feat(java-jersey2): Updating pet projects
* refactor(golang): Use http constants for methods
* regenerate samples
* fix: Only import strings when needed
* regenerate samples
* Only import fmt and strings when needed
* regenerate samples
* kotlin spring : add reactivity via kotlin's coroutines
* add kotlin spring boot reactive samples
* bug : fix spring version and import for coroutines
* remove exception handler for reactive (webflux doesn't support it)
* add spring milestone repository to maven pom
* add reactive type for list in Api and ApiImpl methodes for mathching body responsive parameter
* fix baseType for ArraySchema
* regenerate samples
* updating documentation
* Ruby client: escape path parameters
Path parameters should be escaped when encoded into the path.
In the path '/pet/{petId}' let's pretend petId is a string instead of a
number.
If the user uses "Bobby" as the petId then they correctly get the path
'/pet/Bobby'.
But if they put 'Bobby/Tables' as the petId then they used to get the
path '/pet/Bobby/Tables' which will be interpreted by the server as a
different route.
Using CGI::Escape they now get '/pet/Bobby%2FTables' which is correct.
* Ruby client- regenerate further files
Thank you @autopp for noticing I needed to update
`samples/openapi3/client/petstore/ruby`.
Regenerated by running `bin/openapi3/ruby-client-petstore.sh`.
PR #3039
* [gradle] Reworking publishing pipeline
TravisCI proxies separate external requests with different orginating IP
addresses, while Sonatype associates artifacts for auto-generated
repositories by IP address. This leads to many gradle deploys from CI
resulting in "split" staging repositories with no way to combine in
Sonatype Nexus.
This introduces a workflow which should resolve this issue on the next
revision release. Specifically, nexus-publish-plugin is included to
create singular staging repositories from TravisCI and
gradle-nexus-staging-plugin is included to auto-release and promote
this repository.
NOTE:
We need to publish via publishPluginMavenPublicationToNexusRepository,
because publishToNexus will publish _all_ publish-related tasks,
including the one intended only for the Gradle Plugin Portal.
Tested in standalone open source Nexus Repo Manager, which doesn't
support the staging plugin. So, only SNAPSHOT workflow has been
validated locally.
* Change the 'publish' task to 'publishToMavenLocal' in the helper pom.xml
* Add condition on signing and be explicit about sources/javadoc artifacts
* Call close/closeAndReleaseRepository
* Reuse same closeAndReleaseRepository for SNAPSHOT + releases using a task guard, and publish to Gradle Plugin portal only on tagged build.
* Add v prefix for tag check.
* [typescript-fetch] Fix uploading files
* Check for Blob instead of File
* Update samples
* Update samples
* Update samples
* Update samples
* Regenerate samples
* Bug
* Manually fix samples
* Implement support for Buffer and Blob in a backwards-compatible way
* Rework how blob and buffer instance checking works
* Check for Blob/Buffer existence properly
* Avoid using Buffer and Blob in type declarations
* Remove Buffer support
* Update samples/client/petstore/typescript-fetch/tests/default/test/PetApi.ts
Co-Authored-By: Esteban Marin <estebanmarin@gmx.ch>
* Update samples/client/petstore/typescript-fetch/tests/default/test/PetApi.ts
Co-Authored-By: Esteban Marin <estebanmarin@gmx.ch>
* Support python 3.7 for all server-generators
Signed-off-by: Guillaume Smaha <guillaume.smaha@gmail.com>
* Rename typing_patch.py to typing_utils.py
* Renaming typing_patch.mustache to typing_utils.mustache
* Fix comparaison in typing_utils.is_dict for python3.7
* Use golang's provided method names (gin)
This commit modifies the gin template for the router to leverage the http constants for method types as defined by RFC 7231 section 4.3. These are documented on:
https://golang.org/pkg/net/http/#pkg-constants
This removes the need for the `strings` dependency and does not require any new dependencies, as `net/http` is already imported.
* Remove strings dependency which is no longer used
* Update samples
* fix(okhttp-gson): Make example executable
* fix(okhttp-gson): Make example executable
* fix(okhttp-gson): Make example executable
* fix(okhttp-gson): Updating pet project
* fix(okhttp-gson): Updating parcelable project
* fix(okhttp-gson): Using {{{}}}
* fix(okhttp-gson-java): Adding response headers on api_doc.mustache
* feat(okhttp-gson): Adding Http response headers to docs and javadocs
* feat(okhttp-gson): Included dots in custom tage
* feat(java-okhttpgson): Updating pet project
* feat(java-okhttpgson): Updating other pet project
* To fix conflict params name 'url'
Sometime we have api params named url that will conflict with imported module url named url.
* run samples
* run samples
* update samples
* update ts axios petstore all
* add apiSuffix configuration
* refactor the global option apiSuffix to kotlin specific feature
* add testcase
* add testFolder for kotlin gen
* add basic api_test.mustache template
* add api_test,mustache
* add tests
* improve usage of file separators
* replace defined file separator into os specific separators
* improve test templates and kotlin-springboot sample
* add test dependecies into gradle template
* add newline into template file
The namedCredential property is intended to override the namedCredentials name, but it wasn't being used. Instead, the title from the openapi spec file was used, and the namedCredential property wasn't used anywhere.
For backwards compatibility, this change also keeps the spec title as the default name if an override is not provided.
* Add openapi dictionary/map support to typescript-fetch client generator
Change isContainer -> isListContainer for existing array support.
Add isMapContainer control flow, adding map support.
Add utility function to help map openapi map/dictionaries to ts maps.
Close#1878
* Run typescript-fetch generator scripts and update output files
* Support for Bearer in Ruby Client
* Update README.mustache
* Update README.mustache
* Update api_doc.mustache
* Update api_doc.mustache
* Update api_doc.mustache
* samples
* Uncommited changes
* Formatting
* More Formatting
* Fomatting
* More formatting
* More formatting
* Even more formatting
* Even more formatting
* More formatting
* Even more formatting
* More formatting
* More formatting
* [JAVA] fix artifactVersion is not taken from specification when not provided by generator option
* update jaxrs-spec samples
* update docs generator jaxrs
* add apiSuffix configuration
* Add default value for Api suffix
* remove overriding method toApiName
* refactor the global option apiSuffix to kotlin specific feature
* add missing Option for apiSuffix
* extend readme.md for apiSuffix configuration
* update doc
* add testcase
* python: api_client: add the multipart files after sanitization
* simplify prepare_post_parameters
* fix case of both post params and files set
* update samples
* update samples
* [Java] improve docs with adding default value for additional properties
* remove using File.separator for sourceFolder/projectTestFolder path
* Improve artifactId and artifactVersion description
* update doc java pkmst and sample
* [feat] Intro GeneratorMetadata (stability index)
GeneratorMetadata offers an immutable object created via Builder pattern
which allows generators to explicitly define their stability (stable,
beta, experimental, deprecated) as well as a message to be shown during
generation.
This is a step toward:
* Fleshing out the "Core" artifact (#845)
* Providing a place to encapsulate feature-oriented metadata (#840)
* Providing a means to communicate end of life scheduling (#116)
This new structure, specifically the Stability property, allows us to
offer future enhancements such as allowing users to filter down to only
"Stable" generators via CLI, and eventually any compat table (see #503).
* Mark deprecated generators as deprecated in-code
* Re-export docs/generators.md
* Beta server stub generator for F#/Giraffe (#2705)
* first commit for F#/Giraffe
use CLI generator
work on handlers
add binding to url params
add parameter declaration to handler & fix array types
order models by dependency and add tests
add oauth handlers
add service generation
add service implementation
return json for map types and add all return types to service implementation
pare down record types for readability
move implementations to impl folder
fix additional handler invocation
remove logging
remove open api type provider package reference
add sane defaults for OAuth
add readme and reorganize files for easier ignore
fix oauth checks and move login to default template
typedef operation body params as model
add API test templates
fix test templates
set project & other folders when packageName is set
add ignore to test pipes
add ignore for oauth to hide compile warnings
escape model types for generic dictionaries
remove Boolean object from primitives
fix handler and param templates for multiple path params
remove "Model" from model module names and fix import mapping for dictionary
add package name to model imports
change model templates to use imports
move login to CustomHandlers
raise exception where oauth not properly configured
allow webhost configuration from CustomHandlers
remove explicit support for nullable types and render option in template instead
move Cookie options to CustomHandlers
add header params
integrate api key provider
add nullable to datetime types
fix test generation and pretty up model folder
add context path to handler test template
dont copy spec file
remove superseded copyright notices
remove superseded copyright notices
* remove carriage return in fsharp template
* remove superseded sample output directory
* fix bash build script
* update generated sample
* update documentation
* add new file
* fix compile issues
PR template seems to assume contributor is compiling the project, and would have had "latest" build completed locally. New contributors making template or documentation changes may not have built the project at all, and wouldn't know to do so based on previous PR template instructions.
* [all] Adds strict spec option
Introduces an option to allow user customization of strict specification
behaviors. For instance, OpenAPI 3.x requires a path object name to be
prefixed with '/' so we append any missing '/', but this may not be
desirable to some users or generators. In this commit, this fix specifically is
the only modification affected.
* Clarify strict-spec docs, add option to README.md
* Update CLI options in docs/usage.md
* do not add non-nullable fields to model json
This fix would avoid adding and sending fields that are not isNullable in the request.
* updated sample for issue #2535
* Support enums
* Updating petstore sample
* Use enum class instead of just enum
* Use string_t for g++ compatibility
* Add enum descriptions
* Fix string parsing. Make g++ compatible.
* Add boost-uid to vcpkg isntall command. It's required.
* Add instructions for building on visual studio 2017
* Add section to support vcpkg and visual studio
* Undef U on windows to stop compiler error
* Update pet store sample
* Move undef U to apiclient-header
* Slight change to address compiler warning
* [cli] Support packageName as global option
CLI supports other package-related options (--api-package,
--model-package, --invoker-package). This aligns those options with
--package-name to avoid confusion about how to configure these options
where those are supported.
This intentionally does not apply a packageName getter/setter to
DefaultCodegen to reduce the footprint of this change.
* [gradle] Add packagName as global option
This makes packageName available as a global option, beside apiPackage,
modelPackage, and invokerPackage to reduce potential confusion about how
to configure the four of these options by generators which support them.
* [TypeScript] Generate oneOf schemas as type unions
* [TypeScript] Generate oneOf schemas as type unions
* [TypeScript] Generate oneOf schemas as type unions
update aurelia sample
This fixes adding supporting files to packages that have a '.'.
If the controllersPackage or modelsPackage has a '.' (eg to put the
controllers and/or models in a subpackage of the invokerPackage),
supporting controller and models were ending up in directories that
included the period instead of converting the periods to file
separators.
* Pass opts argument to api client in ruby-client
We want to change the option when debugging, changing timeout to specific api, etc...
So we want to merge and pass options to api client.
* fix ruby-client
* fix openapi ruby-client
* fix typo
* fix template
* Fix issue including header, the filename not the class name should be used to import a header file.
* Include header file name, not class name.
Header file name and class name differ.
* Update petstore samples
* [Elixir] update version / add test
* update samples (add missing 200 responses in petstore-with-fake-endpoints-models-for-testing.yaml)
* [Elixir] update to 1.6 version
* [Elixir] fix test petapi
* new module: openapi-generator-core
* templating engine adapters to support extension (currently only Handlebars)
* new `-e` templating engine CLI option
* adapt Generator to process Template with the passed TemplatingEngineAdpater
* add a MustacheEngineAdapter to the codegen in the unit tests
* force default MustacheEngineAdapter
* copy new core module in the root Dockerfile
* add processTemplatingEngine to CodegenConfig, to be overriden by Codegen classes if needed
* support multiple file extensions per templating engine adapter
* Extends handlebars experimental adapter with explicit contextual resolvers (e.g. map processing)
* Add new openapi-generator-core/pom.xml to release_version_update.sh
* A detailed message will be logged on missing handlebars helper
* Adds README documentation around template default and beta options
* Moves mustache package under new templating package
* Include built-in handlebars helpers which require explicit registration, and custom `startsWith` helper.
- Restore XML namespace support
- Remove non snake case rust warning for xml wrap_in methods
- Add XML rust-server tests
- Fix wrapping XML arrays when a property of another object
- Run all tests, not just those for OpenAPI 2.0
- Force wrapping for rust-server
* Improve CONTRIBUTING.md
Indicate that bin/openapi3 scripts should be executed too.
Try to clarify how to run tests:
* use in sample a client for which tests exist
* explain where to run the command and how to find the artifactId
* Update contributing.md by running copy-to-website
* Add first cutasync support and small cleanups
* Add apiPackage, modePacke to use for namespaces, for library don't generate wwwroot and dont make model class partial and default to no swashbuckle, , workarodun empty string cliOption
* Update docs
* Don't add async for library
* Fix generated program for async and task
* Default models names space should be <package>.Models
* Remove commented out code
* Remove unnecessary code, fix a comparison and add an else fo an if statment.
* Update docs
* Fixed#2643
Refactored to/from json functions to use universal object serialization method.
* Code review found incorrect indenting and I forgot to remove unused mustache files.
* Removed helpers class because it is not needed anymore.
* Removed helpers package from docs.
* Reverted helper class removal.
* Add RubyKaigi 2019 presentation
I talked "How to use OpenAPI3 for API developer" in RubyKaigi 2019
These are the topics of OpenAPI Generator
* Add the conference name
* Use isNotEmpty instead of length in dart2 validity checks
In dart2 the preferred method of checking whether an object is empty or
not is to use the .isNotEmpty property. An aspect that is now warned
about by the linter.
While not an issue in this particular case - testing length can also
have negative performance implications for Iterable collections, which
are not required to know or provide their length deterministically.
* Prefer equals for default values in dart2
The dart2 linter complains about m({a: 1}) style assignments, preferring
m({a = 1}) instead. Update the api_client generation to follow this.
* Regenerate dart2 samples for mustache template changes
* New modified model header and body mustache for c client generator
* remove uncrustify from cmake as it is used during code generation, also remove valgrind as it is not used
* add function to encode and decode binary data
* update model mustache
* update api body and header mustache for handling all types of parameters
* update model mustache with variable names and address few more issues to generate working codes
* updated api body and header mustaches with support for various new parameters and fix some issues as per new changes in code flow structure
* update apiClient header and body mustache as per new modifications for handling binary data and few more stuff
* updated samples generated by new modified mustache
* update handling of file and binary data type to binary_t
* update samples with recent commit on master regarding c-generator
* update cmakelist which was ignored by .openapi-generator-ignore, cleanup external folder
* update CMakeList mustache to show how to use compiled libary to compile source files
* update samples with new cmake
* Add comments explaining what each command is doing inshort
* remove freeing of base path as it is not memory allocated
* update samples to free apiclient object when the requirement is over
* add missing cJSON delete to fix memory not freed bugs
* use uncrustify to beautify manual written test code
* Updated StaticHtmlGenerator to it overrides the toVarName(String name) method in DefaultCodegen and prevents underscores from being converted to the word Underscore
* adding model propery with a snake_case name
* Reverting change to base petstore.yaml file
* Trying to trigger another CI build
* Trying to trigger another CI build
* Removing trailing space
* update travis to test gradle plugin
* update gradle version
* show gradle version
* test gradle plugin in circleci
* test appveyor in gradle
* use direct link
* revert other ci config
* Add tests to reproduce the issue
* Use simple replacement instead of regexp
* Add tests to reproduce the issue (apiPackage)
* Use simple replacement instead of regexp (apiPackage)
* Replace a slash with File.separator (addressing the issue on windows)
* Tweak (windows)
* Tweak (windows)
* Use StringUtils#remove***() instead of regexp
* Fix “The field JavascriptFlowtypedClientCodegen.SNAPSHOT_SUFFIX_FORMAT is hiding a field from type AbstractTypeScriptClientCodegen”
* Fix “The field JavaCXFExtServerCodegen.CodegenVariable.vendorExtensions is hiding a field from type
DefaultCodegen”
* Fix “Javadoc: Invalid URL reference. Double quote the
reference or use the href syntax”
* add static modifier - mvn verify passes
* specify charset, mvn verify works, compiles and clean on spotbugs in my project
* update samples as per contribution guide; mvn integration-test passes
* commit rest of samples
* fix missing newline at EOF
* lots of new newlines
* needed to run mvn clean beforehand...
* [BUG][php-symfony] Fix alias generation
* fix
* add bundle alias option and alias logic when it is not defined
* run bin/utils/ensure-up-to-date to update php-symfony.md
If a path defined security to an OAuth type, and defined scopes, the scopes from the
components definition were still being used, rather than the (most likely shorter) list
of specific scopes for the path.
This copies all the component security information over EXCEPT for the scopes. The scopes
to be included are determined by the path's security settings.
NOTE: Modified the petstore.yaml file so the GET operations only have read:pets scope and
utilized the Kotlin server sample to verify output. Sample output updated only for this scenario
* [Doc] Better highlight of generators docs page with generators specific parameters
* [Doc] Better highlight of generators docs page with generators specific parameters
* Add optValue to CliOption
* Fix compilation with ASP.Net Core 2.1
* Add ASP.Net core 2.2
* Use CliOption for classModifier, operationModifier, buildTarget, add ASP.Net core 2.2
* Make abstract method look cleaner
* Update docs
* Regenerate sample
* #1023 - [Scala] Use status family during response processing
* #1023 - [Scala] Use status family during response processing - adding REDIRECTION & INFORMATIONAL support
* generate setters for readonly properties in server code
* rollback DefaultGenerator change and remove isReadOnly tags from jaxrs server template
* updating petstore
* more petstore updates
* Added nullable-type support to CSharpClientCodegen
Overrode getNullableType method
Added non-nullable type varients to 'typeMapping' collection
Removed nullable type shorthand from api template
* Added testcase for nullable support
Set Integer property to not be nullable. Expect no '?' in baseType
Set String property to be nullable. Expect no '?' in baseType
* Implemented changes to 'csharp' generator from PR #1819.
* Update swagger-parser to '2.0.10-SNAPSHOT'
* Add a TODO
* Update input spec
* Update input spec again
* Update samples
* Set version to 2.0.10-OpenAPITools.org-1
* Ensure up-to-date
* Update to 2.0.11-OpenAPITools.org-1
* Run bin/utils/export_docs_generators.sh
* update dart-jaguar doc
* [kotlin-spring] use org.springframework.core.io.Resource for file handling
* run ./bin/kotlin-springboot-petstore-server.sh
* run ./bin/kotlin-springboot-petstore-server.sh after building the CLI
* use MultipartFile for file in form and the specified type otherwise
* remplace tab with space
* [kotlin-springboot] replace all instance of MultipartFile by Resource
* run ./bin/kotlin-springboot-petstore-server.sh
* Add Json import for all data classes
* Add `@Json` annotation for data class required variables
* Add `@json` annotation for data class optional variables
* Update samples code (petstore, strings, threetenbp)
* Fix annotation to match Kotlin coding style
* Added new generator for Scala + Play Framework (WIP)
* scala-play-framework: default values reintroduced (mostly); datatype -> dataType
* reintroduced missing EOF newline
* Support single/collection params for header/query params
* Rename apiFutures > supportAsync, implStubs > skipStubs (opt-out instead of opt-in)
* Deleted license and small fixes
* Generate extraction of form parameters from request body
* Added missing call to executeApi for unit methods when supportAsync=false
* Polished some stuff and added routes, application.conf, logback.xml, better default responses
* Disabled generation of Json.format for models with files
* Added README
* Multiple additions and improvements.
- Fix Indentation using mustache lambdas
- Option to set routes file name (default: routes) - allows uninterrupted manual maintenance of main routes file, which may include a subroute to the generated routes file
- Move supporting file classes to a package and update application.conf generation accordingly
- Option to generate custom exceptions (default: true) which are used in the controller to differentiate between API call exceptions and validation exceptions
- Generate error handler with basic exception mapping
- Option to generate API docs under /api route
- Reorder routes file so parameter-less paths are given priority over parameterized paths. Prevents case like /v2/user/:username activating before /v2/user/login (thus shadowing the login route completely) as observed using v3 petstore.yaml
- Option to set base package name (default: org.openapitools) to allow placing supporting files under a different package
* Revert supportAsync default to false
* Added binaries and default api/model packages
* Added scala-play-framework sample
* Add missing contextPath to README and controller comment
* [#2441] Update documentation mustache files for PHP client
This commit fixes issues with Markdown/CommonMark parsing by linting and enforcing consistent style.[#2441]
Issues with generated markdown files as reported by markdownlint for node.js are:
- MD001 heading-increment/header-increment - Heading levels should only increment by one level at a time
- MD002 first-heading-h1/first-header-h1 - First heading should be a top level heading
- MD007 ul-indent - Unordered list indentation
- MD009 no-trailing-spaces - Trailing spaces
- MD010 no-hard-tabs - Hard tabs
- MD011 no-reversed-links - Reversed link syntax
- MD025 single-h1 - Multiple top level headings in the same document
- MD031 blanks-around-fences - Fenced code blocks should be surrounded by blank lines
- MD032 blanks-around-lists - Lists should be surrounded by blank lines
- MD040 fenced-code-language - Fenced code blocks should have a language specified
- MD041 first-line-h1 - First line in file should be a top level heading
* [#2441] Update documentation mustache files for ruby client
This commit fixes issues with Markdown/CommonMark parsing by linting and enforcing consistent style.[#2441]
Issues with generated markdown files as reported by markdownlint for node.js are:
- MD001 heading-increment/header-increment - Heading levels should only increment by one level at a time
- MD002 first-heading-h1/first-header-h1 - First heading should be a top level heading
- MD007 ul-indent - Unordered list indentation
- MD009 no-trailing-spaces - Trailing spaces
- MD010 no-hard-tabs - Hard tabs
- MD011 no-reversed-links - Reversed link syntax
- MD025 single-h1 - Multiple top level headings in the same document
- MD031 blanks-around-fences - Fenced code blocks should be surrounded by blank lines
- MD032 blanks-around-lists - Lists should be surrounded by blank lines
- MD040 fenced-code-language - Fenced code blocks should have a language specified
- MD041 first-line-h1 - First line in file should be a top level heading
* [#2441] Update documentation mustache files for javascript client
This commit fixes issues with Markdown/CommonMark parsing by linting and enforcing consistent style.[#2441]
Issues with generated markdown files as reported by markdownlint for node.js are:
- MD001 heading-increment/header-increment - Heading levels should only increment by one level at a time
- MD002 first-heading-h1/first-header-h1 - First heading should be a top level heading
- MD007 ul-indent - Unordered list indentation
- MD009 no-trailing-spaces - Trailing spaces
- MD010 no-hard-tabs - Hard tabs
- MD011 no-reversed-links - Reversed link syntax
- MD025 single-h1 - Multiple top level headings in the same document
- MD031 blanks-around-fences - Fenced code blocks should be surrounded by blank lines
- MD032 blanks-around-lists - Lists should be surrounded by blank lines
- MD040 fenced-code-language - Fenced code blocks should have a language specified
- MD041 first-line-h1 - First line in file should be a top level heading
* [#2441] Update documentation mustache files for Java client
This commit fixes issues with Markdown/CommonMark parsing by linting and enforcing consistent style.[#2441]
Issues with generated markdown files as reported by markdownlint for node.js are:
- MD001 heading-increment/header-increment - Heading levels should only increment by one level at a time
- MD002 first-heading-h1/first-header-h1 - First heading should be a top level heading
- MD007 ul-indent - Unordered list indentation
- MD009 no-trailing-spaces - Trailing spaces
- MD010 no-hard-tabs - Hard tabs
- MD011 no-reversed-links - Reversed link syntax
- MD025 single-h1 - Multiple top level headings in the same document
- MD031 blanks-around-fences - Fenced code blocks should be surrounded by blank lines
- MD032 blanks-around-lists - Lists should be surrounded by blank lines
- MD040 fenced-code-language - Fenced code blocks should have a language specified
- MD041 first-line-h1 - First line in file should be a top level heading
* [#2441] Update documentation mustache files for GO client
This commit fixes issues with Markdown/CommonMark parsing by linting and enforcing consistent style.[#2441]
Issues with generated markdown files as reported by markdownlint for node.js are:
- MD001 heading-increment/header-increment - Heading levels should only increment by one level at a time
- MD002 first-heading-h1/first-header-h1 - First heading should be a top level heading
- MD007 ul-indent - Unordered list indentation
- MD009 no-trailing-spaces - Trailing spaces
- MD010 no-hard-tabs - Hard tabs
- MD011 no-reversed-links - Reversed link syntax
- MD025 single-h1 - Multiple top level headings in the same document
- MD031 blanks-around-fences - Fenced code blocks should be surrounded by blank lines
- MD032 blanks-around-lists - Lists should be surrounded by blank lines
- MD040 fenced-code-language - Fenced code blocks should have a language specified
- MD041 first-line-h1 - First line in file should be a top level heading
* [#2441] Update documentation mustache files for Rust client
This commit fixes issues with Markdown/CommonMark parsing by linting and enforcing consistent style.[#2441]
Issues with generated markdown files as reported by markdownlint for node.js are:
- MD001 heading-increment/header-increment - Heading levels should only increment by one level at a time
- MD002 first-heading-h1/first-header-h1 - First heading should be a top level heading
- MD007 ul-indent - Unordered list indentation
- MD009 no-trailing-spaces - Trailing spaces
- MD010 no-hard-tabs - Hard tabs
- MD011 no-reversed-links - Reversed link syntax
- MD025 single-h1 - Multiple top level headings in the same document
- MD031 blanks-around-fences - Fenced code blocks should be surrounded by blank lines
- MD032 blanks-around-lists - Lists should be surrounded by blank lines
- MD040 fenced-code-language - Fenced code blocks should have a language specified
- MD041 first-line-h1 - First line in file should be a top level heading
* [#2441] Update documentation mustache files for C# client
This commit fixes issues with Markdown/CommonMark parsing by linting and enforcing consistent style.[#2441]
Issues with generated markdown files as reported by markdownlint for node.js are:
- MD001 heading-increment/header-increment - Heading levels should only increment by one level at a time
- MD002 first-heading-h1/first-header-h1 - First heading should be a top level heading
- MD007 ul-indent - Unordered list indentation
- MD009 no-trailing-spaces - Trailing spaces
- MD010 no-hard-tabs - Hard tabs
- MD011 no-reversed-links - Reversed link syntax
- MD025 single-h1 - Multiple top level headings in the same document
- MD031 blanks-around-fences - Fenced code blocks should be surrounded by blank lines
- MD032 blanks-around-lists - Lists should be surrounded by blank lines
- MD040 fenced-code-language - Fenced code blocks should have a language specified
- MD041 first-line-h1 - First line in file should be a top level heading
* [#2441] Update documentation mustache files for Android client
This commit fixes issues with Markdown/CommonMark parsing by linting and enforcing consistent style.[#2441]
Issues with generated markdown files as reported by markdownlint for node.js are:
- MD001 heading-increment/header-increment - Heading levels should only increment by one level at a time
- MD002 first-heading-h1/first-header-h1 - First heading should be a top level heading
- MD007 ul-indent - Unordered list indentation
- MD009 no-trailing-spaces - Trailing spaces
- MD010 no-hard-tabs - Hard tabs
- MD011 no-reversed-links - Reversed link syntax
- MD025 single-h1 - Multiple top level headings in the same document
- MD031 blanks-around-fences - Fenced code blocks should be surrounded by blank lines
- MD032 blanks-around-lists - Lists should be surrounded by blank lines
- MD040 fenced-code-language - Fenced code blocks should have a language specified
- MD041 first-line-h1 - First line in file should be a top level heading
* Update README.mustache
* [#2441] Update documentation mustache files for Ada client
This commit fixes issues with Markdown/CommonMark parsing by linting and enforcing consistent style.[#2441]
* [#2441] Update documentation mustache files for Apex client
This commit fixes issues with Markdown/CommonMark parsing by linting and enforcing consistent style.[#2441]
* [#2441] Update documentation mustache files for bash
This commit fixes issues with Markdown/CommonMark parsing by linting and enforcing consistent style.[#2441]
* Support additionalPorperties as command line arguments
* Move Readme into main dir
* Update Mustache
* Update sample
* Test coverage
* Move cli options
* Revert options
* Remove tabs
* openapi 3 examples
* Update readme
* serverPort to int
* Move package version cli option to AbstractGoCodegen
* Update samples
* Tab to spaces
* Update docs and sample with xml
* Manual update doc
* Another doc try
* Regenerate go-gin-server doc
* Update akka scala generator
* Upgrade scala version to 2.12.8
* Upgrade Akka version
* Migrate from spray to Akka HTTP
* Update client sample
* Fix pom.xml generation to be equivalent to build.sbt
* Using connexion `pythonic_params` support while keeping OpenAPI spec file correct with reference to the original spec file.
* - Add `camelCase` query parameter which shows the incorrectnes of the conversion of the OpenAPI spec file in Python server implementation(s).
* Also use `pythonic_params=True` for the `python-aiohttp` implementation.
* - Updated Python related samples.
* The unit tests must provide the correct query parameters.
* - Updated Python related samples.
* multi-module example for maven plugin master
* read byte source from classpath like swagger-parser does
* renamed schema to openapi.yaml for multi-module examples
* renamed schema to openapi.yaml for multi-module examples
* adding retries option to override default value 3 of urllib3
* running petstore for python
* adding files for samples in petstore run
* running ensure-up-to-date
* Add build script and remove babel
This change adds a build script which uses babel to transpile generated es6 source to es5, such that it can then be used in node projects or published as a package to npm. The `babel` package is also removed as it is deprecated, and superseded by `babel-cli`.
See https://github.com/OpenAPITools/openapi-generator/issues/2126#issuecomment-473926663
* update samples
* Update Tesla dependency and replace Poison with Jason
* Use new Tesla method to set headers
* Fix jason dependency definition
* Use list for Headers instead of a map
* Rollback to Poison because Jason does not support 'as:' option to decode to arbitrary struct
* Use new return signature from Tesla 1.0 in decode function
* catch error when a struct is given as second parameter to RequestBuilder.decode
* Update modules/openapi-generator/src/main/resources/elixir/request_builder.ex.mustache
Co-Authored-By: yknx4 <yknx.4.b@gmail.com>
* Update modules/openapi-generator/src/main/resources/elixir/request_builder.ex.mustache
Co-Authored-By: yknx4 <yknx.4.b@gmail.com>
* Evaluate response based on status code
* Generate Petstore
* pin poison to ~> 3.0.0 since 4.0.0 does not work atm
* run ./bin/openapi3/elixir-petstore.sh
* [KOTLIN Client] Update to latest kotlin version
gradle - okhttp3 - kotlintest version update
add some test case in sample
* [KOTLIN Client] Update to latest kotlin version
gradle - okhttp3 - kotlintest version update
add some test case in sample
* Adds v2 spec additionalproperties examples, adds v3 spec nulllable model example, updates samples
* Remaining samples updates
* Adds csharp generator update to handle models with multilevel parent types, which works for the AdditionalPropertiesObject model, samples updated
* Update Tesla dependency and replace Poison with Jason
* Use new Tesla method to set headers
* Fix jason dependency definition
* Use list for Headers instead of a map
* Rollback to Poison because Jason does not support 'as:' option to decode to arbitrary struct
* Use new return signature from Tesla 1.0 in decode function
* catch error when a struct is given as second parameter to RequestBuilder.decode
* Update modules/openapi-generator/src/main/resources/elixir/request_builder.ex.mustache
Co-Authored-By: yknx4 <yknx.4.b@gmail.com>
* Update modules/openapi-generator/src/main/resources/elixir/request_builder.ex.mustache
Co-Authored-By: yknx4 <yknx.4.b@gmail.com>
* modify handing reserved keyword and set isEnum in local codegen to avoid conflict with other codegen
* update README mustache
* added object header and body mustache
* [dart] Fix authentication so all forms of Swagger 2.0 authentication work
* Run changes on petstore examples
* Amend dart2 generated README to cover basic authentication
* Amend dart2 generated README to cover authentication methods
* [dart] Fix authentication so all forms of Swagger 2.0 authentication work
* Run changes on petstore examples
* TypeScript: add typeRoots to tsconfig
This avoids typescript looking in parent directories to find type definitions. We don’t _need_ this behaviour from typescript, as this module is self-contained. If we don’t block this behaviour from typescript, and you put the generated source inside a project that already has a node_modules/@types directory, you can run into conflicts when some types require newer versions of TypeScript than is used by this module.
* Update petstore examples for all TypeScript variants
* 2nd attempt to make the automatic checkin testing work
* trying to submit the samples in hopes that the CI matches them and passes
* found some samples I hadn't updated. Maybe this is it?
For the following spec:
``` yaml
responses:
"200":
description: Pong.
content:
text/plain:
schema:
type: string
```
The generated client currently fails with `undefined response type`.
In this scenario, `v interface{}` is a string pointer which can be
populated regardless of the content-type.
* chore: add removing old files function to the scripts.
chore: add removing old files function to the scripts.
* docs: update by ./bin/go-gin-petstore-server.sh
* docs: update by ./bin/go-petstore-server.sh
* docs: update by ./bin/go-petstore-withxml.sh
* docs: update by ./bin/openapi3/go-petstore-server.sh
* docs: update by ./bin/security/go-petstore.sh
setting `customTestInstanceModule` will import typeclasses from the
specified module into tests/Instances.hs, to provide typeclass
instances for types not known by the generator
this property set using `--additional-properties`
example:
```
--additional-properties=customTestInstanceModule=CustomInstances
```
* [Kotlin Server Ktor] upgrade to stable version (1.1.3)
* [Kotlin Server Ktor] upgrade to stable version (1.1.3)
fix indentation
* [Kotlin Server Ktor] upgrade to stable version (1.1.3)
fix indentation
* add missing kotlin ktor in Server stubs list
* [Kotlin Server Ktor] upgrade to stable version (1.1.3)
fix compilation warnings
* The `ApiClient` will now have support to store and use HTTP Cookies (as APIKey auth).
* Use Cookie authentication for user management.
* - Updated Python related samples.
import mappings take the form of:
```
--import-mappings %DATATYPE%=%MODULE%
```
full example (with --type-mappings):
```
--type-mappings intstr.IntOrString=IntOrString
--import-mappings IntOrString=Kubernetes.CustomTypes
```
The import-mapped module will be an exposed module of the generated library.
The import mappings will be re-exported from ImportMappings, which itself is re-xported from Models.
Model.hs
```
module Kubernetes.Model (module Kubernetes.Model, module Kubernetes.ImportMappings) where
import Kubernetes.ImportMappings
```
ImportMappings.hs:
```
module Kubernetes.ImportMappings (module ImportMappings) where
import Kubernetes.CustomTypes as ImportMappings (IntOrString(..))
```
* [typescript-fetch] Support deep objects in query parameters
Support objects in query parameters as specified by the deepObject serialization style of OpenAPI 3:
`Object id = {"role": "admin", "firstName": "Alex"}` => `/users?id[role]=admin&id[firstName]=Alex`
Not supported due to ambiguity are arrays of objects (e.g. `person[name]=Alice&person[name]=Bob` could be an array of person objects with one name each, or one person object with an array property `name`).
* [typescript-fetch] Update sample files
* [typescript-fetch] URL-encode query parameter array elements
* [haskell-http-client] tests - in Arbitrary instances, reduce the size for non-primitive fields to prevent infinite recursion
* [haskell-http-client] tests - generate Nothing instead of (Just Null :: Maybe A.Value) to avoid roundtrip test errors
* add r petstore test
* run test in node 1
* fix r bash test
* fix typo
* fix permission error
* fix r installation error
* use diff r repo
* install latest r
* install curl
* use sudo for apt-get
* add no manual
* add sudo install
* better caching
* export env
* update lib location
* create lib dir
* update r lib dir
* [csharp-refactor] limit available target framework
This removes .NET 3.x, .NET 4.0, UWP, and the "5.0" option (which
referred to PCL 5.0). This gives us a smaller footprint for maintenance,
and doesn't necessarily block consumers from creating custom templates
to support those target frameworks. A workaround for users wanting these
options is to build against openapi-generator 3.3.4.
This moves logic for applying additional properties to strategies per
target framework, as a means to reduce maintenance overhead at the cost
of maybe a little redundancy between strategies.
* [csharp-refactor] Fixing .netstandard support
* [csharp-refactor] Fixing netcoreapp2.0 support
* [csharp-refactor] Regenerate samples
* Fix toLowerCase missing Local.ROOT
* [csharp-refactor] Remove unnecessary bash/batch scripts, update appveyor.
* Update appveyor.yml to test for dotnet/xunit
* Update appveyor.yml
Wrap xunit console environment variables in quotes, to prevent yaml syntax error.
* Update appveyor.yml
Try to use dos-style switches, attempting to remove yaml parse error in appveyor. Previous command matched appveyor docs, but resulted in the parser error.
* Update appveyor.yml
Wrap full commands for netstandard tests in quotes
* Fix linux style slashes in dotnet build, use dotnet test over appveyor xunit
* [csharp-refactor] Update generator docs
* feat(typescript-rxjs): make internal RAW functions pricvate
* feat(typescript-rxjs): regenerate samples
* feat(typescript-rxjs): drop unneeded function wrapping
* feat(typescript-rxjs): regenerate samples
* fix(typescript-rxjs): remove "raw" from function name
* feat(typepscript-rxjs): regenerate samples
* - Fix regex in Python server model code.
* - Adding (regular expression) `pattern` to user name and category name.
* - Update Python server related generated code samples.
* [PHP] fix bad links in Model docs
* [PHP] update php sample and fix tests using deleted Model
* [PHP] update php sample and fix tests using deleted Model
Removed myself from the core team and java technical committee because I have no more time to work on the project. See you guys, it was awesome. Keep up the good work!
* Reverted path changes. Removed additional files in php petstore-security-test folder. Generated new samples.
* Batch and Shell scripts modified to use the same specification files for sample generation. Sample files generated.
* Input file path in PHP client batch file equalized with the input path in the shell script file. Samples generated.
* Added a missing bracket in the PHP client mustache template.
* AbstractPhpCodegen apiDocPath and modelDocPath creation adjusted to always use slash instead of system seperator, since the values will just be used in Markdown files.
* Unnecessary samples removed.
* Fixed unnecessary diversions between Windows and Linux/Mac paths in PHP codegen.
* New samples generated after rebase.
* Fixed a sample in TypeScript Angular v2 which caused CI to break.
* add option to generate alias as model
* [JAXRS/CXF] Emit method bodies, test data (#1158)
New jaxrs-cxf-extended generator with options:
- supportMultipleSpringServices Support generation of Spring services
from multiple specifications
- generateOperationBody (boolean) Enables generation of fully
functional test/service method bodies that pass/return random
but valid values & models.
- loadTestDataFromFile (boolean) When true, generated method bodies
load test data from a generated JSON file. When false, generated
method bodies contain inline code to construct the test data.
- testDataFile (string) The path of a JSON file to contain generated
test data. The file is initially generated but editable; edits are
preserved by subsequent generations.
- testDataControlFile (string) The path of a JSON file to control test
data generation - specifically, to control the number of items
required in array properties, structured by API class
/ operation name / parameter name. The file is initially generated
but editable; edits are preserved by subsequent generations.
- tests for the jaxrs-cxf-extended generator, including the new options
Bug fixes:
- fix bug (DefaultGenerator): handle absolute paths in supporting file
spec
- fix bug (DefaultCodegen): process enums in allVars
- fix bug (AbstractJavaCodegen): support multiple inheritance via
allOf (inheritance code deleted, as a subsequent pull broke it)
- fix bug (JavaCXFServerCodegen): use operationId instead of nickname
(gets out of step with duplicate operationIds)
- fix bug (JavaCXFServerCodegen): set appropriate default
consumes/produces for operations with body parameters or non-void
returns (CXF providers don't handle */*)
- fix indentation (DefaultCodegen)
- add support for a system property openapitools.implementation.version
to specify the package implementation version when running non-JAR'd
classes in an IDE (otherwise {{{generatorVersion}}} evaluates to
'unset'.
* reformat code
* make sh executable
* fix template folder
* fix template folder, update samples
* run test data manually to avoid ci failure
* Fix typo in (unused) method name
* Tidy up Rust server generator
Remove some repetition and use some nifty new methods introduced in Java 8
* Start using Objects.hash and Objects.equals
* Convert more equals implementations over
To use Objects.equals
* Convert more hashCode implementations over
To use Objects.hash. Might have the pleasant side-effect of improving
performance a bit.
* Typescript 3.2
* Typescript spread operator
* Add vendor extension to the operation
* Remove url.URLSearchParams
* Generate form data in API
* Make axios scripts executable
* Reran generator
* Generate sample code
* Codegen having the model and api extra flag
* Revert to 2.4 Typescript
* COLLECTION_FORMAT.{{collectionFormat}} everywhere for consistency
* Consistency on the CollectionFormats, comment on the vendor extension
* Throw exception if api and model packages are not given
* Templates splitting api and models
* Post process the operations in the the process
* Beginning to get the axios tests up
* Ensure-up-to-date doesnt include TS/Axios tests
* Docs update for Typescript/Axios
* Merge master
* Api tests re-run
* Add windows bat file
* fix resources management
* remove obselete if statement
* throw exception when body is null
* prevent potentional nullpointerexception
* use valueOf instead of constructor
* remove duplicated code
* avoid unclosed resources
* remove redundant key
* fix broken tests
* fix sonar issues
* fix tests
* add Veamly as a company using openAPI generator
* revert back if statement to explicitly express the intention behind it
* chore: apply release mode for the Dockerfile
* docs: update by `./bin/go-gin-petstore-server.sh`
* docs: update by `./bin/openapi3/go-gin-petstore-server.sh`
* update ZenTest
ZenTest 4.11.1 requires rubygems 2.x.
But Ruby 2.6.0 include rubygems 3.x.
So we can't use ruby client in Ruby 2.6.0.
https://www.ruby-lang.org/en/news/2018/12/25/ruby-2-6-0-released/
ZenTest 4.11.2 removed rubygems dependency so we should update.
1883b210aa
* update ruby client sample
Now we've to manually comment/uncomment the line before/after the release.
Ideally the script "ensure-up-to-date.sh" should only run for SNAPSHOT version only.
* Add ability control out put generation and support to generate a library
* Roll back pom version - it seems to break the CI/CD checks
* Roll back pom version - it seems to break the CI/CD checks
* Match with genrators - no changes from new code
* Fix inadvertent changes
* No idea why the names of params have changed pet to body for instance
* Match generated document
* Clarify logic as per PR review
* Remove the generatewwwroot option and use the buildtarget option
* Remove ar artifactVerson (not used), update docs and TODO notes
* Add ability control out put generation and support to generate a library
* Roll back pom version - it seems to break the CI/CD checks
* Roll back pom version - it seems to break the CI/CD checks
* Fix inadvertent changes
* Match generated document
* Add ability control out put generation and support to generate a library
* Roll back pom version - it seems to break the CI/CD checks
* Roll back pom version - it seems to break the CI/CD checks
* Fix inadvertent changes
* Match generated document
* Clarify logic as per PR review
* Remove the generatewwwroot option and use the buildtarget option
* Remove ar artifactVerson (not used), update docs and TODO notes
This allows easier creation of custom `GenerateTask`. Specifically, this makes:
- generateModelTests
- generateModelDocumentation
- generateApiTests
- generateApiDocumentation
- withXml
optional, following the same pattern as other properties in GenerateTask.
Without this change, we get `java.lang.IllegalStateException: No value
has been specified for this provider.` until these properties are
specified for the task, when attempting to define a custom generate task
(such as one to generate API docs).
* Add test case which reproduces the issue
* Fix missing `nullable`
* Tweak property name
* Add test case which covers `Paths`
* Add test case for CodegenProperty.isNullable
* Fix missing CodegenProperty.isNullable
* Rename r -> referencedSchema
* 2125: java-resttemplate: Support collection formats in pathParams
* run ./bin/java-petstore-resttemplate.sh
run ./bin/java-petstore-resttemplate-withxml.sh
* changed the package install instructions to install the .tgz package instead of symlinking the package - otherwise you'll get trouble with links on windows
* samples added
* added samples
* [Java]: adds snapshotVersion CLI option and uses API version as artifactVersion by default
* fix some typos
* fix naming diff between branches
* ensure-up-to-date
* update samples
* [typescript-angular] Update default Angular version from 4.3 to 6.0 (NPM Client)
* [typescript-angular] Update default Angular version from 4.3 to 7.0 (NPM Client)
Based on this [issue](https://github.com/servo/rust-url/issues/416) the `utf8_percent_encode` doesn't percent encode `+` instead treats it as a space which is may cause a problem if the query parameters contain one. For example if we wanted to use a DateTime range in query parameters:
`{base_path}{path}?start=2019-02-12T00:00:00+00:00&end=2019-02-13T15:00:00+00:00`
These parameters may be decoded as:
```
start = 2019-02-12T00:00:00 00:00
end = 2019-02-13T15:00:00 00:00
```
To solve this I changed query parameters to be form-urlencoded using `url::form_urlencoded` based on what's done in [`rust` client generator](ea08106c80/modules/openapi-generator/src/main/resources/rust/request.rs (L106)).
* Issue 1766 Modified mustache files for Go to support nullable in the spec v3.0+; Updated model files running .sh scripts for Go.
* Add "nullable" to fake yaml
* Add sample script for OAS3
* Fix output folder (openapi3)
* Run bin/openapi3/go-petstore.sh
* Update samples
* Update jaxrs-jersey
* Update python and php samples
* Add bin/openapi3/go-gin-petstore-server.sh
* Run bin/openapi3/go-gin-petstore-server.sh
* Update bin/openapi3/go-petstore-server.sh to generate "nullable" samples
* Run bin/openapi3/go-petstore-server.sh
* Fix duplicated `import`
* Typescript 3.2
* Typescript spread operator
* Add vendor extension to the operation
* Remove url.URLSearchParams
* Generate form data in API
* Make axios scripts executable
* Reran generator
* Generate sample code
* Revert to 2.4 Typescript
* COLLECTION_FORMAT.{{collectionFormat}} everywhere for consistency
* Consistency on the CollectionFormats, comment on the vendor extension
* fix compilation error
Rust clients code format cleanup (with some breaking changes for model structures):
* Application of Rust style in client files (4 spaces padding). Remove useless blank lines.
* Replace getters/setters in models by public fields.
* Add a trailing comma in struct fields.
* Sample Rust clients regeneration.
Previously, if you used a packageName of the form "foo.bar.baz", half of the
generated files of the python generator went into a subdirectory
"foo/bar/baz" (correct), the other half went into a subdirectory
"foo.bar.baz" (incorrect).
* use double-quote string for enum value (#2081)
* use enumVars in templates for Ruby client (#2081)
* delete unnecessary line in enum model of Ruby client (#2081)
* update samples of Ruby client (#2081)
* fix#457 by introducing an HttpBearerAuth object
See https://github.com/OpenAPITools/openapi-generator/issues/457
Also https://github.com/OpenAPITools/openapi-generator/issues/1446 for typescript, https://github.com/OpenAPITools/openapi-generator/issues/1577 for python
Specs defined as follows currently generate BasicAuth and send an "Authorization: Basic [base64Encode(username + ":" + password)]" header
components:
securitySchemes:
bearer:
type: http
scheme: bearer
This change will generate code which uses a new HttpBearerAuth class, which will send a "Authorization: [scheme] [accessToken]" header.
This change is slightly larger and more impactful than simply using OAuth for bearerBearer, but it allows for scheme values other than bearer.
This fix was enabled by the recent commit of 80ca67cfda
This PR is an alternative to https://github.com/OpenAPITools/openapi-generator/pull/1972
* update petstore samples
* Update HttpBearerAuth mustache templates and samples
* correct the expected number of generated java client files
* update the retrofit2 HttpBearerAuth template and samples
* Add resttemplate-specific HttpBearerAuth mustache and samples
* add vertx-specific HttpBearerAuth template and samples
* add java webclient-specific HttpBearerAuth template and samples
Previously, if you used a packageName of the form "foo.bar.baz", half of the
generated files of the python generator went into a subdirectory
"foo/bar/baz" (correct), the other half went into a subdirectory
"foo.bar.baz" (incorrect).
* `jq` executable is a much cleaner way to get version number
* Using `jq` and getting `releases` instead of `tags` allows us to get latest stable release
This has the effect of making GitHub attribute the language of the project correctly (e.g. as Java). This is useful for sites which list projects by assigned language.
* Resolves#525 for Rust client generator with reqwest library.
* Use Reqwest "query" method to generate query URL.
* urlencode URL string parameters.
* Generate rust-reqwest client, and verify it compiles and work as intended.
* Map file params (to "&std::path::Path") and support multipart operations (with file params) in Reqwest library.
* Cleanup: template compression to remove unecessary blank lines in generated code.
* - support for PHP 7.1, Zend Expressive 3.2 and PathHander 0.4 for php-ze-ph generator
* - fixed mess with petstore samples (added new files, removed obsolete files)
* php-ze-ph:
- overwriting "*/*" media type for producers with "n/a" (PathHandler does not support that cause it makes no sense to return response with "Content-Type: */*")
- "array" return type declaration for handler methods with ambiguous "container" return type
- better way to generate attribute annotation stub for request body data with ambiguous "container" type
- fixed missing dependency in composer.json
- minor optimization for container.php
- samples for OAS3 petstore spec
* php-ze-ph:
- note about ext-yaml in stub README
- updated .gitignore
* php-ze-ph:
- logging '*/*' replacement as warning
* add multiple servers support to JS ES6
* multiple server support in js es5
* using exports in es5
* fix index check
* add oas v3 js es6 client to travis
* add multiple server support to python client
* various fixes
* minor fixes, add tests
* test oas2 python first
* fix tests
* fix issues reported by flake8
* update code format
* add python petstore to ensure up-to-date
* rearrange test
* fix E501
* fix tests
* add new files
* fix script permission
* fix index check
* update samples
* Allow connection on port != 80 or 443
In the current implementation a client can't connect on another port than 80 or 443
This commit allows to specify a host like "localhost:8080" when creating the client
The port is then used when initiating http requests
* Update Petstore Sample for CI
* Fix unused return value
* Update petstore sample
* Rename host parameter into authority
* Iniital docusaurus based site
* Remove error about default local being used by String.format
* Change pinned users to represent global presence rather than alphabetical order pinning
* Include generator indexes in ensure-up-to-date (docusaurus site and /generators/README)
* Add Font Awesome attribution footer
* Remove feature callout until it is completed
* Include NPM try it out section
* Improve "Getting Started" type docs
* Include new custom template documentation
* Updating templating and customization docs
* Add vendor extension docs
* Cleanup templating page(s).
* Move users to yaml file for easy edit.
* travis configuration, and baseUrl mods to image URLs
* [docs] Migrate FAQ, release summary from wiki
FAQ has been split into multiple smaller documents to better categorize
and allow users to find what they're looking for (in docs folder or in
new website).
Release summary information (versioning strategy and cadence) has been
migrated from the Wiki and clarified a bit.
Also adds copy button for all code snippets in website.
* Copy current contributing/code of conduct to website
* [docs] Creating a new generator
* update okhttp to latest version
* update templates to use okhttp3
* update java samples
* fix tests
* update tests under CI/samples.ci
* add tests to java client
* fix bin script to restore test files
* fix debugging
* add more tests and minor fixes
* update samples
* Clean up file output handling
This attempts to normalize all generators to use OS agnostic
File.separator.
It also cleans up some areas in code where we replace "." in full file
output path with File.separator. We should only be modifying directory
names we own, and should avoid modifying anything that can be provided
by a user.
It would probably be better to use Paths.get(…).toString() in all cases.
* Fix missed path separators in java codegen
* Adjust Java codegen path replacements
* Convert / in full path replacements, as / is forbidden in Windows, and noop elsewhere
* Use Paths.get where files are written, to better handle Windows path constraints
* Add test case that reproduce the issue #1782
* Fix missing RequestBody.required
* Update samples
./bin/utils/ensure-up-to-date
* Run ensure-up-to-date script
./bin/utils/ensure-up-to-date
* Add test case that reproduce issues
* Fix a problem that points to a folder that doesn't exist
* Improves for windows
* Run ensure-up-to-date script
./bin/utils/ensure-up-to-date
APIs may more than one auth method (for example both an app key and basic auth).
This changes the example to only initialize the config option once instead of once per auth method.
* [gradle] Add 4 boolean properties supported by codegenConfigurator
* [gradle] Add Windows workaround for Android Studio
After release 3.0.0, a guava dependency was updated and this exposed an
issue in Windows where Guava's CharMatcher.ASCII is called to validate a
path. The version of Guava referenced by OpenAPI Generator causes a
'NoSuchField' error because the referenced dependency names this static
field CharMatcher.Ascii.
This error is not surfaced on macOS, and appears to be Windows-specific.
This adds a potential workaround to the Gradle plugin's readme.
See #1818 for more details.
* Adds two models to the v2.0 spec, uses examples as defaults in python client
* Adds array default and type_holder_default and type_holder_example tests
* Re-generated python security client with ./bin/security/python-petstore.sh
* Changes comment text, rebased master
* Updates client + server samples
* Adds missing samples updates
* Changes python client to look for true or false with booleans in toDefaultValue
* Changes boolean casting to use Boolean.valueOf
* Adds deserialization fix for python tests
* Changes Mock to namedtuple in python deserialization tests
* Actually remove unittest.mock
* fix: force to decode as utf-8 when header contains application/json to avoid text garbling.
The original processing is using `response.body` to deserialize as json.
However, this is decoded by latin1 if the header contains only "application/json" instead of "application/json; charset=utf-8".
Because of this behavior, if the response body is encoded UTF-8 but the headers doesn't contain charset, the body will garbling.
cf: https://github.com/dart-lang/http/issues/175
Since playframework 2.6 returns "Content-Type: application/json" without "charset=utf-8", I changed this parsing algolithm.
* fix: force to decode as utf-8 when header contains application/json to avoid text garbling on error.
* fix: set fields to null if json value is null.
* rebuild dart2 petstore
* rebuild dart petstore
* rebuild petstore
* [DART]fix: set fields to null if json value is null.
* added auth support in apiClient
* added httperror response in detail
* added apikey to apiClient create
* remove unnecessary print statements
* remove freeing of apiclient object from apiclient_free function
* added auth params to apiClient_free function
* free only received data and apiClient object to be freed by user
* Add test case : generateFromResponseSchemaWithArrayOfModel
* Add test case : generateFromResponseSchemaWithArrayOfPrimitiveTypes
* Add test case : generateFromResponseSchemaWithModel
* Add test case : generateFromResponseSchemaWithNoExample
* Use String.format for windows
* Specify locale to prevent issues due to locale
* [java][webclient] register jackson modules on object mapper
* Regenerate client
* Removed findAndRegisterModules() call
* ObjectMapper is initialized only if NOT provided by client
* Remove (now) useless DateFormat inside buildWebClient signature and regenerate client
* [Slim] Add fork of token middleware
This commit will be dropped, when official repo approves submitted PRs.
Right now it's for test purposes only.
* [Slim] Adds token middleware to template
* [Slim] Move auth implementation to external classes
* [Slim] Update readme
* [Slim] Add config example
* [Slim] Remove deprecated package
Considered to use dyorg/slim-token-authentication for all authentication
schemes. User needs to decode and parse Basic token himself, but it's
pretty simple task and there are many code examples in
the web. Most of time solution is two lines of code.
* [Slim] Format phpdoc comments
I've changed PHP version to 7 and updated comments to follow main
recommendations. Used PHPCodesniffer rules are Generic.Commenting,
Squiz.Commenting, PEAR.Commenting. Of course I applied only reasonable
sniffs from this standards.
@category tag has been deleted as deprecated accordingly to
phpDocumentor offical docs.
Ref: http://docs.phpdoc.org/references/phpdoc/tags/category.html
* [Slim] Refresh samples
* Extract a method "flattenPaths" to reduce the scope of method
* Tweak
* Rename parameter name
* Extract a method "flattenModels" to reduce the scope of method
* Rename parameter name
* Rename: models -> components
* Delete comment
* Extract a method "flattenRequestBody" to reduce the scope of method
* Extract a method "flattenParameters" to reduce the scope of method
* Extract a method "flattenResponses" to reduce the scope of method
* Tweak types
* Reduce indentation
* Add test case : arbitraryObjectModelInline
* Delete legacy test case : testArbitraryObjectModelInline
* Add test case : arbitraryObjectModelWithArrayInlineWithoutTitle
* Delete legacy test case : testArbitraryObjectModelWithArrayInlineWithoutTitle
* Add test case : arbitraryObjectModelWithArrayInlineWithTitle
* Delete legacy test case :
testArbitraryObjectModelWithArrayInlineWithTitle
* Add test case : emptyExampleOnStringTypeModels
* Delete legacy test case : testEmptyExampleOnStrinngTypeModels
* Add test case : arbitraryObjectResponse
* Delete legacy test case : testArbitraryObjectResponse
* Add test case : arbitraryObjectResponseArray
* Delete legacy test case : testArbitraryObjectResponseArray
* Add test case : arbitraryObjectResponseArrayInline
* Delete legacy test case : testArbitraryObjectResponseArrayInline
* Add test case : arbitraryObjectResponseWithAdditionalProperty
* Delete legacy test case : testArbitraryObjectResponseMapInline
* Uncomment a valid test case
* Add test case : inline request body with title
* Delete legacy test case
* Delete unused import
* Delete legacy test case which is already implemented by other test
see InlineModelResolverTest#resolveInlineArrayResponseWithTitle()
* Delete legacy test case which is covered by other test
* Add test case : arbitraryObjectBodyParam
* Delete legacy test case : testArbitraryObjectBodyParam
* Add test case : arbitraryObjectRequestBodyProperty
* Delete legacy test case : testArbitraryObjectBodyParamInline
* Add test case : arbitraryRequestBodyArray
* Delete legacy test case : testArbitraryObjectBodyParamWithArray
* Add test case : arbitraryRequestBodyArrayProperty
* Delete legacy test case
- [ ] 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?
- [ ] 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))
<!--
Please follow the issue template below for bug reports.
Also please indicate in the issue title which language/library is concerned. Eg: [BUG][JAVA] Bug generating foo with bar
- [ ] Read the [contribution guidelines](https://github.com/openapitools/openapi-generator/blob/master/CONTRIBUTING.md).
- [ ] Ran the shell script under `./bin/` to update Petstore sample so that CIs can verify the change. (For instance, only need to run `./bin/{LANG}-petstore.sh` and`./bin/security/{LANG}-petstore.sh` if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in `.\bin\windows\`.
- [ ] Filed the PR against the [correct branch](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches): `master`~~, `3.4.x`, `4.0.x`~~. Default: `master`.
- [ ] Ran the shell script under `./bin/` to update Petstore sample so that CIs can verify the change. (For instance, only need to run `./bin/{LANG}-petstore.sh`,`./bin/openapi3/{LANG}-petstore.sh` if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in `.\bin\windows\`. If contributing template-only or documentation-only changes which will change sample output, be sure to [build the project](https://github.com/OpenAPITools/openapi-generator#14---build-projects) first.
- [ ] Filed the PR against the [correct branch](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches): `master`, `4.1.x`, `5.0.x`. Default: `master`.
- [ ] Copied 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.
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
*
* OpenAPI spec version: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -31,6 +31,8 @@ Please file the pull request against the correct branch, e.g. `master` for non-b
All the code generators can be found in [modules/openapi-generator/src/main/java/org/openapitools/codegen/languages](https://github.com/openapitools/openapi-generator/tree/master/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages)
If you want to add a new generator, follow the [new-generator](https://openapi-generator.tech/docs/new-generator) guide.
### Templates
All the templates ([mustache](https://mustache.github.io/)) can be found in [modules/openapi-generator/src/main/resources](https://github.com/openapitools/openapi-generator/tree/master/modules/openapi-generator/src/main/resources).
@@ -83,8 +85,8 @@ 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 script under `bin` folder. For example, run `./bin/ruby-petstore.sh` to update the Ruby PetStore API client under [`samples/client/petstore/ruby`](https://github.com/openapitools/openapi-generator/tree/master/samples/client/petstore/ruby) 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)
- Run the tests in the sample folder, e.g. in `samples/client/petstore/ruby`, run `mvn integration-test -rf :RubyPetstoreClientTests`. (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 `bin` and `bin/openapi3` folder. For example, run `./bin/python-client-petstore.sh` and `./bin/openapi3/python-client-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)
- 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)
- 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)
:notebook_with_decorative_cover: For more information, please refer to the [Wiki page](https://github.com/openapitools/openapi-generator/wiki) and [FAQ](https://github.com/openapitools/openapi-generator/wiki/FAQ) :notebook_with_decorative_cover:
:notebook_with_decorative_cover: The eBook [A Beginner's Guide to Code Generation for REST APIs](https://gumroad.com/l/swagger_codegen_beginner) is a good starting point for beginners :notebook_with_decorative_cover:
: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:
@@ -33,13 +42,22 @@
</div>
## Sponsors
If you find OpenAPI Generator useful for work, please consider asking your company to support this Open Source project by [becoming a sponsor](https://opencollective.com/openapi_generator). You can also individually sponsor the project by [becoming a backer](https://opencollective.com/openapi_generator).
OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an [OpenAPI Spec](https://github.com/OAI/OpenAPI-Specification) (both 2.0 and 3.0 are supported). Currently, the following languages/frameworks are supported:
4.0.0 (upcoming release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/4.0.0-SNAPSHOT/)| 20.12.2018 | Major release with breaking changes (with or without fallback)
5.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/5.0.0-SNAPSHOT/)| 13.05.2020 | Major release with breaking changes (no fallback)
4.1.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/4.1.0-SNAPSHOT/)| 15.07.2019 | Minor release (breaking changes with fallbacks)
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.
After downloading the JAR, run `java -jar openapi-generator-cli.jar help` to show the usage.
@@ -155,7 +175,7 @@ For Mac users, please make sure Java 8 is installed (Tips: run `java -version` t
exportJAVA_HOME=`/usr/libexec/java_home -v 1.8`
exportPATH=${JAVA_HOME}/bin:$PATH
```
<!-- /RELEASE_VERSION -->
### Launcher Script
One downside to manual jar downloads is that you don't keep up-to-date with the latest released version. We have a Bash launcher script at [bin/utils/openapi-generator.cli.sh](./bin/utils/openapi-generator-cli.sh) which resolves this issue.
@@ -205,7 +225,7 @@ To build from source, you need the following installed and available in your `$P
* [Java 8](http://java.oracle.com)
* [Apache maven 3.3.4 or greater](http://maven.apache.org/)
* [Apache Maven 3.3.4 or greater](http://maven.apache.org/)
After cloning the project, you can build it from source with this command:
```sh
@@ -226,7 +246,7 @@ Here is an example usage to generate a Ruby client:
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
(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`)
You can also download the JAR (latest release) directly from [maven.org](http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/3.0.0/openapi-generator-cli-3.0.0.jar)
<!-- RELEASE_VERSION -->
You can also download the JAR (latest release) directly from [maven.org](http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/4.0.2/openapi-generator-cli-4.0.2.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`
@@ -485,7 +513,7 @@ The server is sponsored by [Linode](https://www.linode.com/) [
Please refer to [online-openapi-generator.md](docs/online-openapi-generator.md) on how to run and use the `openapi-generator-online` - a web service for `openapi-generator`.
Please refer to [online.md](docs/online.md) on how to run and use the `openapi-generator-online` - a web service for `openapi-generator`.
### [3.4 - License information on Generated Code](#table-of-contents)
@@ -499,16 +527,28 @@ When code is generated from this project, it shall be considered **AS IS** and o
## [4 - Companies/Projects using OpenAPI Generator](#table-of-contents)
Here are some companies/projects (alphabetical order) using OpenAPI Generator in production. To add your company/project to the list, please visit [README.md](README.md) and click on the icon to edit the page.
@@ -529,9 +572,32 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- 2018/06/27 - [Lessons Learned from Leading an Open-Source Project Supporting 30+ Programming Languages](https://speakerdeck.com/wing328/lessons-learned-from-leading-an-open-source-project-supporting-30-plus-programming-languages) - [William Cheng](https://github.com/wing328) at [LinuxCon + ContainerCon + CloudOpen China 2018](http://bit.ly/2waDKKX)
- 2018/07/19 - [OpenAPI Generator Contribution Quickstart - RingCentral Go SDK](https://medium.com/ringcentral-developers/openapi-generator-for-go-contribution-quickstart-8cc72bf37b53) by [John Wang](https://github.com/grokify)
- 2018/08/22 - [OpenAPI Generatorのプロジェクト構成などのメモ](https://yinm.info/20180822/) by [Yusuke Iinuma](https://github.com/yinm)
- 2018/09/12 - [RepreZen and OpenAPI 3.0: Now is the Time](https://www.reprezen.com/blog/reprezen-openapi-3.0-upgrade-now-is-the-time) by [Miles Daffin](https://www.reprezen.com/blog/author/miles-daffin)
- 2018/10/31 - [A node package wrapper for openapi-generator](https://github.com/HarmoWatch/openapi-generator-cli)
- 2018/11/15 - [基于openapi3.0的yaml文件生成java代码的一次实践](https://blog.csdn.net/yzy199391/article/details/84023982) by [焱魔王](https://me.csdn.net/yzy199391)
- 2018/11/19 - [OpenAPIs are everywhere](https://youtu.be/-lDot4Yn7Dg) by [Jeremie Bresson (Unblu)](https://github.com/jmini) at [EclipseCon Europe 2018](https://www.eclipsecon.org/europe2018)
- 2018/12/09 - [openapi-generator をカスタマイズする方法](https://qiita.com/watiko/items/0961287c02eac9211572) by [@watiko](https://qiita.com/watiko)
- 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/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)
- 2019/02/26 - [Building APIs with OpenAPI: Continued](https://medium.com/@ratrosy/building-apis-with-openapi-continued-5d0faaed32eb) by [Ratros Y.](https://medium.com/@ratrosy) in [Google Cloud Platofrm Blog](https://medium.com/google-cloud)
- 2019-03-07 - [OpenAPI Generator で Spring Boot と Angular をタイプセーフに繋ぐ](https://qiita.com/chibato/items/e4a748db12409b40c02f) by [Tomofumi Chiba](https://github.com/chibat)
- 2019-03-25 - [Access any REST service with the SAP S/4HANA Cloud SDK](https://blogs.sap.com/2019/03/25/integrate-sap-s4hana-cloud-sdk-with-open-api/) by [Alexander Duemont](https://people.sap.com/alexander.duemont)
- 2019-03-25 - [OpenAPI generatorを試してみる](https://qiita.com/amuyikam/items/e8a45daae59c68be0fc8) by [@amuyikam](https://twitter.com/amuyikam)
- 2019-03-27 - [OpenAPI3を使ってみよう!Go言語でクライアントとスタブの自動生成まで!](https://techblog.zozo.com/entry/openapi3/go) by [@gold_kou](https://twitter.com/gold_kou)
- 2019-04-17 - [OpenAPIによるスキーマファースト開発の実施サンプルとCloud Runについて](https://tech-blog.optim.co.jp/entry/2019/04/17/174000) by [@yukey1031](https://twitter.com/yukey1031)
- 2019-04-18 - [How to use OpenAPI3 for API developer (RubyKaigi 2019)](https://speakerdeck.com/ota42y/how-to-use-openapi3-for-api-developer) by [@ota42y](https://twitter.com/ota42y) at [RubyKaigi 2019](https://rubykaigi.org/2019)
- 2019-04-29 - [A Beginner's Guide to Code Generation for REST APIs (OpenAPI Generator)](https://gum.co/openapi_generator_ebook) by [William Cheng](https://twitter.com/wing328)
- 2019-05-01 - [Design and generate a REST API from Swagger / OpenAPI in Java, Python, C# and more](https://simply-how.com/design-and-generate-api-code-from-openapi) by [Simply How](https://simply-how.com/)
- 2019-05-17 - [Generate Spring Boot REST API using Swagger/OpenAPI](https://www.47northlabs.com/knowledge-base/generate-spring-boot-rest-api-using-swagger-openapi/) by [Antonie Zafirov](https://www.47northlabs.com/author/antonie-zafirov/)
- 2019-05-24 - [REST API 代碼生成指南 (OpenAPI Generator)](https://gum.co/openapi_generator_ebook_big5) by [William Cheng](https://twitter.com/wing328)
- 2019-06-24 - [Kubernetes Clients and OpenAPI Generator](https://speakerdeck.com/wing328/kubernetes-clients-and-openapi-generator) by [William Cheng](https://twitter.com/wing328) at [Kubernetes Contributor Summits Shanghai 2019](https://www.lfasiallc.com/events/contributors-summit-china-2019/)
- 2019-07-04 - [REST API のためのコード生成入門 (OpenAPI Generator)](https://gum.co/openapi_generator_ebook_big5) by [William Cheng](https://twitter.com/wing328), [中野暁人](https://github.com/ackintosh), [和田拓朗](https://github.com/taxpon)
## [6 - About Us](#table-of-contents)
@@ -540,38 +606,41 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
OpenAPI Generator core team members are contributors who have been making significant contributions (review issues, fix bugs, make enhancements, etc) to the project on a regular basis.
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.