* update release version, disabled ensure up to date script
* update release table
* update stable version to 3.2.3
* update samples/meta-codegen/lib/pom.xml and release_version_update.sh
An update was made in #876 to remove version from the generated artifact
for openapi-generator-online. The change is missing the -online suffix.
My original glob pattern put the * in the wrong place for
maintainability.
* Add callback model (#372)
This adds a new `CodegenCallback` class, a list of which is now present in
`CodegenOperation`. `CodegenOperation` now also includes a
`isCallbackRequest` boolean since `fromCallback()` (the method added to
`DefaultCodegen` to process operations which contain OpenAPI callbacks)
uses CodegenOperation as the model for a callback request.
A `CodegenOperation` which represents a callback request will have a
`null` operation id.
A test is included for this new model.
* Generate callback request `operationId`
* Add license to `CodegenCallback`
* Kotlin Spring initial bootstrap
* Basic configuration construction for Kotlin Spring
* Wired up with comand line client
* Initial kotlin spring boot application generated using gradle kotlin-dsl
* Added basic support for generating models
* Basic controllers generated without endpoints generated
* Basic spring boot app generated with models and controllers
* Added fix for type mapping in AbstractKotlinCodegen. Originally it was mapping list o kotlin.Array instead of kotlin.collections.List
* Fixed return type mapping
* Sorted bash springboot petstore generator script
* Implemented toVarName in AbstractKotlinCodegen to better handle some edgecases
* Checking for reserved words or numerical starting class names in AbstractKotlinCodegen
* Implemented toOperationId in AbstractKotlinCodegen
* Fixed types that were not correctly being mapped to primitives (byte / arrayOf / mapOf)
* Escaping dollar symbols in function names
* Added support for outter enum classes
* Added basic support for generating services
* Removed option for generated config package. Added option to enable/disable generated global exception handler
* Added configuration option to generate gradle. Generated maven pom.xml file as default
* Fixed up bash scripts for generating test sample code
* Added configurable option for Swagger Annotations
* Added configurable option for generating service interfaces and service implementations
* Added README generation
* Enable optional bean validation
* Added kotlin spring sample to CircleCI pom.xml
* Removed kotlin spring boot from .gitignore
* Minor fixes from PR comments for user submission (#1)
* Minor fixes from PR comments for user submission
* Puts braces around conditional block bodies with one-liner bodies.
* Modifies README.mustache to use artifact id and version supplied by
user (or default configuration)
* Targets templates under resource directory explicitly to prevent the
need to rebuild for evaluation of template-only changes.
* [kotlin-spring] Remove comments referencing sbt in bash scripts
* List of changes based upon code review:
* Additional comments around how we set the title based off the open api spec
* Fixed missing `beanValidationCore` template
* Put the lambdas into the lambda object as other generators do (Ktor, C#, cpp)
* Bump swagger-annotations version to latest pre-2.0 version (1.5.21)
* Set kotlin version to 1.2.60
* Updated README to set port based on template
* Added more additional properties to build bash scripts
* Removed `defaultBasePath.mustache` in place of using {{contextPath}} directly
* Log warning for when `serviceImplementation` is set t o true
* Updated samples
* Generating ConstraintViolation Exception Handler, as Springboot doesnt correctly catch the error and return bad request. Handling other exceptions a litle better
* Small fix for date time mappings (plus sample re-gen)
* Minor fix in README template, where port was using wrong variable
* Fix missing jackson-dataformat-xml dependency
* Fix build - needed to re-run kotlin-server-petstore.sh
* Fixes after merge with master
* Revert "Small fix for date time mappings (plus sample re-gen)"
This reverts commit 4152dc78b4813da71c675272ca90fb31a333aea1.
* Moved type mappings to Kotlin Spring generator
* Regenerated samples
* Regenerated samples
* [Slim] Add PHP CodeSniffer package
* [Slim] Add phpcsStandard generator option
We follow PSR-2 coding style guide in PHP generators. It might be convenient
for users to specify own coding standard without modifying templates. That's
why I've added this option.
At first, I thought to add option validation and accept only standards from
predefined list. But this option also can be a full path to the standard's
root directory, I've changed my mind. User should use this option with caution.
Ref to all PHP CodeSniffer CLI options:
https://github.com/squizlabs/PHP_CodeSniffer/wiki/Usage
* [Slim] Extend readme with PHP CodeSniffer docs
* [Slim] Format templates to meet PSR-2
* [Slim] Refresh samples
* Remove using model namespace when model is unused
* Add comments to clarify introduction of hasModelImport at API/operations level instead of operation/vendorExtensions level.
* Improve handling of all primitive types
* Fix missing includes in case of simple APIs
* Fix minor error in template function
* Remove tabs
* Refactor code for simplicity
* Remove tabs
* rework the router for handling multiple path param
* rework router to handle multiple path parameters
* rework router to handle multiple path parameters
* rework router
* Add support for Multi path param
* Add comments to code block and remove duplicate parameters
* Remove tabs :(
* Add missing imports after resolving conflict
* Use contextPath variable for RestApplication templates
* Update generated RestApplication.java files, as they are skipped by default otherwise
* Update Petstore sample for jaxrs so that CIs can verify the change
* Added forbiddenapis check and fixed the findings in the normal code
* Fixed forbiddenapi findings in java templates and samples.
* Generated all samples for Java.
Fix crash due to concurrent access of managerStore dictionary.
Swift2 and Swift3 had been enhanced respectively with the following
pull requests: #3873#5610
I had previously copied the multi-task description in the gradle
plugin's docs from a response made in an issue. The reference to 'the
old swagger plugin' have no context in the gradle plugin README, so I've
updated that wording.
Also, I found that the link to openapi-generator-cli.sh in the root
README was broken. It pointed to openapi-generator.cli.sh instead of
openapi-generator-cli.sh.
* [Slim] Update main documentation
Kotlin server README has been used as a ref. There are no links to apis and
models docs, because Slim codegen doesn't provide them right now.
Also I'm not sure about white spaces, but we can change it anytime in future.
* [Slim] Refresh samples
* update all swift samples
* fix method name starting with number literal
* better handling of operationId starting with number
* update swift 4 samples
* [PHP] Remove PHP related rules from root gitignore
After conversation with @ackintosh we've agreed that every PHP codegen
should create it's own `.gitignore`. Client libraries(SDKs) should ignore
`composer.lock` file while server stubs better do opposite.
* [PHP] Set .gitignore as default supporting file
* [PHP] Add default gitignore to Client SDK
* [PHP] Add default gitignore to Laravel
* [PHP] Add default gitignore to Lumen
* [PHP] Add default gitignore to Silex
Seems like issue #663 and pull request #681 missed this security script,
I've changed output path in bin/security/silex-petstore-server.sh.
* [PHP] Update Slim
* [PHP] Add default gitignore to Symfony
I've copied few old rules from root gitignore to local one. These rules
should be reviewed by original SymfonyCodegen authors.
* [PHP] Add default gitignore to Zend
* [PHP] Refresh Openapi3 client samples
* [PHP] Add refs to .gitignore templates collection
It makes sense that error messages should be written to STDERR and
all others should be written to STDOUT (as shown in #207). However, it
would be convenient to parse the debugging output when the relevant
flags are set.
This change will disable logging to STDOUT and redirect all log messages
to STDERR when any of the debug flags are set. (Resolves#473)
A user asked about how one would approach generating code from multiple
specifications. Adding this information to the README, as it seems
others would find the information helpful. Also explaining how to use
tasks from this plugin as this may not be commonly known or intuitive
beahvior.
* fix float/double default value
* better code format
* better CI for openapi3 batch files (C# client)
* update nancyfx samples
* pipe output to /dev/null to reduce log size
* fix windows batch file
* add C# API client generated by OAS3 spec
* Unit-Test for JavaJAXRSSpecServerCodegen.
* Path generation for primary resource fixed.
* Unit test for toApiName.
* Review-Feedback: blank line removed.
* create sample with "jaxrs-jersey" language & openapi v3
* circle ci setting
* fix typo. also add "jaxrs-jersey" to all samples profile
* artifactId conflicts. rename.
* generate samples with "./bin/openapi3/jaxrs-jersey-petstore.sh"
The gradle plugin sets all System properties before generation, then
reverts them back to their original state.
System.getProperty/setProperty return null if the property was not
previously set. The Kotlin map was defined with non-nullable key/value
constraints, so setting something not commonly set (modelDocs: "false")
would result in an runtime exception.
This changes the map to support nullable values, and rather than setting
a null System property at the end, it clears those which previously had
no value.
* #582 Fixed the generation of model properties whose data type is a composed (allOf) schema. Before this fix, the data type name of the generated property was that of the first model participating in the allOf clause. After this fix the property data type is again as expected: the one of the composed schema and not one of its parents.
* Added unit test in order to have regression testing in the fix for the #582 issue (references to composed schemas should not get unaliased for them to get a proper data type name in the generation of model properties).
* Run ./bin/utils/ensure-up-to-date to re-generate samples run in the CI.
* Removed tabs from ModelUtilsTest.java
* sample server projects "jaxrs-spec", "jaxrs-spec-interface", and "jaxrs-spec-interface-response" should be tested
* update jax-rs api to 2.1, in which @PATCH annotation is available
add jackson annotation dependency
* add joda-time to dependency
* modify mustache template to add @JsonCreate, @JsonValue import
* fix return type of enum value() method
* add InputStream import
* Attachment class is in apache cxf. spec should not depend on it
* re-generate sample jaxrs-spec, jaxrs-spec-interface, and jaxrs-spec-interface-response
* Add elm template parameter to the samples testing script
* Update elm-date-extra package; fixes#458
* Update generated elm samples
* Use Elm doc comments; remove some unneccessary newlines
* Update generated Elm samples
* Remove unnecessary parenthesis around non-optional container type
* prevent throwing another exception if the request fails eg connection reset
* prevent throwing another exception if the request fails eg connection reset
* [Slim] Add Basic Authentication Middleware
User needs to add own implementation to verifyCredentials method in AuthBasic.php.
* [Slim] Update README template
I'm not sure about `middlewareSrcPath` variable. I'll fix it in following PRs
if path is broken.
Hope that notice in README catches attention and most of users will read it.
* Revert "[Slim] Update README template"
This reverts commit 204ee02fd8.
* Revert "[Slim] Add Basic Authentication Middleware"
This reverts commit 6a8e03079a.
* [Slim] Add "tuupola/slim-basic-auth" package
Package "tuupola/slim-basic-auth" 3.1.0 requires PHP 7, that's why I
set it's version to ^3.0.0 in Composer. Minimum version will be
3.0.0-rc.1 which supports PHP 5.5. I've tested build with PHP 7, it
would be nice to check build with PHP 5.5 someday.
* [Slim] Update README template
Not sure about forward slash in path to SlimRouter class. I will fix it
in upcoming PRs if necessary.
* [Slim] Refresh samples
* Fixing maven examples: set version to last released version and other improvements
* Include example poms in the "release_version_update_docs.sh" script
* Remove warnings and add custom request sending
* Remove duplicate code from subclass and add missing setupRoutes
* Removed redundant override
* Add serialization of responses
* Fix CI failure
* Add inline function to duplicate code.
* Make const reference wherever possible
* Add support for Array of Primitive types.
* Add Array of Primitive support for Error response
* Update for multiple path params
* Ignore additionalProperties
rust-server doen't yet support them, and they cause quite a bit of havoc at the moment (ending up as the `HashMap` type).
* Use .equals() rather than `==`
* Add support for multiple rust-server samples
Though we only have the one as yet. This will make it easier to move rust-server back on to the main test spec, whilst preserving the ability to have rust-specific test specs.
* Rust samples need unique names
* Move samples to a dedicated directory
So that there is nothing else in the folder where they live so that the workspace definition in the root Cargo.toml can be simple.
* improve validation error message
* minor improvement to qt5 c++ server
* fix invalid spec (causing shippable failure)
* Revert "minor improvement to qt5 c++ server"
This reverts commit 56f356cc51.
This commit includes the following changes:
- Fix docs not generating parameter descriptions, add rust sample.
- Add example to doc output.
- Add basic scope reporting.
- Stringify the JSON "Example" objects for response schemas.
- Prettify JSON examples in response schemas.
- Parse and present multiline response descriptions.
- Add API error details to docsgen.
- Add read only markers to read only properties.
- Fix up style document indentation.
- Add support for `x-shared-errors`, an extension to define common error types that can be shared across a microservice framework.
* Initial wiring to get the QHttpEngine Server running for Qt5 server
* Add wiring for build environment
* Add current generated files
* Update README.md
* Solved Build for Docker and Host
Wired up main
TODO : Route API call to handlers
* Wire up routes
* Wiring up routes update
* Convert Path to QHttpEngine format
* Rename some files
* Extract query Parameters and path parameters
* Removed pri file, Qt can read CMakeLists.txt
* Initial support of deserialization
* Adding initial support for response serialization
* Setup simple signal handler to quite the server with Ctrl+C in a container and on the host
* Remove unneeded function
* Add executable permission to script and move from Debian to Alpine for Dockerfile
* Add stringValue of missing types
* Unify toJson'xxx' APIs the same way like setValue
* Rework to remove all pointer usages, pass by const references, simplify model, add emit signals to default handlers
* Validate spec on generation by default
Adds a validation parameter to CodegenConfigurator, and passes through
options from CLI, Maven Plugin and Gradle Plugin to that property.
Default is to validate the spec during generation. If spec has errors,
we will output errors as well as warnings to the user.
Option can be disabled by passing false to validateSpec (Maven/Gradle)
or --validate-spec (CLI).
* Prepare version 3.1.1-SNAPSHOT
* fix version
* Use last prod version for the sample
* Update README.md
Fix
* [cli] Option parser does not support true/false for boolean options
* Adds a simple bash completion script
This works with any loading script named openapi-generator-cli.
That is, if you've installed via homebrew or created a script similar
to https://gist.github.com/jimschubert/ce241b0c78140e364f46914ef8ec4103
This script is relatively simple, relying on fallback to the recently
add "completion" command to the CLI project.
The script includes a possible extension to allow for per-language
options to autocomplete when the user is applying additional properties.
This work is currently commented out, as it may be simplified a bit in
the CLI first.
* Add launcher script and "install" instructions
* Port GMock feature from NativeInstruments
swagger-codegen fork:
https://github.com/NativeInstruments/swagger-codegen/pull/9
* Update petstore for Mockable APIs
* Fix shared_ptr in templates for File params
* Add guards in templates for GMock APIs
* Regenerate samples without GMocks
* Add useful constructors for GMock APIs
* Add constructors to API header interface
* Update samples with explicit monadic constructors
* Add default implementations for destructors
* Add RepreZen API Studio to Companies/Projects
Per discussion with @wing328
* Corrected alphabetical order
Corrected alphabetical order of implementations, in response to review comment from @wing238.
* BugFix: [Dart] Cannot get/set data from json when underscore("_") is included in spec.yaml's property name
Because the property name is always lowerCamelCase
* BugFix: When type is "Date", it is not correctly output
* [Rust] Move request logic into standalone file
This reduces the number of variables which are used in the generated
operations, thus fixing #512.
This also fixed a TODO related to URI parsing errors.
Other than that, it is meant to be functionally identical.
* [Rust] Add support for non-file form params
Up until now, they just weren't there at all
* [Rust] Use more rustic terms in example
* [rust-server] drop 'file' support
In swagger v2, we had 'binary', 'byte', and 'file'. OpenAPI v3 only has
the former two. This commit drops the old 'file' handling. This has the
side-effect of removing a half-complete implementation of form parameter handling.
This removes the ability to send files as streams, so will make life
harder for those wishing to send large files without running out of
memory.
* Remove all remaining uses of `hasFile`
* Add the Possibility to fetch dependencies needed by the generated code
* Fix typo
* Make External Libraries default to false
* Add parameter string to the javadoc comment
#513 Fixed error that causes exception when trying to perform HTTP requests without a body and an empty Object is used as body instead. In these cases an exception is thrown indicating that it is not possible to find a message converter for java.lang.Object and application/json.
* typescript-jquery: fix promise resolution
The type annotation that is generated for an API states that the
JQueryPromise<...> will be resolved with a single value.
The implementation, on the other hand resolves with two.
This changes the implementation to resolve the promise in accordance
with the type annotation.
It also adds another type specifying what will be passed if the promise
is rejected.
* Update petstore sample for typescript-jquery
* Generate RequestParser trait to allow retrieving operation ID in middlewares
* Update function name
* Fix incomplete comment
* Add comment poitning out auotgenerated duplication
* Final generation of sample scripts
* MMORCH-913 - Allow passing wrapped hyper clients to codegen
* Deprecate old API for back-compatibility rather than removing it
* Actually test Rust-server example integrations
* Added a .gitignore to ignore the build folder
* Added a CMakeLists and a basic implementation of a double linked list
* Added the pet model
* changed the behaviour when a list gets freed - the data of each element doesn't get freed anymore
* Added the tool uncrustify in order to make code look better
* Uncrustified code
* added an implementation(constructor and deconstructor) for the category model
* Added a third party JSON library
* The pet struct now uses pointers for its members; the pet struct now has a proper constructor and a basic toJSON method
* The pet model now gets fully serialized into JSON
* Fixed the example url...
* Added third party library libcurl
* Modified category struct and added an unit test
* Added a foreach macro and added two functions
* Added a tag model and an unit test
* the pet struct now uses no double pointer for it's name anymore and no pointer for the enum status anymore; the pet struct can now be fully converted to json and parsed from json
* Added the struct APIClient and an unit test
* Uncrustified the unit test for category
* Added ifdef in pet.h to prevent errors
* Added one API endpoint to get a pet by id
* Added a "== 0" comparison that I forgot
* Added some kind of debug functionality to test-petApi.c
* Removed the DEBUG define
* Moved the c petstore example from samples/client/c to samples/client/petstore/c
* Renamed function getPetById to petApi_getPetById to avoid name collisions
* Removed unecessary method in list.c
* Added POST functionality; added petApi_addPet method and improved unit-test for petApi; cleaned up some code in apiClient
* removed two methods in list.c(string/tag to JSON) and moved their code directly in the pet_convertToJSON method
* Removed old, already commented out, puts artifact in apiClient.c
* Added a convertToJSON method to the category model
* Added a convertToJSON method to the tag model
* changed how the convertToJSON method works in the pet model
* Adjusted the unit-tests on how the convertToJSON method now works(now returns a cJSON* instead of a char*)
* apiClient_t now needs to be given to API methods as a parameter. This means apiClient_t can now be reused in multiple methods.
* Added an untested concept for how authentication could be handled
* Tested basicAuth using wireshark and added untested OAuth2 feature
* Added support for api key authentication using the http-header and tested functionality using wireshark
* Renamed the dataToPost parameter in apiClient_invoke to bodyParameters
* Renamed apiKey_t to keyValuePair_t and implemented GET queries
* Spaces are now being replaced with + in querryParameters
* Renamed assembleHeader to assembleAPIKeyAuthentication and added support to change the request type
* Implemented the option to provide custom httpHeader fields to apiClient_invoke
* Added support for form parameters to the apiClient_invoke method
* update petstore sample
* update go generated code comment
* update samples for go petstore
* update code generation comment
* update samples for go petstore
* Trigger CI due to previous Shippable race condition
* add -DwithGoCodegenComment=true option
* reset samples
* add withGoCodegenComment=true to bin/go-petstore-withxml.sh
* update samples/.../go-petstore-withXml using -DwithGoCodegenComment=true
* Python client pure library package
* check onlyPackage CLI option
* run /bin/python-petstore.sh, update the python samples for CI
* onlyPackage local variable instead of classp property
* fix CI: __future__ absolute_import must be first in file
* update samples
* generateSourceCodeOnly
* updated samples
* support form-data file MIME `name` parameter
* update test spec and Go client for form-data file name
* update samples for ensure-up-to-date
* update mustache template
* update samples for Go client
* improve assignment location
* update samples
* show ivy2 cache
* fix typo
* list dir before saving cache
* list dir before saving cache
* cache .git
* replace tab with space
* remove ls
* restore tests
* [Slim] Decouple Api files into separated PHP Classes
This enhancement required for modular testing and code coverage generating.
* [Slim] Define all app routes in SlimRouter PHP Class. Generate new samples
* delete Go client sample output dir before rebuild
* purge go-petstore-withXml samples output dir before build
* update samples
* fix go-petstore-withxml.sh echo path
* fix schema/definition name as 'file'
* update samples
* Trigger CI due to previous Shippable race condition
* add fix with toModelName(openAPIType)
* update tests for file schema/definition name
* Update 3.0 test spec
* update samples
* update samples for jaxrs-cxf
* Trigger CI due to previous Shippable race condition
* add back explode
* add file suffix fix for _test.go
* Trigger CI due to previous Shippable race condition
* Trigger CI due to previous Shippable race condition
* Trigger CI due to previous Travis CI stall
* Trigger CI due to previous Travis CI stall
* Trigger CI due to previous Shippable race condition
* add Go client test testFilenames
* Added a .gitignore to ignore the build folder
* Added a CMakeLists and a basic implementation of a double linked list
* Added the pet model
* changed the behaviour when a list gets freed - the data of each element doesn't get freed anymore
* Added the tool uncrustify in order to make code look better
* Uncrustified code
* added an implementation(constructor and deconstructor) for the category model
* Added a third party JSON library
* The pet struct now uses pointers for its members; the pet struct now has a proper constructor and a basic toJSON method
* The pet model now gets fully serialized into JSON
* Fixed the example url...
* Added third party library libcurl
* Modified category struct and added an unit test
* Added a foreach macro and added two functions
* Added a tag model and an unit test
* the pet struct now uses no double pointer for it's name anymore and no pointer for the enum status anymore; the pet struct can now be fully converted to json and parsed from json
* Added the struct APIClient and an unit test
* Uncrustified the unit test for category
* Added ifdef in pet.h to prevent errors
* Added one API endpoint to get a pet by id
* Added a "== 0" comparison that I forgot
* Added some kind of debug functionality to test-petApi.c
* Removed the DEBUG define
* Moved the c petstore example from samples/client/c to samples/client/petstore/c
* Renamed function getPetById to petApi_getPetById to avoid name collisions
* Removed unecessary method in list.c
* Added POST functionality; added petApi_addPet method and improved unit-test for petApi; cleaned up some code in apiClient
* removed two methods in list.c(string/tag to JSON) and moved their code directly in the pet_convertToJSON method
* Removed old, already commented out, puts artifact in apiClient.c
* Added a convertToJSON method to the category model
* Added a convertToJSON method to the tag model
* changed how the convertToJSON method works in the pet model
* Adjusted the unit-tests on how the convertToJSON method now works(now returns a cJSON* instead of a char*)
* apiClient_t now needs to be given to API methods as a parameter. This means apiClient_t can now be reused in multiple methods.
* Added an untested concept for how authentication could be handled
* Tested basicAuth using wireshark and added untested OAuth2 feature
* Added support for api key authentication using the http-header and tested functionality using wireshark
* Delete unused IF statement
JSON_PRETTY_PRINT is available since PHP 5.4.0
* Update samples
- bin/php-petstore.sh
- bin/security/php-petstore.sh
- bin/openapi3/php-petstore.sh
* Added serviceSuffix and serviceFileSuffix parameters to control the suffixes of generated class and file names
* Updated TypeScriptAngularClientOptionsProvider to include the new serviceSuffix and serviceFileSuffix parameters
* Fixed part in generator where hardcoded 'Service' suffix was used.
* Made the . in the service file name part of the config setting
* Updated cli message
* [Slim] Shell script points to petstore-with-fake-endpoints-models-for-testing.yaml. Slim init and new models has been generated.
* [Slim] Bugfix. Special value */* in opperation produces escaped to avoid PHP syntax errors.
* [Slim] Add own private static final LOGGER
* [Slim] Bugfix. toModelName method copied from PHPClient codegen which handles Fake Petstore spec much better.
* [Slim] Sort operations in supporting files data to avoid shadowing static routes.
* [Slim] Mustache index.php update. Params parsing enhanced.
* [Slim] Tiny cleanup. Unnecessary empty space removed.
* [Slim] Security fix. toOperationId method copied from PhpClientCodegen.
* [Slim] Bugfix. formData params parsing restored.
* [Slim] Proper .gitignore added to PhpSlimServerCodegen. Vendor folder with all dependencies removed to keep repo more clean.
* [Slim] Slim dependency update to 3.10.0. Few test fake endpoints fixed by this upgrade.
* Added missing includes for optional
* Removed shared pointer from pistache generator
* Changed Net namespace to Pistache Namespace
* Clean up code and removed unnecessary lines in mustache files
* Removed remaining shared pointer syntax
* Code review fixes + updated samples
* Added const to all model setter functions, and reference to all params in setters that are not primitives
* Refactored modelbase
* Removed const
* Updated samples
* add test case for ref to map (boolean) in fake petstore spec
* fix alias to map in model properties
* remove logging from new method
* update samples for the new map test case
* fix javadoc string
* skip testSanitizeNestedInvalidValue in php test
* skip test in php oas3 client
* add logic to handle outer enum
* update samples
* fix alias in model's allOf
* generate models for map def
* update petstore samples
* update petstore samples
Motivation
-------------
Open API generator previously wasn't case sensitive when checking for reserved words in the typescript generator. This will allow us to have the "Package" model in ProductCatalogs without needing to rename anything.
Modifications
------------------
Duplicated the C# logic for reserved words (per the @jimschubert from openapitools' suggestion)
* #125: Correctly handle multiple valid responses
* Fixed defaultResponses
* Fixed void-returns
* Fixed multiple return-types without an actual type
* Update the samples under openapi3 folder
* Restore test classes to commit 5340c35ce1
* Fix samples/client/petstore/java/feign
* Fix samples/client/petstore/java/jersey1
* Fix samples/client/petstore/java/jersey2-java8
* Fix samples/client/petstore/java/jersey2
* Fix samples/client/petstore/java/okhttp-gson
* Fix samples/client/petstore/java/resttemplate/src/test/java
* Move "StringUtilTest.java" to "samples.ci"
and add copy command in *.sh scripts
* Fix echo line
* Move tests to 'test-manual/common/'
* Move "ApiClientTest.java" to "samples.ci"
and add copy command in *.sh scripts
* Move "ConfigurationTest.java" to "samples.ci"
and add copy command in *.sh scripts
* Move "auth/ApiKeyAuthTest.java" to "samples.ci"
and add copy command in *.sh scripts
* Move "auth/HttpBasicAuthTest.java" to "samples.ci"
and add copy command in *.sh scripts
* Move "model/EnumValueTest.java" to "samples.ci"
and add copy command in *.sh scripts
* Move "JSONTest.java" to "samples.ci"
and add copy command in *.sh scripts
* Replace "cp" => "mkdir & cp"
* JSONTest.java is java8 specific
* Run bin/java-petstore-all.sh
* "$_" does not work on Shippable
* migration to circleci 2.0 config
* install docker compose
* add setup remote docker
* comment out docker compose
* using public petstore for testing
* use only one working_directory
* use openapitools/openapi-petstore instead
* disable auth in petstore server
* run petstore server locally via mvn jetty
* fix typo
* test go first
* test pet server at port 8080
* remove docker compose command
* wait for server to start up
* sleep longer
* test mvn jetty again
* use machine executor
* comment out docker
* comment out restore cache
* sleep for 30s
* change petstore port
* restore petstore docker
* fix docker run command
* restore cache, clean up comments
* [rails] In order to set up the Ruby on Rails stub server easily, remove the dependency on MySQL
* [rails] Update sample codes of Ruby on Rails stub server
* Configuration option to disable HTML escaping when using Gson
The default implementation of Gson will escape certain characters by default. This
includes the `=` character, which is used in base64 encoding and cause problems when
deserializing the value to a base64 encoded string in a service.
Adding an option for disabling this feature makes it easier to generate client code
with sane defaults.
* Update Petstore sample
* First attempt at getting rust-server working
* Solve the problem of spurious 'object's
* We've found the missing models
* Catch some single-var objects correctly
* Get single-param models 'working'
* Got files working
* Remove surplus logging
* Disable some things to get it compiling
* `cargo test` now passes as well
* Create rust-server-specific petstore.yaml
We've commented out a few bits that rust-server doesn't yet support
* Remove commented-out code
And finally get rid of the generation date in the sample
* Add possibility to build and run go service in a container
* Remove tabs
* Update Pet Store server sample
* Add {{{packageName}}} instead of petstore
Updates some confusing wording, specifies naming conventions, and links
to external `new.sh` for contributed templates (rather than modified
templates).
* Expanding customization docs
As a new user I was very confused on how to either modify, override or create a new library. The existing docs were brief and had requirred knowledge that new users will not have, and it took a lot of trial and error to make progress.
Also the wording seemed off. It kept talking about "client" when this project creates more than just clients, used "language" when some templates are not a language, and used library to mean a few seeminly different things. I've tried to consolidate the wording around "template" and "codegen".
The codegen is the Java code, and then you give it a "name" which is used for the template. That's the template folder it will live in, so it seems to work.
Feel free to use this as a base and edit it out, but this will all make a lot more sense to beginners. :)
* add new bash script for release version update
* update version using the bash script
* Fix shippable build
Modify `artifactId` of `CI/pom.xml.shippable` to be `openapi-generator-shippable-pom`
* Comment ensure-up-to-date
* add shippable to the release script
* Updates README based on new release changes (#271)
The release management changes moved from maven-publish (newer plugin)
to maven (older plugin, only one that works currently with signing).
This updates docs in the samples/local-spec project with current
directions.
Also:
* Includes sonatype releases/snapshots on repo lookup
* Adds openApiGeneratorVersion property
Microsoft.Extensions.SecretManager.Tools
Microsoft.DotNet.Watcher.Tools
For docker containerized apps, avoiding restore again is important for image size
* [cli] Completions command for suggestions
This takes airlift's 'suggest' command and reuses it as a different
command name, 'completion'. This gives us in-built CLI completions which
are useful in the repo-level container's docker-entrypoint.sh. This
previously parsed Java files for conventional usage of Command
annotations, which is potentially buggy. The new implementation relies
only on CLI to provide command completion suggestions.
As part of this, we can prepare for bash completion scripts which can be
added to our homebrew formula. The new completion command will also
complete on command options, for example:
cli completion generate
This will provide all short and long form switches available to the
generate command.
* Add piggyback license onto licensed of file borrowed from airlift/airline
* Update README.md
links to both articles and our consulting company @wing328
FYI @fmalcher
* Update README.md
company-link in alphabetical order, as suggested by @wing328
Previous attempts at ecrypted secret failed due to improperly encoded
file. Local tests revealed that sonatype creds weren't configured
correctly for the defined server. Maven and Gradle snapshots uploaded
locally using updated configs.
* [gradle] Plugin release management
This applies steps necessary for publishing to Sonatype, including
sources, javadoc, jar and signing. Also includes full POM details, per
Sonatype requirements.
* Properties placeholders in gradle plugin (should allow users without these settings to build locally)
* Update build wrapper for install task to be used with new maven plugin, not maven-publish plugin
* Add code signing for gradle and maven
* [Spring] Add apiFirst option
* Git diff to see what's wrong
* Git diff to see what's wrong
* Update bin/ensure-up-to-date
* Run bin/ensure-up-to-date
* [cli] Write to stdout/stderr, allow redirection
Previously, slf4j-simple from generator core was being used. This writes
to only a single stream (STDERR) and is confusing from a CLI tooling
perspective.
This consumes logback in CLI, and excludes core's slf4j-simple
dependency. This allows us to define multiple appenders, one for STDOUT
and one for STDERR.
WARN messages and lower are written to STDOUT. ERROR is written to
STDERR.
* [cli] Limit logs to match prev implementation
* Remove slf4j-simple from core project, to avoid conflicts with consumer logger implementations
- Do not check for required parameter in getTypeDeclaration()
- Update the nullableTypeMapping map to map an Ada type into a corresponding
Nullable_<T> Ada type that allows the value to be null
- Check for optional parameter in postProccessOperations() and postProcessModels()
to replace the Ada type into an Ada type that supports null values
* Set "openapi-generator-maven-plugin" version to 3.0.0
* Disable maven-install-plugin in "openapi-generator-gradle-plugin"
* Changes to the maven wrapper for openapi-generator-gradle-plugin
* Remove deploy-file that does not work
* update release version to 3.0.0
* comment out ensure-up-to-date during the release
* add release note
* clean up
* clean up links
* add release note for 3.0.0
* update release note
* update release note
* update version for gradle plugin before release
* [gradle-plugin] Initial commit
* Clarify comments on file constraints
When a user sets the models, apis, or supportingFiles environment
variables, any one of these being set disables generation for the other
two. This could be confusing to users, so I've added some clarification
text in the comments for these properties.
In addition, I've cleaned up the extension on
Property.ifNotEmpty, to avoid using Suppress annotations where it's not
necessary. The change creates a local variable of type T?, allowing
Kotlin to track the variable's nullable state at compile time.
* Move gradle plugin under modules
* Move kt files under kotlin source set. Add sample.
* [gradle] map-like options as maps
* Add tests for gradle validate task
* Apply gradle plugin to mvn install phase
* [gradle] Testing remaining gradle tasks
* Add gradle plugin to the integration doc
* Update gradle plugin README with task options
* Gradle readme formatting
* Errors in Generate/Validate print to stderr/exit 1
Generate and Validate exposed exceptions rather than user-friendly
messages when an error occurred. In generate, this could happen for
numerous reasons, but the most likely is a user typing (or guessing) an
invalid generator name. In Validate, an error was exposed if there were
any validation errors in a spec.
New behavior:
* Generate now exposes a typed exception when a generator cannot be
loaded by name. This allows consistent messaging for load failures.
* Generate now presents guidance on failure (check the spelling and try
again). This is purely a usability improvement.
* Validate now writes validation errors to stderr and exits with code 1.
* Improve err messages: config-help/required opts.
config-help now presents same error for invalid generator names as the
'generate' command.
Options which are required, and those which require a value, now present
a user-friendly hint at the error and exit with code 1 (rather than an
uncaught exception).
* Log missing -g error to stderr rather than LOGGER
* Make SwaggerCodeGen serialize subclasses properly (PHNX-859) (#1)
Motivation
----
Previously, when serializing as subclass of a property, generated swagger clients would only serialize properties of the parent class causing some values to not be pass through
Modifications
----
Before serializing attributes of a given type, we check to see if there is a specific type to be serialized so that we don't miss any properties.
* Fix improper whitespace in mustache template (PHNX-859) (#2)
Motivation
----
OpenAPI Generator upstream requested whitespace fixes (from tabs to 4 spaces)
Modifications
----
Fixed whitespace
* New: methods return the element containing the $ref if the referenced
element is not found
* Fix null check in getApiResponse(OpenAPI, String)
* Fix null check in getParameter(OpenAPI, String)
* Create 'bin/ensure-up-to-date' script
* Update shippable config
* Do no longer copy 'CI/pom.xml.shippable' to 'pom.xml'
* Fix paths in CI/pom.xml.shippable
* shippable: remove write to file
* shippable: move order
* Run 'bin/ruby-petstore.sh' to update 'samples/'
* Add Kotlin scripts to the list
The $@ option in bash doesn't make sense to come before `generate`
because the only option we can pass before generate cli usage is `help`.
System properties can be passed via JAVA_OPTS, so there's not really a
need for any intermediaries in the command line construction.
Having $@ at the end of the arguments list allows maintainers and users
inspecting options to quickly pass new options to a script. For example,
```
./bin/aspnetcore-petstore.sh --additional-properties sourceFolder=asdf
```
For command line arguments that may appear more than once in the
arguments list, this change doesn't provide any rules about overwriting
values that may exist (hard-coded) in the script. That is, in the
example above, if aspnetcore-petstore.sh already includes the
sourceFolder set to a different value, the "winning" value is up to the
options parser and openapi-generator-cli implementation.
* Fix implFolder issue with jaxrs-cxf-cdi generator
This fix is for the issue:
https://github.com/swagger-api/swagger-codegen/issues/8113
When using jaxrs-cxf-cdi and other JaxRS generators, the implFolder
config is not honored by hte generator on windows.
* jaxrs-cxf-cdi: containers with no default init
Change similar to
https://github.com/swagger-api/swagger-codegen/pull/5363/files for
jax-rs-cdi generator.
When a property that is a contained is not declared as required, it is
initialized to `null`, and not to the empty container.
This makes apio mich more easy to use, since one can differentiate when
an input list in json has been set to the empty array or simply not set.
Swashbuckle generation was missing the configuration to rename from
default swagger.json to openapi.json (expected by change in SwaggerUI's
configuration for the endpoint).
This generates to the appropriate location and updates the sample to
load the Swagger UI properly on run.
This change resolves an issue I had with opening the aspnetcore Solution (Visual Studio could not load the project). The *.sln file contained an old GUID for ASP.NET 5.
Also removed the obsolete NuGet.Config file and updated the package references to the newest versions.
* test go in travis
* test go in shippable
* upgrade stack version
* fix shippable badge
* show stack version
* install go
* set go path
* install go 1.10
* remove go installation
* remove go test
* install haskell in travis
* reenable caching in appveyor
* comment out perl test
* test docker push
* test openapi-generator-online push
* fix environment variable
* remove maven central for the time being
* only push openapi-generator-cli
* skip mvn test
* uncomment mvn install
* fix echo
* fix openapi-generator-online docker push
* better password passing
* reenable mvn verify, only push to docker for master
* fix ci status badge in readme
* revise readme
* fix badge to circleci
* remove maven central for the time being
* fix travis badge
* update travis badge image url
* fix typo in docker hub url
Previous error handling implementation had types returning
Either[CommonError, UserType], but implemented with the scala shortcut
??? which throws an exception instead. This causes compilation to fail
with a message that the expected CommonError is of type Any. This is
often fixable with generic upper bounds constraints, but this is
overkill for a placeholder implementation. Returning a temporary 'TODO'
type solves the compile error, and should allow CI to check for valid
compilation on changes.
Included in this is also a fix to support optional query parameter
types. The spec used to generate the finch server has optional query
parameters, but the version of finch in the template doesn't support
options on query parameters. Finch does, however, aggregate everything
(headers, query string, path parameters, etc) under "param" with
"paramOption" for those which are optional types.
* fix pistache c++ server in windows
* skip perl test
* comment out go tests
* Fix go test, manually fix go client
* fix rails batch file
* fix tab in java file
* install rust
* fix swift2-deprecated in windows batch file
* fix rust installation
* comment out js test
* update swift windows batch files
* update tizen batch script
* comment out ktor test
* various updates
* update pom.xml
* update ci config with new location
* Change "swagger-codegen" to "openapi-generator" in a comment
* fix pom.xml for bash client
* minor fix to github ID
* fix pom for ios
* add question and anaswer section
* add project URL to the license
* Use relative path for link between pages
* Reword some sentences, remove we/they style
* fix python flask NPE with oas3
* update perl default value, fix example value
* update android sample, fix example value
* restore x-swagger-router-controller for nodejs server generator
* update default value for bash client, fix example value, invalid tag
* update default value for objc
* update objc pestore core data
* Fixes for ze-ph:
- fixed gathering of required properties for query data model
- fixed setting of internal vendor extensions for query data model detection
- fixed small typo in generated README
* Updated samples for ze-ph fixes
* restore elixir petstore original from codegen2x
* update elixir generator to work with oas2
* minor fix to elixir generato
* minor enhancement to templates
* update elixir petstore with oas2
* update rust client with petstore oas2
* update rust with oas2 petstore, fix default value
* fix type mapping for file, update api_doc for rust client
* update rust client with oas3
* restore scalatra from codegen
* regenerate scalatra oas2 petstore, fix defaut value
* better code format for scalatra
* more format fix for scalatra
* update scalatra parameter template
* Fix missing default value of form param
* Update php sample with OAS2
* Update php sample with OAS3
* Delete quotes as default value may have integer
* Update php samples with OAS2
* use toDefaultValue() in order to apply the decoration rules of generator
* Update php samples with OAS2
* Tweak: add quotes only if example is null
* Update php sample with OAS2
* Update php sample with OAS3
* [haskell-http-client] fix codegen issues
* ensure datatypeWithEnum is set on codegenParameter when is enum
* [haskell-http-client] fix isAlias + arrayModelType missing "datatype"
* [haskell-http-client] param.isListContainer is sometimes false for list types
* [haskell-http-client] gen MimeNoContent instances automatically
* [haskell-http-client] fix example-app and integration tests
* [haskell-http-client] update docs
* Added vendorExtensions.x-isPrimitive. (#7991)
* Added vendorExtensions.x-isPrimitive.
Switch template for constructFromObject.
* Reflect review indication.
* [typescript-angular] AOT-compatible API client (via ng-packagr and ngc) (#7984)
* typescript-angular: uses ng-packagr for the build
see https://github.com/swagger-api/swagger-codegen/issues/6722
see https://github.com/swagger-api/swagger-codegen/pull/6735/
* this should make everybody happy: Angular 2/4/5 AOT support
- uses ngc when targeting Angular 2 (as seen in https://github.com/swagger-api/swagger-codegen/pull/6735)
- uses ng-packagr 1 when targeting Angular 4
- uses ng-packagr 2 when targeting Angular 5
* removes bogus import
* cleans / updates Petstore samples, adds a new sample for Angular 5
* typo in README
* fixes broken travis build. adds pom.xml files again
This reverts commit 471d248a2e9b5d8eed10c71644c222c053e007b0.
* makes usage of `dist` more clear
and i feel generally better when `npm run build` is called explicitly.
- for ng-packagr 2 is doesn't matter, since the final package.json does not have any scripts
- for old ng-packagr 1 it matters, scripts are copied to the final package.json which breaks installation via `npm install {{npmName}} --save` (it runs `npm run build` again)
* typescript-angular: small improvements as suggested by @macjohnny
* angular-typescript: updated petstore samples, 3rd try
* Issue 5542, always generate pom and readme (#7977)
* Issue 5542, generate pom.xml with separate parameter. InterfaceOnly=true for not generating pom.xml not works in every situation.
* Issue 5542, generate pom.xml with separate parameter. InterfaceOnly=true for not generating pom.xml not works in every situation.
* Issue #5542 Always generate pom.xml and README.md
* [TypeScript][Angular] fix date path parameters (#7476, #7302) (#7479)
* #7476, #7302: [TypeScript][Angular] fix date path parameters, fix path parameters with :.+ in it
* #7476, #7302: [TypeScript][Angular] fix date path parameters, fix path parameters with :.+ in it
* #7476, #7302: [TypeScript][Angular] fix date path parameters, fix path parameters with :.+ in it
* #7476: generate samples
* code cleanup
* #7476: improve variable description
* #7302: revert character skipping, since it will now have the same parameter name in the method signature and in the api path
* #7302: generate samples
* typescript-angular: added Interfaces to api exports if withInterfaces is selected (#7975)
* added Interfaces to api exports if withInterfaces is selected
* removed import of interface classes
* added gererated petstore example api.ts
* Fix Issue 8014
* Adapted to work with Angular2 Http and Angular 4.3+ HttpClient
* removed unnecessary (others) for ng HttpClient from Interface
* Golang Client Refactor (body and model in errors, typed optional parameters) (#7987)
* Return abstracted errors with model data if available.
* update tests with error models.
* Return error models on the abstract type.
* dont leak FH
* duplicate of PR #7752 for issue #7511
* Change optional parameters to structs.
* update documentation
* fix circleCI failure
* [typescript][angular] query parameter with null value should not be set (#8033)
* #7893: [typescript][angular] fix optional query parameter null value
* #7893: [typescript][angular] generate samples
* #7893: [typescript][angular] generate samples
* Version rest-assured has been updated to 3.1.0 (#8052)
* [Dart] Fixes TypeError in Dart 2 mode (#7959)
* Properly convert lists to dart types
* Updated sample petstore client
* Fixed maps in Dart strong mode
Fixed list parsing for null-elements
* change parseDate in es6/APIClient (#7973)
* [PHP] Improve duplicated validation logic (#7954)
* Improve duplicated validation logic
* Update the samples
* Update php client with OAS3
* Fix content type
the endpoint consumes 'application/x-www-form-urlencoded'
* Regenerate php client from OAS3
* Update the test case according to the fix on spec
* Update php client with petstore OpenAPI v2 spec
bin/php-petstore.sh
* Change order of arguments according to the changes that auto-generated codes
* Fix 'FakeHttpClient not found' error
It has occured when run the test case separately like below.
"vendor/bin/phpunit tests/RequestTest.php"
* Update assertion according to a change on spec
* Update assertion
* restore pistache from codegen 2.x
* update pistache samples with oas2
* update pistache with oas3 petstore (no diff)
* restore datatype for array of model
* update pisache server scripts
* Revert "restore datatype for array of model"
This reverts commit 3b949a3873f3fca78311065173eda26e786dedec.
* fix array of models in method signature
* Handle java boolean getter at codegen level instead of template.
* {{#isBoolean}}is{{/isBoolean}}{{getter}} is no longer necessary in templates.
* Use 'toBooleanGetter' instead of replace in PhpSymfonyServerCodegen
* restore go server petstore from codegen 2x
* update go server petstore (oas2) - no diff
* update go server samples (oas3)
* add go petstore server script
* update dynamic-html samples with oas2
* update dynamic-html oas3 (no change)
* update html petstore (oas2)
* update html petstore with oas3
* fix example value for form parameters
* fix javadoc string
* Fix for arrays in requestBody
* Map description from RequestBody in CodegenParameter
* Fix missing import of model class with nested arrays in response
* Fix imports, consistent 'baseType'
* Add tests for enum
* update objc petstore with oas2, fix default value for parameter
* update objc petstore with oas3 spec
* update objc core data oas2
* update objc petstore with oas3
* update nodejs server oas2
* update nodejs server petstore with oas3
* update nodejs google cloud with oas2 petstore
* update nodejs server google function with oas3
* Create unit test to control regressions
* Change HIDE_GENERATION_TIMESTAMP handling
* Add new test case: set values with the setters
* Add 'isHideGenerationTimestamp()' getter
* Add property 'supportAsync' to allow the use of CompletionStage of java8
* Add support for completionStage in play-framework templates
* Add script to generate samples for play-framework async controllers
* Add generated samples for java play framework with asynchronous controllers
* Add missing templates and generate samples
* Remove useless comments from generated samples in play framework async
* Fix ControllerImp template for java play framework
* Add script for java play framework async to general script
* Regenerate java play framework server samples
* Fix missing whitespace
* Fix unnecessary blank lines at imports
* Fix tabulation issue
* Fix tabulation issue in controllers
* Remove blanks from api Imp
* Remove more empty lines
* Add blank between methods
* Remove blanks before call to service method
* Fix some tabulations in java play async templates
* Regenerate samples for java play async
* Mark `not required` swagger properties as optional typescript properties
Properties that aren't required in the swagger contract should be marked as optional typescript properties, i.e. with `?` after their name when they are defined.
* Adding Petstore samples files generated with the optional property change
The commas are invalid syntax and create the error:
```
A problem occurred evaluating project ':client'.
> Could not get unknown property 'testCompile' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
```
* add valid for pojos #4738
* add Valid to imports for pojos #4738
* Do not generate Valid-annotation for Date-types and UUID
* * add Valid-annotation to Containers. #4738
Collection-valued, array-valued and generally Iterable fields and properties may also be decorated with the @Valid annotation. This causes the contents of the iterator to be validated.
Quoted from: http://beanvalidation.org/1.1/spec/
* add equivalent windows-bat-script for jaxrs-cxf-petstore-server.sh
* differences on jaxrs-cxf-generated-classes introduced by other changes (not related to this PR)
* Add constant with API version
* Use semver::Version for ApiVersion
* Go back to API version as a string
* Rust composite services
* Actually use the version from the swagger file
* Add typescript-inversify language
* Add windows script
Add windows script
* Use rxjs instead of rx and encoding only the value of URL parameters
* Remove lodash dependency
Remove lodash dependency
* Readd linux user detail on run-docker script
* Solve import problems
* Remove configuration template
* Add usePromise config's variable
* Align Test to check usePromise config parameter
* Add possibility to receive all the httpResponse
* Better ts-lint on api service
* Update sample client example with new ts-lint
* Update petstore sample with new ts-lint
* [Rust] Implement minimal auth support
This is pretty much the bare minimum needed to get v2 auth working.
This is partly based on the Go implementation.
* [Rust] properly format query string
* [Rust] Improve auth formatting
* [Rust] Regenerate petstore sample
* End use of deprecated openssl method
* Enhance rust-server to use hyper 0.11 to support handling operations asynchronously
The changes are complete and working (at least for microservices tested within Metaswitch). This isn't completely compatible with the (previous/current) synchronous swagger-codegen. Specifically,
* `Client` is no longer `Send + Sync`
* Api implementations used by Server are no longer expected to be `Send + Sync` (which is good, because it's quite hard if `Client` isn't)
* the code to create `Client`s and `Server`s, and hook them into `hyper` or `tokio` is different.
Importantly, though, the business logic itself should be unchanged.
* Re-adds the `basePath` element to all server endpoints. This mean clients and servers can talk to each other again.
* Fix multipart formdata codegen
* Fix up handling of multipart messages
* Fix server -> client multipart message response
* Correct handling of optional file types
* Add authorization header to requests with basic auth
* Add client support for `application/x-www-form-urlencoded`
* Import uuid library if headers use UUID type
* Add BASE_PATH to the server module.
* Wrap client connector
* Support both query and body parameters on the same operation
Prefix path to `inputSpec` with maven's `${project.basedir}`. The codegen-maven-plugin will look inside the current working directory so whether a relative path works or not is depending on where the maven build is invoked from. Using `${project.basedir}` makes the path absolute.
* Small fixes to prevent crash when empty json body is provided.
* Add deleteLater wrapper for pointers passed to user code to prevent memory leak.
* Updates to move Object Wrapper to separate file
* Add Prefix to class name
* Improve JMeter Template:
In CSV DataSet ignore first line as it contains headers
Share CSV for Thread-Group instead of doing it across all threads
Use scheduler
Add variables definable through properties for:
- Rampup
- Duration
- Threads
Drop HttpClient 3.1 customization
Remove in Test Plan Element host and port as they are defined in User
Variables
* Improve JMeter Template : Fix Issue 7773
This comment #7773
As per request update samples
* Small fixes to prevent crash when empty json body is provided.
* cpprest : Add toJson and toHttpContent array support.
* petstore : Run script.
* cpprest : Fix toHttpContent function header.
* petstore : Run script.
* cpprest : Add support for primitive response without enclosing item.
* cpprest : Fix spaces.
* cpprest : Fix build if bodyParam is optional.
* cpprest : Fix vector of vector param.
* Small updates to use utf encoding
Add * operator for ^required
* fix typo
* use URLComponents instead of NSURLComponents
* add encode method for any type
* Add public initializer for modelObject
* change id to _id
* fix APIHelper funcs for array query parameters
* make public to write unit test
* add APIHelperTests
* fix typo
* fix regression
* Check date value before calling to_iso8601
When deserializing a date value the value has to be a string when
calling to_iso8601. Otherwise it fails with a match error due to a
is_binary() guard.
* Fix: to_iso returns tuple with three values.
* Small fixes to prevent crash when empty json body is provided.
* Fix some more memory Leaks in the model-body
- Members not deleted in cleanup() method, for maps/arrays of primitive types.
- Avoid undefined behavior when updating class members with data from missing json fields
* Add overloaded method to take an InputStream for the request body, and fix a bug with collections
* Use fully qualified name for InputStream to avoid potential conflicts
* Add support for Input Stream choosing content type, and fix a bug
* Ensure GET requests send an empty request body!
* Improve: update sample tests automatically
* security test
* Update sample
- bin/php-petstore.sh
- bin/security/php-petstore.sh
The security test has not been updated for a while.
* Small fixes to prevent crash when empty json body is provided.
* WIP: plug mem-leaks
* fixup: add the QJsonObject instance in toJsonArray instead of pointer
* fixup: simplify toJsonMap
Actually the original solution is incomplete, because "innerType" maps to a single C++ type. Have a look at Qt's builtin QJsonObject::fromVariantMap.
* Updates to antis81:patch-1 after tests.
* update to remove string allocation
* Updates due to address of members being passed
* Update PetStore Examples
* Small updates for Header includes
* Add path & file separator (/) to return the correct path
Add the separator between the tempFolderPath and the sanitized filename so that the path to the file is correct.
(Fixes#7670)
* Remove separator from generated file
* Add separator
Add the separator between the tempFolderPath and the sanitized filename so that the path to the file is correct.
(Fixes#7670)
* Update sample code
Via ./bin/php-petstore.sh
The following schema definitions kinds are now supported:
MyStringArray:
type: array
items:
type: string
MyObjectArray:
type: array
items:
type: MyObject
* Added genericModelSubstitutes if using Optional
As per https://github.com/springfox/springfox/issues/1848 Doesn't seem to fix the problem, but is what springfox recommends so might be aprt of it.
* Added config package to scans
If you have defined apiPackage and basepackage (e.g. as com.example.api) but not defined configPackage then config is still in io.swagger.config and is not included in the component scan. This means the config is not used when generating the swagger definition from the code. Fixed by including configPackage also in the scan.
* Ran spring-all-pestore.sh update script
* Converted tabs to spaces
* Ran spring-all-pestore.sh update script
* [Java][retrofit2] Fix for issue #7446: file upload sets filename as baseName instead of a dynamic filename. The solution is to use okhttp3.MultipartBody.Part instead of RequestBody in formParams template.
* Changes corresponding to review comments
* Petstore Samples
* Fixed tests
* Ada generator generates "=>" (correct syntax) instead of "->". Fixes#7450
* Updated the Ada petstore samples
* Committing "VERSION" file and the rest of the petstore samples
* Changed default project name and package name for Ada, not to have circular dependencies between gpr files.
* Ada code generator now adds x-is-model-type every time a model is defined locally in the YML file.
Fix#7569.
* Regenerate PetApiTest, OrderTest
The same test code as deleted is in the 'tests' directory.
* Move test code 'test' -> 'tests', and Regenerate test/Model/PetTest.php
* Regenerate 'test' directory
rm -rf samples/client/petstore/php/SwaggerClient-php/test && bin/php-petstore.sh
Previously if the type was "myEnum" it would be written as
```
type myEnum string
const (
DEMO MyEnum = "DEMO"
)
```
which would fail because of the capitalization difference. This fixes that.
* Replacing calls to dataTaskWithRequest:completionHandler:
In objc ApiClient-body.mustache, replacing calls to AFNetworking's deprecated `dataTaskWithRequest:completionHandler:` with calls to `dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler:`.
* Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change: ./bin/objc-petstore.sh and ./bin/security/objc-petstore.sh
* fix issue-7453; make jersey 2 generated code thread safe by following the withHttpInfo pattern used by many other generated clients
* fix issue-7453; make jersey 2 generated code thread safe by following the withHttpInfo pattern used by many other generated clients
* Added support for application/xml content-type for GO language
Issue #7463
* Added test scripts for Go lang "withXml" feature
* Added samples for Go land "withXml" feature.
* "withXml" feature for Go language is only available for client.
* [csharp] ctor params should always be camelCase
After PR #6305, var names defaulted to PascalCase results in constructor
arguments also being PacalCase. Model properties and constructor
arguments have no reason to be the same case, and in fact may cause
issues (`name = name` will result in a compilation error).
This commit forces all constructor params in models to lowerCase.
This is a necessary change, for instance, if client SDK consumers assign
using named args:
var a = new Model(first = "", second = "")
The PacalCase default and update to constructor arg casing will break
existing consumers of the client.
See #7070 for more details and discussion.
* [csharp] Regenerate samples
* [csharp] Remove client models generated from a different spec.
* [csharp] Escape reserved words on camelcase/lowercase lambdas
* [csharp] Regenerate samples
* Fix the GNAT project for the client and server to avoid using unecessary projects on
the client side
* Define a minimal configuration for user and application definition
* Fix the server skeleton to emit the response only when the status code is 200
* Fix the Ada petstore GNAT project
* fixing "decoding Unicode is not supported" error for py2 when data is unicode
* allowing nonstandard methods for tornado python client.
* Making sure to return unicode when needed
* Ada generator generates "=>" (correct syntax) instead of "->". Fixes#7450
* Updated the Ada petstore samples
* Committing "VERSION" file and the rest of the petstore samples
* Changed default project name and package name for Ada, not to have circular dependencies between gpr files.
Using the option `taggedUnions` will create a union type for each parent
type instead of extending interfaces. The union types are tagged by using
the discriminator values.
And also:
* Add support for aliases;
* Add support for read-only properties.
* Fixed data type for optional parameters in delegate
When generating using the delegatePattern and including an optional parameter, the api used a type of Optional<T> while the delegate used just T. This resulted in a java error in the generated code wen trying to call one from the other.
Fixed by using correct data type in delegate
Fix#7179
* Updated samples using supplied (Windows) scripts
* Revert "Updated samples using supplied (Windows) scripts"
This reverts commit 58b9c618085ac4201cfb011def96e14caaaff3f8.
* Rest-assured http client has been added
ApiClient has been added
@Deprecated has been added for operation
{{{returnType}}} has been fixed
build.gradle.mustache, build.sbt.mustache, api_doc_mustache has been added
Samples has been added for rest-assured
Useless supporting files has been removed for rest-assured
Sample has been added for rest-assured
* Tests has been added
* Doc and tests has been fixed, JSON.mustache moved to common
* Issue 7440 Added support for returning response in jaxrs-spec interfaces.
* Issue-7386 Updates samples for jaxrs-spec interfaces introduced in issue 7386.
- add new config options:
cabalPackage
Set the cabal package name, which consists of one or more alphanumeric words separated by hyphens
cabalVersion
Set the cabal version number, consisting of a sequence of one or more integers separated by dots
baseModule
Set the base module namespace
requestType
Set the name of the type used to generate requests
configType
Set the name of the type used for configuration
* Fix calling the 'Call' procedure to submit the request for the Ada client when a request
has form parameters
* Rebuild the files by running bin/ada-petstore.sh
* Ada generator generates "=>" (correct syntax) instead of "->". Fixes#7450
* Updated the Ada petstore samples
* Committing "VERSION" file and the rest of the petstore samples
* Redone the algorithm to sort the models by their dependencies, to create correct *-model.ads files.
To fix#7485
* changed tabs into spaces
* [tools] Make sed in new.sh more cross-platform
The -r option passed to sed is a GNU sed option for extended regex
evaluation. The -E option evaluates the same option, and is part of the
POSIX standard, meaning this option is available in GNU sed as well as
Apple's BSD variant.
This commit removes the need for users to install gnu-sed on Mac.
* [ktor] Initial ktor (kotlin-server)
This adds a very barebones implementation for a ktor server generator.
This supports metrics and typed locations. All endpoins are stubbed to
return HTTP/1.1 501 Not Implemented.
* [ktor] Initial sample
* [ktor] Adding options for select feature installs
Options available:
* featureAutoHead
* featureConditionalHeaders
* featureHSTS
* featureCORS
* featureCompression
* [ktor] Start of auth functionality
* [ktor] API key auth placeholder
* Add basic support for oauth2 configurations
ktor doesn't seem to explicitly accept oauth flow properties in its
configuration object. This may be a blocker for 'implicit' flow
definitions.
* Added example response objects
* [ktor] Route for apis with bodies, some cleanup
ktor locations are only supported for routes with path/query parameters.
Routes with body or file parameters must be declared with traditional
route api.
This commit also includes lambdas for simplifying processing in
library-based server generator code. As an example, ktor requires
lowercase http methods while spring (a potential future generator)
would require an uppercase such as HttpMethod.GET. It doesn't make sense
to modify these in the operations post-process method because that
format wouldn't be universally desirable.
The lambdas included in the KotlinServerCodegen:
* lowercase: converts all text to lowercase
* uppercase: converts all text to UPPERCASE
* titlecase: converts words (with configurable delim) to Title Case
* indented|indented_8|indented_12|indented_16: these helpers apply the
same desired indent to all lines of an included fragment's text.
* Fix some javadoc issues in lambda classes
* Update kotlin-server-petstore.bat
Change `kotlin` to `kotlin-server`
* Fix javadoc error messages in CI
* add luarocks spec
* remove trailing spaces
* remove rockspec filename option
* update lua rockspec
* update rockspec based on feedback
* remove configuration which is not needed
* remove api_client, which is no longer needed
* Build sample prior to code changes so differences are easier to decipher
* Add byte array type adapter for okhttp-gson (java8 only)
* Unit revealed that Gson (or GsonFire) defaults to escape = (equal sign) out of base64 string. Add disableHtmlEscaping() to gsonbuilder.
* Update specs and samples to include format=byte and include junit test of byte array serialization and deserialization.
* Implement recommendations by @cbornet including: Use okio.ByteString for base64 conversions instead of java 8 lib since the okhttp-gson client already includes okio. Remove setting to disableHtmlEscaping. Rename LocalByteArrayAdapter to ByteArrayAdapter.
* Update spec and sample for java okhttp-gson library client
* Undo addition of profilePhoto property. A format byte property is already available under the format_test definition.
* Put previously deleted tests back. Modified testFindPetsByTags() to verify exception since the server now returns a 500 for this request.
* Update test to pass when run against docker containerized server swaggerapi/petstore (heads up, this test fails if calling out to the internet published version of http://petstore.swagger.io)
* Split up model template into partials
* Change models from class to struct.
This fixes issue https://github.com/swagger-api/swagger-codegen/issues/6941.
In this change, we make our Swift4 generated model objects struct instead of class. However, in order to do this, we needed to handle the following edge cases:
* Inheritance and polymorphism (allOf)
* With classes, we use inheritance. So therefore, the parent properties are ONLY on the parent generated class, and the model object which derives from the parent class picks up those properties through inheritance.
* However, structs do not support inheritance. So we simply duplicate the parent allOf properties in the child struct.
* We have to handle the case where the property name on the struct may be different than the property name in the JSON. By default, the Codable protocol assumes that the JSON property name is the same as the struct property name. If they need to be different, then we generate a CodingKeys string enum, which contains the mapping between struct property name and JSON property name.
* additionalProperties. We cannot use the default Codable implementation for the additionalProperties, since it will look for an actual dictionary called "additionalProperties" in the JSON. Therefore, for model objects which have additionalProperties, we must generate our own implementation for the Decodable and Encodable protocols.
I have run ./bin/swift4-all.sh and ./bin/swift4-test.sh to re-generate all of the sources, and I have verified that the generated code in samples/clients/test/swift4/default builds and the unit tests pass.
* Update VERSION in .swagger-codegen
* Update generated code for swift4-test schema
* #7365: use enums string / number literals for request parameter if it is an enum
* #7365: use enums string / number literals for request parameter if it is an enum
* #7365: use enums string / number literals for request parameter if it is an enum
* #7365: improve docs
* #7365: move code to AbstractTypeScriptClientCodegen, remove redundant code in TypeScriptAngularClientCodegen, change type Object to Number in numericEnumValuesToEnumTypeUnion()
* #7365: move code to AbstractTypeScriptClientCodegen, remove redundant code in TypeScriptAngularClientCodegen, change type Object to Number in numericEnumValuesToEnumTypeUnion()
* #7365: allow parameter data type customizations
* #7365: re-enable disabled unit test assertions
* #7365: remove enum handling from type declaration generation
* #7365: generate all typescript samples
* #7365: re-enable disabled unit test assertion
* copy mustache templates from dart generator
* Start with generator by copying the DartClientCodegen for now
* at least we know this is not for a browser..
* First working version for a simple swagger configuration
* remove browserClient parameter, since it doesn't make sense for flutter
* Take care of complex types to support object hierarchies
* add null safety
* add small test for options
* add flutter-petstore scripts
* generate flutter petstore output
* Add new flutter test project
* move generated client to make it usable
* use generated swagger petstore plugin
* add support for lists of objects
* add DateTime support
* fix listFromJson implementation
* fix NPEs in DateTime operations + place order in sample
* Small readme changes
* bugfixes
* Use flutter-compatible implementation as default dart implementation
* fix generated samples
* Make lists serializable, now all dart test cases are working again
* better list implementation
* use StringBuffer
* removed FlutterClientCodegen
* fix browser client
* fix dependencies
* swagger-browser-client for browserClient testcases
* fix scripts
* removed flutter scripts
* add map support and simplify code via using .toJson contract
* remove unneeded devDependencies
* Regenerated samples
* fix call to mapFromJson, it is not a constructor
* remove pointless string serialization
* regenerated dart samples
* update for ze-ph generator stub to support Zend Expressive 2.1 and Path Handler 0.3
* ze-ph: for each operation generator creates special DTO model from its query parameters
* ze-ph: generation of extra TODO's for complex container type and update for samples
* Ada generator generates "=>" (correct syntax) instead of "->". Fixes#7450
* Updated the Ada petstore samples
* Committing "VERSION" file and the rest of the petstore samples
* [csharp] Support composition on toJson
Previous implementation assumed specification only supports polymorphic
associations (via discrimator), although the code didn't seem to be
setup correctly for that in the first place. That is, the parent object
must define the discriminator (see
https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#models-with-polymorphism-support),
so NOT HAS parent AND HAS discriminator doesn't make sense.
From a C# perspective, base classes should have the method marked
virtual and derived classes should override the method. This supports
both composition and polymorphic definitions.
* [csharp] this.Configuration in api template
Unprefixed Configuration property access leads to ambiguous references
when spec defines a Configuration model.
* [csharp] Models/properties support nested arrays
Previous implementation didn't support multiple levels of array with
array items as OpenAPI spec supports. This means an object defined as
type: array with items = type: array|items=double (which is common in
GIS) would not be possible.
This implementation assumes generics in the nested type definitions, so
the above would generate List<List<double?>> for model parent types as
well as property type declarations.
* [csharp] Regenerate integration test sample
* [csharp] Set "Client" case sensitive as reserved
* [csharp] Regenerate security sample
* [csharp] Regenerate samples
* [csharp] Support composition on toJson
Previous implementation assumed specification only supports polymorphic
associations (via discrimator), although the code didn't seem to be
setup correctly for that in the first place. That is, the parent object
must define the discriminator (see
https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#models-with-polymorphism-support),
so NOT HAS parent AND HAS discriminator doesn't make sense.
From a C# perspective, base classes should have the method marked
virtual and derived classes should override the method. This supports
both composition and polymorphic definitions.
* [csharp] Regenerate integration test files
* [csharp] Regenerate samples
* [csharp] Regenerate security sample
* [csharp] this.Configuration in api template
Unprefixed Configuration property access leads to ambiguous references
when spec defines a Configuration model.
* [csharp] Regenerate samples
* Fix the comparison between two model types to compare them recursively
and make sure we sort the model types according to their dependencies
* Run bin/ada-petstore.sh to update the generated Ada client samples
* Fix Ada client generated code to avoid having a spurious body name for parameters passed in the body
* Run bin/ada-petstore.sh to update the generated Ada client samples
* [erlang-client] fix body param from being included path and base path to remove host
* [erlang-client] move request logic out of api functions to utils module
* [erlang-client] add support for passing http client configuration to requests
* [erlang-client] update auth handling
* [erlang-client] remove underscore2, replacing with original underscore + replaceAll
* Add default value and required parameter support to vertx server templates. Fix for #7409.
* Added missing serviceId declaration to workaround #allParams section clearing the vendorExtensions map
* [Rust] Consider error statuscodes to be errors
* [Rust] Introduce 'ApiError' type for 4xx/5xx resp
This updates the previous commit which added an 'ErrorStatus' variant to
an 'ApiError' variant.
It does not specialize the error to the specific possible error
responses yet, rather returning a 'serde_json::Value' for any case.
This will lose any error messages which cannot be parsed as json and
instead return a json-parse error.
A future change should update the generated signatures such that the
returned future's error type is specialized to the specific errors that
may be returned by that api (and possibly a catchall json::Value still).
* [Rust] Regenerate petstore samples
* [Rust] Add error example to petstore sample
* [Java] #3024 - Add build-helper-maven-plugin version to retrofit client template
* [Java] #3024 - Add build-helper-maven-plugin version to feign client template
* [Java] #3024 - Add build-helper-maven-plugin version to jersey client template
* [Java] #3024 - Add build-helper-maven-plugin version to resteasy client template
* Updated the version of Scalatra to the latest (2.6.2)
- Updated Scalatra 2.6.2 (latest)
- Updated Scala 2.12.4
- Updated sbt 1.1.0
- Reduced dependent artifacts to a minimum
- Cleaned up build.sbt
- Changed the package name from client to server
- Set log output (logback)
- Updated web.xml for servlet 3.1
* rename package 'com.wordnik' -> 'io.swagger'
* Added rolling file appender to logback.xml
* Disable creation of empty json fields and fields for primitives which were not set, but using default values
modelnamePrefix will be the one passed from command line or SWG if none
* Updates after review
Also common http files are splitted
Update Petstore examples
* Small Fixes for cleaning up arrays of arrays/maps
* Changes
- Api Body pass by Reference, avoid seg fault due to deletion of auto constructed object passed as parameter.
- Support Maps and Arrays upto a depth of 2
- Refactor Helpers to handle Maps and simplify code
* Remove size check due to possible incorrect type
* Update PetStore Examples for Qt5 C++ and small fixes for QDate/QDateTime
* Updates after review. Fixes typo and remove usage of auto keyword.
* Restored usage of auto keyword.
* Regenerate test/UserApiTest.php
The same implementation as testLoginUser() is in tests/UserApiTest.php
* Delete test/Client/ObjectSerializerTest.php
The same implementation is in tests/ObjectSerializerTest.php
* Update Petstore sample
- bin/php-petstore.sh
- bin/security/php-petstore.sh
* #7359 Fix - use reflection to instantiate non-generated class (#7360)
* add tests for java vertx petstore
* add swagger example to README.md (#7368)
* Fix assignment of new object instance to variable
Fixes `Error in foobar$fromJSONString(s) : object 'CategoryObject' not found`
Discussion in https://github.com/swagger-api/swagger-codegen/issues/6520#issuecomment-357132746 ,
thanks @wing328 for encouraging.
* [Scala] Fix async helper methods when body is optional (#7274)
* [Scala] Fix async helper methods when body is optional
Closes#7272
* Update petstore sample
* Standardize all isRestfulxxx methods.
Change 'equals' method to 'equalsIgnoreCase' for isRestfulIndex method in Operations. This matches isRestfulCreate, isRestfulShow, isRestfulDestroy
* Make stripPackage name configurable via property
- Needed because some APIs (e.g. Kubernetes) include version information in packages. Stripping causes many generated API and model classes to be named the same, causing a last-one-wins situation which is unacceptable.
* Per PR review, ensure stripPackageName Boolean property and log warning
* Disable creation of empty json fields and fields for primitives which were not set, but using default values
modelnamePrefix will be the one passed from command line or SWG if none
* Updates after review
Also common http files are splitted
Update Petstore examples
* Initial commit, Generates everything necessary to run a performnace test against a swagger api. Just have to fill out the CSV feeder files with your data.
* adding samples and gatling-petstore.sh file
* Extending the AbstractScalaCodeGen
* Checking in the CodegenConfig file as it is needed to generate
* removing escaped reserved words
* Changed model to be able to make all variables utilize an underscore while json fields are still just the variable name
* Changing underscore to var as interpolation can not start with a _ in scala
* Fixing path params
* allow you to pass in a system property to define which config to use as a workload profile, use rate and instance multipliers to scale up and down your test, added ramp down after the test is completed, added global assertions.
* Addressing PR feedback
* missed semi-colon
* Bringing everything up to date with the renames that were suggested
* [haskell-http-client] handle */* mimetype correctly
* [haskell-http-client] generate separate api modules, for each child api
* [haskell-http-client] add cliOption "allowNonUniqueOperationIds"
When cli option "allowNonUniqueOperationIds" is true,
allows *different* API modules to contain the same operationId,
and then each API must be imported qualified.
* Fix some go client formatting issues
* Fix go client go imports
* Run `goimports -w .` on examples directory
* Sort imports in api
* Add new line between each property
Before secret feature was used to add new line using two property
declaration in the same line. There should be no new line before
first property. The easiest way is to use `-first` special
property
https://github.com/samskivert/jmustache#-first-and--last
New line are required so `goimports` won't reformat whitespaces between
property name and type.
* Change whitespaces to tabs
* Fix whitespaces in api_client
There is a new line between each service to prevent `goimports` from
adding whitespaces between types and names
* Fix more whitespaces
There was a need to set special delimeter for formatting in the commit.
Go slices use curly braces and `jmustache` got confused when found
triple curly braces.
* Fix whitespaces in configuration.mustache
* Fix whitespaces for api response
* Support for optional description
Do not add whitespace if description is missing
* Add new lines between enum values to prevent formatting
* Generate go code from current code
- imports are not sorted :(
- there are extra whitespaces for different languages. I don't know why
* Run generate for security tests
* Move test codes in "test" to "tests".
* Simplify class name specification
* Regenerate test/Api/StoreApiTest.php
testGetInventory already exists in tests/StoreApiTest.php
@@ -7,11 +7,11 @@ Also please indicate in the issue title which language/library is concerned. Eg:
<!-- describe what is the question, suggestion or issue and why this is a problem for you. -->
##### Swagger-codegen version
##### openapi-generator version
<!-- which version of swagger-codegen are you using, is it a regression? -->
<!-- which version of openapi-generator are you using, is it a regression? -->
##### Swagger declaration file content or url
##### OpenAPI declaration file content or url
<!-- if it is a bug, a json or yaml that produces it.
If you post the code inline, please wrap it with
@@ -37,7 +37,7 @@ link it here.
##### Related issues/PRs
<!-- has a similar issue/PR been reported/opened before? Please do a search in https://github.com/swagger-api/swagger-codegen/issues?utf8=%E2%9C%93&q=is%3Aissue%20 -->
<!-- has a similar issue/PR been reported/opened before? Please do a search in https://github.com/openapitools/openapi-generator/issues?utf8=%E2%9C%93&q=is%3Aissue%20 -->
- [ ] Read the [contribution guidelines](https://github.com/swagger-api/swagger-codegen/blob/master/CONTRIBUTING.md).
- [ ] 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: `3.0.0` branch for changes related to OpenAPI spec 3.0. Default: `master`.
- [ ] Copied the [technical committee](https://github.com/swagger-api/swagger-codegen/#swagger-codegen-technical-committee) to review the pull request if your PR is targeting a particular programming language.
- [ ] Filed the PR against the [correct branch](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches): `master`, `3.3.x`, `4.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: \" \\
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at team@openapitools.org. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
- If you're not using the latest master to generate API clients or server stubs, please give it another try by pulling the latest master as the issue may have already been addressed. Ref: [Getting Started](https://github.com/swagger-api/swagger-codegen#getting-started)
- Search the [open issue](https://github.com/swagger-api/swagger-codegen/issues) and [closed issue](https://github.com/swagger-api/swagger-codegen/issues?q=is%3Aissue+is%3Aclosed) to ensure no one else has reported something similar before.
- File an [issue ticket](https://github.com/swagger-api/swagger-codegen/issues/new) by providing all the required information.
- If you're not using the latest master to generate API clients or server stubs, please give it another try by pulling the latest master as the issue may have already been addressed. Ref: [Getting Started](https://github.com/openapitools/openapi-generator#getting-started)
- Search the [open issue](https://github.com/openapitools/openapi-generator/issues) and [closed issue](https://github.com/openapitools/openapi-generator/issues?q=is%3Aissue+is%3Aclosed) to ensure no one else has reported something similar before.
- File an [issue ticket](https://github.com/openapitools/openapi-generator/issues/new) by providing all the required information.
- Test with the latest master by building the JAR locally to see if the issue has already been addressed.
- You can also make a suggestion or ask a question by opening an "issue".
## Before submitting a PR
- Search the [open issue](https://github.com/swagger-api/swagger-codegen/issues) to ensure no one else has reported something similar and no one is actively working on similar proposed change.
- If no one has suggested something similar, open an ["issue"](https://github.com/swagger-api/swagger-codegen/issues) with your suggestion to gather feedback from the community.
- Search the [open issue](https://github.com/openapitools/openapi-generator/issues) to ensure no one else has reported something similar and no one is actively working on similar proposed change.
- If no one has suggested something similar, open an ["issue"](https://github.com/openapitools/openapi-generator/issues) with your suggestion to gather feedback from the community.
- It's recommended to **create a new git branch** for the change so that the merge commit message looks nicer in the commit history.
## How to contribute
@@ -20,17 +20,21 @@
If you're new to git, you may find the following FAQs useful:
Please file the pull request against the correct branch, e.g. `master` for non-breaking changes. See the [Git Branches](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches) page for more information.
### Code generators
All the code generators can be found in [modules/swagger-codegen/src/main/java/io/swagger/codegen/languages](https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages)
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)
### Templates
All the templates ([mustache](https://mustache.github.io/)) can be found in [modules/swagger-codegen/src/main/resources](https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen/src/main/resources).
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).
For a list of variables available in the template, please refer to this [page](https://github.com/swagger-api/swagger-codegen/wiki/Mustache-Template-Variables)
For a list of variables available in the template, please refer to this [page](https://github.com/openapitools/openapi-generator/wiki/Mustache-Template-Variables)
### Style guide
@@ -42,6 +46,7 @@ Code change should conform to the programming style guide of the respective lang
@@ -70,19 +75,19 @@ You may find the current code base not 100% conform to the coding style and we w
For [Vendor Extensions](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#vendorExtensions), please follow the naming convention below:
- For general vendor extension, use lower case and hyphen. e.g. `x-is-unique`, `x-content-type`
- For language-specified vendor extension, put it in the form of `x-{lang}-{extension-name}`. e.g. `x-objc-operation-id`, `x-java-feign-retry-limit`
- For a list of existing vendor extensions in use, please refer to https://github.com/swagger-api/swagger-codegen/wiki/Vendor-Extensions. If you've added new vendor extensions as part of your PR, please update the wiki page.
- For a list of existing vendor extensions in use, please refer to https://github.com/openapitools/openapi-generator/wiki/Vendor-Extensions. If you've added new vendor extensions as part of your PR, please update the wiki page.
### Testing
To add test cases (optional) covering the change in the code generator, please refer to [modules/swagger-codegen/src/test/java/io/swagger/codegen](https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen/src/test/java/io/swagger/codegen)
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](http://petstore.swagger.io/) 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/swagger-api/swagger-codegen/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/Swagger spec from time to time. If you've questions or concerns, please open a ticket to start a discussion)
- 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)
To start the CI tests, you can run `mvn verify -Psamples` (assuming you've all the required tools installed to run tests for different languages) or you can leverage http://travis-ci.org to run the CI tests by adding your own Swagger-Codegen repository.
To start the CI tests, you can run `mvn verify -Psamples` (assuming you've all the required tools installed to run tests for different languages) or you can leverage http://travis-ci.org to run the CI tests by adding your own openapi-generator repository.
### Tips
- Smaller changes are easier to review
@@ -90,7 +95,7 @@ To start the CI tests, you can run `mvn verify -Psamples` (assuming you've all t
- Add test case(s) to cover the change
- Document the fix in the code to make the code more readable
- Make sure test cases passed after the change (one way is to leverage https://travis-ci.org/ to run the CI tests)
- File a PR with meaningful title, description and commit messages. A good example is [PR-3306](https://github.com/swagger-api/swagger-codegen/pull/3306)
- File a PR with meaningful title, description and commit messages.
- Recommended git settings
-`git config --global core.autocrlf input` to tell Git convert CRLF to LF on commit but not the other way around
- To close an issue (e.g. issue 1542) automatically after a PR is merged, use keywords "fix", "close", "resolve" in the PR description, e.g. `fix #1542`. (Ref: [closing issues using keywords](https://help.github.com/articles/closing-issues-using-keywords/))
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.