* renmae Go post process file env variable
* add back samples/client/petstore/c/libcurl.licence
* keep go samples up-to-date
* update go petstore samples
* update go samples without formatting
* Generate default values for optional model fields in scala-akka
Fix#1118
* Updated akka-client petstore with defaults for optional model fields
* update petstore sample with scalafmt
* Use the same name for all exposed encoder & decoders;
* Improve imports (limit exposures);
* Add support for OAS3 discriminators;
* Distinct between 0.18 & latest mustache files.
* copy from go-server and add go-gin-server generator
* change the templates for the gin
* fix warnings of the golint tool
* fix the path of script
* add samples
* delete unnecessary comments (#1048)
* make the help message more appropriate (#1048)
* fix the link address format (#1048)
* minor improvement
* If required and readonly, a field should be optional. This is to allow people to get and easily put back.
* Use list instead of array, use String instead of kotlin.String etc
* Update samples
* code review: fix annotation formatting
* code review: revert change to use listOf
* [Ada] Operation security scopes are ignored when generating the server (#1043)
- Update fromOperation() to keep the operation required scopes for each auth
method and store that information in the x-scopes vendor extensions attribute
- Update postProcessOperationsWithModels() to process the operation required
scopes and build a list of authMethods which only contain the required scopes
for the operation and store these authMethods in the x-auth-scopes attribute.
- Update postProcessAuthMethod() to handle the logic of filtering and building
the operation authMethod (new instances are created because we must not
modify the global authMethod definitions)
- Update the Ada server templates to use the x-auth-scopes instead of authMethods
Add a URL prefix parameter for the Ada server instantiation
* Fix the Ada server template to use the x-auth-scopes for operation scopes
* Add support for access token retry in okhttp-gson lib
* Update expected number of generated files in test
* Update samples
* Update security samples
* Fix default user-agent and update samples
* allVars is duplicating child preoperties when models are inherited. Filter out these duplicates in the KotlinSpringServerCodegen
* isInherited property was not being populated in the CodegenModel, re-parse the models in the KotlinSpringServerCodegen class and populate the property here
* Add template support for Kotlin models which require inheritance from a base class to support oneOf declarations in the api yaml
* Change optional for parameters to use Kotlins nullable
* Update petstore api with Optional -> Nullable
* feature: add generator for typescript/axios
* feature: add sample scripts and sample code
* fix: set request body in data property
* feature: add samples and tests for typescript axios client
* test: add tests for typescript axios client
* fix template to add @Valid to POJO fields regarding nest, in java-jersey
* regenerate with for scr in `ls ./bin/*jersey*.sh`; do sh $scr; done
* re-generate with ./bin/openapi3/jaxrs-jersey-petstore.sh
* update api template for jersey1
* re-generate samples
* re-generate samples
* Support Gradle 4.10
Gradle 4.10 is bundled with Kotlin 1.60 and Kotlin DSL 1.0-rc1. The new
Kotlin DSL isn't binary compatible with the `tasks` registration used in
this plugin.
Updating to Kotlin DSL 1.0-rc1 with no other changes would require users
to update to Gradle 4.10.
As a workaround, I've modified the tasks registration being done in
OpenApiGeneratorPlugin.kt, so rather than using the Kotlin DSL's invoke,
it creates tasks manually against the TasksContainer. This works locally
with Gradle 4.7+ for all scenarios in the sample (samples/local-spec).
There may be edge cases that I'm unaware of, and we may want to consider
defining the minimum supported Gradle version of 4.10 in the next major
version of openapi-generator-gradle-plugin if we experience those cases.
* Uncomment snapshots repo (commented it during local testing)
* update pom.xml for exec gradle plugin
* Update the .net core sdk to v2.1 and update the asp.net packages used.
* Upgrade the SwashBuckle Asp.Net Core package to v3.0.0.
* Update the AppSettings json file and add a file used in development.
Also, remove the web.config file.
* Update the program template to use the web host builder class.
* Update the startup class to use the Asp.Net 2.1 paradigms.
* Update the launch settings json file.
* Update the controller template to derive from the ControllerBase class as aposed to Controller.
* Add the SwashBuckle annotations package.
* Add the SwashBuckle.AspNetCore.Annotations namespace to the controller template.
* Update the Startup template to add comments to the Configuration property and an env parameter to the Configure method.
* Update the startup class so we don't need to inject the hosting environment.
* Update the program class to have hte recommended CreateWebHostBuilder method from asp.net core 2.1.
* Update the asp.net core pet store sample server.
* add back aspnetcore 2.0 template via option
* remove web.config for aspnet core 2.1
Support basic query handling
Add helpers for primitive de-serialization
Remove warnings due to unneeded commas
Deserialize basic types in queries
Add dependencies chain for external libraries
Fixes wrong parameter passed to API
This fixes an issue that makes the swift 4 api client fail to compile when using enums with a default value.
The fix changes the toDefaultValue method to check if the property is of enum type, and then returns a properly formatted value.
Looking into the code, I wonder why toEnumDefaultValue is not being used here, which seems to be the case for the java implementation.
* fix circular import issue in python flask
This is very similar change to 3678eaff87
All it intends to do is fix the problem of cirular imports (which was
already fixed for python) in the python flask server.
* removal of type hints in quotes
* Open Virtualan API Implementation
* Menu change
* Delete .swagger-codegen-ignore
* Delete jsonbeautifier.html
* Supporting files for Virtual service setup
* CRLF removed
* Unwanted new lines are removed
* Build issues resolved
* Build issue resolved
* Removed Logger statement
* Logger removed
* Updated
* Codegen virtual services samples for petstore.yaml
* - Code Revamp and Clean up
- Maven plugin related changes
- Samples added
* Tab space removed..
* Annotation based Service virtualization
* Open API code generator changes
* Virtualan samples added with Sprint boot app.
* Build issue resolved
* Removed unwanted files
* Updated with version 3.0.3 SNAPSHOT
* Reverted the options for virtual service in global and not needed now.
* virtualan-plugin integration with open api tool.
* Updated the all review comments and removed all tab spaces.
* Updated the ReadMe generator section.
* New line removed to fix the build issue.
* Spring boot virtualan included in the spring build script
* Included in the spring-all-petstore script
* add elm-format support
* update elm petstore samples
* add trenneman to elm tech comm
* replace dart class with elm class
* revise elm format arguments
* update petstore samples
* Restore support for nullable in rust-server
Accounts for changes in https://github.com/OpenAPITools/openapi-generator/pull/930. Adds a nullable field to the sample to reduce the risk of this regressing again in future.
* Add test for required nullable field
* [PHP] Enhance interfaces, abstracts and traits
It would be helpful to set prefix/suffix for all interfaces, abstracts
and traits in one place. Defaults are set to follow "PSR Naming Conventions".
If user will ask we can add prefix/suffix generator options in future.
I don't see modelPrefix generator option, so I assume it's not important now.
Ref: https://www.php-fig.org/bylaws/psr-naming-conventions/
* [Slim] Refactor to use new helpers
* [Slim] Refresh samples
* Add an option for Dart2
* add dart2 samples, update travis
* fix dart installation
* Upper constraints on the SDK version
* Update dependencies
* supportDart2 option can now be passed through --additional-properties
* Update petstore tests
* Update dart2-petstore.sh
* Running tests on Dart VM
* Fixed JSON deserialization bugs
* Fixed missing initialization of postBody
* Run bin/dart2-petstore.sh to regenerate libraries
* Update pom.xml
* Added SDK version constraints in pubspec.mustache
* Run bin/dart2-petstore.sh to regenerate libraries
* move dart2 test to the end
* 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 phplint package to dependencies
There is no phplint package for PHP 5.5.0 version, so I have to increase
required PHP version to 5.5.9.
* [Slim] Update main doc
* [Slim] Refresh 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
* 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
* [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
- [ ] Read the [contribution guidelines](https://github.com/openapitools/openapi-generator/blob/master/CONTRIBUTING.md).
- [ ] Ran the shell script under `./bin/` to update Petstore sample so that CIs can verify the change. (For instance, only need to run `./bin/{LANG}-petstore.sh` and `./bin/security/{LANG}-petstore.sh` if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in `.\bin\windows\`.
- [ ] Filed the PR against the [correct branch](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches): `master`, `3.1.x`, `4.0.x`. Default: `master`.
- [ ] 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.
[](https://gitter.im/OpenAPITools/openapi-generator?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.openapitools%22%20AND%20a%3A%22openapi-generator%22)
[](https://twitter.com/oas_generator)
</div>
@@ -32,13 +29,12 @@
:notebook_with_decorative_cover: For more information, please refer to the [Wiki page](https://github.com/openapitools/openapi-generator/wiki) and [FAQ](https://github.com/openapitools/openapi-generator/wiki/FAQ) :notebook_with_decorative_cover:
:notebook_with_decorative_cover: The eBook [A Beginner's Guide to Code Generation for REST APIs](https://gumroad.com/l/swagger_codegen_beginner) is a good starting point for begineers :notebook_with_decorative_cover:
:notebook_with_decorative_cover: The eBook [A Beginner's Guide to Code Generation for REST APIs](https://gumroad.com/l/swagger_codegen_beginner) is a good starting point for beginners :notebook_with_decorative_cover:
:warning: If the OpenAPI spec is obtained from an untrusted source, please make sure you've reviewed the spec before using OpenAPI Generator to generate the API client, server stub or documentation as [code injection](https://en.wikipedia.org/wiki/Code_injection) may occur :warning:
:bangbang: Both "OpenAPI Tools" (https://OpenAPITools.org - the parent organization of OpenAPI Generator) and "OpenAPI Generator" are not affiliated with OpenAPI Initiative (OAI) :bangbang:
</div>
## Overview
@@ -46,11 +42,11 @@ OpenAPI Generator allows generation of API client libraries (SDK generation), se
@@ -84,16 +80,17 @@ OpenAPI Generator allows generation of API client libraries (SDK generation), se
The OpenAPI Specification has undergone 3 revisions since initial creation in 2010. The openapi-generator project has the following compatibilities with the OpenAPI Specification:
OpenAPI Generator Version | Release Date | OpenAPI Spec compatibility | Notes
4.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/4.0.0-SNAPSHOT/)| TBD | 1.0, 1.1, 1.2, 2.0, 3.0 | Major release with breaking changes (no fallback)
3.1.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/3.1.0-SNAPSHOT/)| TBD | 1.0, 1.1, 1.2, 2.0, 3.0 | Minor release with breaking changes (with fallbacks)
4.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/4.0.0-SNAPSHOT/)| TBD | Major release with breaking changes (no fallback)
3.4.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/3.4.0-SNAPSHOT/)| TBD | Minor release (breaking changes with fallbacks)
[3.3.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v3.3.0) (latest stable release) | 01.10.2018 | Minor release (breaking changes with fallbacks)
### [1.2 - Artifacts on Maven Central](#table-of-contents)
For old releases, please refer to the [**Release**](https://github.com/OpenAPITools/openapi-generator/releases) page.
## [1.2 - Artifacts on Maven Central](#table-of-contents)
You can find our released artefacts on maven central:
@@ -126,7 +123,7 @@ See the different versions of the [openapi-generator-cli](https://mvnrepository.
</dependency>
```
* See the different versions of the [openapi-generator-maven-plugin](https://mvnrepository.com/artifact/org.openapitools/openapi-generator-maven-plugin) artifact available on maven central.
For **Windows** users, you will need to install [wget](http://gnuwin32.sourceforge.net/packages/wget.htm) or you can use Invoke-WebRequest in PowerShell (3.0+), e.g.
One downside to manual jar downloads is that you don't keep up-to-date with the latest released version. We have a Bash launcher script at [bin/utils/openapi-generator.cli.sh](./bin/utils/openapi-generator-cli.sh) which resolves this issue.
To install the launcher script, copy the contents of the script to a location on your path and make the script executable.
An example of setting this up (NOTE: Always evaluate scripts curled from external systems before executing them).
Now, `openapi-generator-cli` is "installed". On invocation, it will query the GitHub repository for the most recently released version. If this matches the last downloaded jar,
it will execute as normal. If a newer version is found, the script will download the latest release and execute it.
If you need to invoke an older version of the generator, you can define the variable `OPENAPI_GENERATOR_VERSION` either ad hoc or globally. You can export this variable if you'd like to persist a specific release version.
Examples:
```
# Execute latest released openapi-generator-cli
openapi-generator-cli version
# Execute version 3.1.0 for the current invocation, regardless of the latest released version
OPENAPI_GENERATOR_VERSION=3.1.0 openapi-generator-cli version
# Execute version 3.1.0-SNAPSHOT for the current invocation
OPENAPI_GENERATOR_VERSION=3.1.0-SNAPSHOT openapi-generator-cli version
# Execute version 3.0.2 for every invocation in the current shell session
export OPENAPI_GENERATOR_VERSION=3.0.2
openapi-generator-cli version # is 3.0.2
openapi-generator-cli version # is also 3.0.2
# To "install" a specific version, set the variable in .bashrc/.bash_profile
openapi-generator-cli version # is always 3.0.2, unless any of the above overrides are done ad hoc
```
### [1.4 - Build Projects](#table-of-contents)
To build from source, you need the following installed and available in your `$PATH:`
@@ -275,6 +315,20 @@ Once built, `run-in-docker.sh` will act as an executable for openapi-generator-c
-g go -o /gen/out/go-petstore -DpackageName=petstore # generates go client, outputs locally to ./out/go-petstore
```
##### Troubleshooting
If an error like this occurs, just execute the **mvn clean install -U** command:
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project openapi-generator: A type incompatibility occurred while executing org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test: java.lang.ExceptionInInitializerError cannot be cast to java.io.IOException
```sh
./run-in-docker.sh mvn clean install -U
```
> Failed to execute goal org.fortasoft:gradle-maven-plugin:1.0.8:invoke (default) on project openapi-generator-gradle-plugin-mvn-wrapper: org.gradle.tooling.BuildException: Could not execute build using Gradle distribution 'https://services.gradle.org/distributions/gradle-4.7-bin.zip'
Right now: no solution for this one :|
#### Run Docker in Vagrant
Prerequisite: install [Vagrant](https://www.vagrantup.com/downloads.html) and [VirtualBox](https://www.virtualbox.org/wiki/Downloads).
```sh
@@ -312,21 +366,23 @@ To get a list of PHP specified options (which can be passed to the generator wit
You can build a client against the [Petstore API](https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml) as follows:
```sh
./bin/java-petstore.sh
./bin/java-petstore-okhttp-gson.sh
```
(On Windows, run `.\bin\windows\java-petstore.bat` instead)
(On Windows, run `.\bin\windows\java-petstore-okhttp-gson.bat` instead)
This will run the generator with this command:
This script uses the default library, which is `okhttp-gson`. It will run the generator with this command:
- 2018/05/12 - [OpenAPI Generator - community drivenで成長するコードジェネレータ](https://ackintosh.github.io/blog/2018/05/12/openapi-generator/) by [中野暁人](https://github.com/ackintosh)
- 2018/05/15 - [Starting a new open-source project](http://jmini.github.io/blog/2018/2018-05-15_new-open-source-project.html) by [Jeremie Bresson](https://github.com/jmini)
- 2018/05/15 - [REST API仕様からAPIクライアントやスタブサーバを自動生成する「OpenAPI Generator」オープンソースで公開。Swagger Codegenからのフォーク](https://www.publickey1.jp/blog/18/rest_apiapiopenapi_generatorswagger_generator.html) by [Publickey](https://www.publickey1.jp)
- 2018/04/12 - [Generate Angular API clients with Swagger](https://angular.schule/blog/2018-04-swagger-codegen) by [JohannesHoppe](https://github.com/JohannesHoppe)
- 2018/06/08 - [Swagger Codegen is now OpenAPI Generator](https://angular.schule/blog/2018-06-swagger-codegen-is-now-openapi-generator) by [JohannesHoppe](https://github.com/JohannesHoppe)
- 2018/06/21 - [Connect your JHipster apps to the world of APIs with OpenAPI and gRPC](https://fr.slideshare.net/chbornet/jhipster-conf-2018-connect-your-jhipster-apps-to-the-world-of-apis-with-openapi-and-grpc) by [Christophe Bornet](https://github.com/cbornet) at [JHipster Conf 2018](https://jhipster-conf.github.io/)
- 2018/06/27 - [Lessons Learned from Leading an Open-Source Project Supporting 30+ Programming Languages](https://speakerdeck.com/wing328/lessons-learned-from-leading-an-open-source-project-supporting-30-plus-programming-languages) - [William Cheng](https://github.com/wing328) at [LinuxCon + ContainerCon + CloudOpen China 2018](http://bit.ly/2waDKKX)
- 2018/07/19 - [OpenAPI Generator Contribution Quickstart - RingCentral Go SDK](https://medium.com/ringcentral-developers/openapi-generator-for-go-contribution-quickstart-8cc72bf37b53) by [John Wang](https://github.com/grokify)
- 2018/08/22 - [OpenAPI Generatorのプロジェクト構成などのメモ](https://yinm.info/20180822/) by [Yusuke Iinuma](https://github.com/yinm)
## [6 - About Us](#table-of-contents)
@@ -456,7 +524,9 @@ Here is a list of template creators:
* C# (.NET 4.5 refactored): @jimschubert
* Clojure: @xhh
* Dart: @yissachar
* Dart (refactored in 2.4.0): @joernahrens
* Dart (refactor): @joernahrens
* Dart 2: @swipesight
* Dart (Jaguar): @jaumard
* Elixir: @niku
* Elm: @trenneman
* Eiffel: @jvelilla
@@ -471,6 +541,7 @@ Here is a list of template creators:
# this bash script will loop through all the .sh files under bin
# execute the script and check the result (exit code) to see if
# there's any error
echo "IMPORTANT: this script should be run by the CI (e.g. Shippable) only. There's no need to run this script to update Petstore samples for all generators."
echo "Please press CTRL+C to stop or the script will continue in 10 seconds."
sleep 10
successes=0
failures=0
for SCRIPT in $(ls -l ./bin/openapi3/*.sh | grep -v all)
do
if [ -f ${SCRIPT} -a -x ${SCRIPT} ]; then
echo "Running $SCRIPT (output to /dev/null)"
${SCRIPT} 2>&1 > /dev/null
rc=$?
if [[ ${rc} != 0 ]]; then
>&2 echo "ERROR!! FAILED TO RUN ${SCRIPT}"
((failures+=1))
else
((successes+=1))
fi
fi
done
if (( failures > 0 )); then
>&2 echo "[ERROR] ${failures} out of $((failures+successes)) scripts failed."
REM this batch file will loop through all the .bat files under bin\openapi3\windows\
REM execute the script and check the error level to see if there's any error
echo IMPORTANT: this script should be run by the CI (e.g. appveyor) only. There's no need to run this script to update Petstore samples for all generators.
echo Please press CTRL+C to stop or the script will continue in 10 seconds.
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.