* 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] Escape reserved words, support Array[Byte]
Previously, Array[Byte] was compiling to ArrayByte. This provides a type
mapping to output the correct type.
This also escapes reserved words with grave accents, as is most common
in Scala. Escaping with an underscore prefix breaks serialization (in
Jackson, for example) unless templates are modified manually. Escaping
using grave accent should unblock most serializers from requiring
template modifications.
* [scala] Regenerate integration test outputs
* [scala] Regenerate samples
* [scala] Remove unused imports in related codegen files
* [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
* [scala] Fix default values in scala client
This uses consistent logic for optional types with default values in the
scala client. Also, uses Option(default) instead of Some(default) to
guard against people defining defaultValue = null. Option(null) becomes
None while Some(null) defines a null value explicitly and will break
maplike operations.
* [scala] Regenerate client sample
* [scala] Add missing json4s import, which will be added by another PR but allows current samples to generate
* [scala] Include integration tests for required attributes support
* [scala] Support string types with formats
This adds support for better support of type=string and
format={date,date-time,binary,byte}. Previously, binary and byte were
inconsistently defined as strings rather than byte arrays, while
date/date-time were parsing default values into formats that did not
match OpenAPI/Swagger 2.0 specifications for full-date and date-time.
We may want to consider pulling in json4s-ext to support wider date
formats and moving to date=LocalDate and date-time=ZonedDateTime.
This will have breaking changes for consumers expecting binary/byte to
be strings rather than byte arrays.
* [scala] Unique parameter names in integration test, to avoid seemingly conflicting names
* [scala] Regenerate client sample
* Sort file listings in AssertFile.java
Per File#list() javadocs:
There is no guarantee that the name strings in the resulting array
will appear in any specific order; they are not, in particular,
guaranteed to appear in alphabetical order.
I'm unable to repro directory listing failures on OS X High Sierra or
Ubuntu 16.04 under Parallels, so it's not clear to me if listing order
is indeterminate per-platform or the behavior is just not defined and
up to the platform's installed runtime. Sorting the array of strings
prior to comparison should resolve this issue on every platform/runtime.
* [scala] exclude api tests for integration test gen script
Script should match options in the integration test class
* [scala] Temporarily disable client integration tests
CI doesn't seem to pick up template changes in integration tests.
Disabling scala client integration tests, pending investigation of the
issue.
* [scala] Remove redundant json4s import
* [scala] Regenerate integration test
* [scala] Regenerate sample
Rustfmt is widely accepted in the rust community. The actual style it
enforces is not completely stable, but running a reasonably recent
rustfmt and reading the short rfc-based style guide seems better than
nothing by a long shot.
* Initialize router in init method and re-use router member to create SwaggerRouter
* Added generated samples for 7320 fix
* Fixed alignment to 4 spaces for 7320 fix
* 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
* Add Ada client petstore samples
- Add script to generate Ada client support with swagger-codegen
- Add files to build the Ada sample
- Add main program to use the generated client samples API
and connect to the server to perform some operations
* Add some description for the samples
* Update the documentation to explain how to build, how to use the generated Ada client code
* Add server support for path parameters
- Update postProcessOperations to scan each path parameter and emit a x-path-index
vendor attribute to tell the index of the path parameter
* Add and fix Ada server code package declaration
- fix declaration of operations
- generate a generic package that must be instantiated with the target server implementation
and which provides the skeleton (deserialization and serialization of data)
* Implement the Ada server side operations
- extract body, query parameters, path parameters
- serialize the result
- register operations to the server according to the path/routes
* Update the code generation to generate server Ada implementation code
* Improvement of Ada server support: generate the swagger.json template file
* Define toModelName operation to the creation of a model identifier
* Add support for server permission generation
- collect the security scopes in postProcessAuthMethod() method and make sure
these scopes have unique identifiers. Some scopes correspond to URLs
but others correspond to pseudo identifiers.
* Use the #lambdaAdaComment filter to indent correctly a multi-line description
* Fix model generation to support arrays
* Update the generated GNAT project file
* Refactoring and improvement of server code generation
- Change the server generated code to pass a Context_Type object
to allow the server implementation to get/set headers in the request/response
and control what is put in some responses
- Generate the security permissions based on the scopes that have been collected
* Server code generation improvement
- Fix generation of GNAT project
- Generate the intermediate Ada packages if necessary
- Generate the server main
* Ada server main template
* Ada server code improvement
- Add support to generate server permission verification
- Fix the GNAT project definition
- Templates for Ada intermediate packages
* Skeleton for the server side implementation
* Generate an empty Ada server implementation
* Templates for the Ada server implementation
* Add a README.md file and a GNAT config.gpr file
* New templates to document the generated Ada server
* Add server configuration file for the Ada server
* Fix the log message in the Ada server to report the correct URI to connect to
* Generate the Ada server configuration file
* Improvement of Ada code model to support nullable types
* Update the Ada server templates
* Refactor the Ada code generator
- separate the Ada client and Ada server code generators
- register the Ada server code generator under the name 'ada-server'
keep 'ada' for the client Ada code generator
- moved the common Ada code operation supports to the AbstractAdaCodegen
* Improvement and cleanup of Ada client and server code
- new template for the client main program
- fix the GNAT project template for client or server programs
- remove unused options to better use the --model-package option
* Fix the GNAT project file name to use a lower case name
Fix the default GNAT config
Fix the headers of intermediate Ada package files
* Regenerate the model and client Ada files
* Update the Ada client sample to take into account the Nullable types
* Regenerate some files with Ada Swagger Codegen
* Ignore generation of petstore.gpr
* 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
* master: (101 commits)
[Swift4] Allow for custom dateformatter to be used (#6672)
[haskell-http-client] fix bug when generating models-only (#6931)
fix typo: crediential => credential
minor typo fix
[csharp] fix enum serialization of first value (#6873)
[PHP] Improve docs and README (#6935)
Binary mode for file deserialization in python (#6936)
add python tornado test to travis
[Python/tornado] add integration tests and fix bugs (#6925)
Fix PHP passes response body to ApiException (#6923)
[TypeScript][Node] Resolve TS2532 error (#6932)
skip "all" shell script
minor formatting change
Fixes Issue #6841, Map for accessing additionalProperties is generated. (#6886)
add tsloughter as owner erlang
WIP: initial commit for Erlang client generator (#6502)
add back php client test
Switch Travis image from MacOS to Linux (#6937)
add link to ebook
[Scala] Default case class Option types to None for non-required fields (#6790)
...
Enums defines as ref models have a different object structure
(CodegenModel) than those defined as inner enums (CodegenProperty). To
make these look as similar as possible, we walk all ref model enums and
reassign enumVars with the same properties inherited from the top level
CodegenProperty so CodegenModel enums can use the same templates as
inner enums.
C# works differently from most languages in that enums are not
considered objects. This means default(EnumType) will choose a default
of the first enum option. This isn't desirable because it breaks the
required = false functionality of swagger specs, which defines a
property which isn't required to exist in the message body.
Rather than force consumers to use enum values such as UNSPECIFIED, UNKNOWN,
NOT_SET, etc... we can treat enums as primitives. This means any
non-required enum will become Nullable<EnumType> regardless of whether
it is defined as an inline enum or a referenced enum model.
2017-10-30 15:48:18 -04:00
17748 changed files with 948630 additions and 775582 deletions
@@ -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.1.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
@@ -69,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
@@ -89,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.