* WIP: CodegenProperty with XML
* WIP: CodegenModel XML bits
* WIP: Jackson XML
* WIP: Java templating
* WIP: Java client withXml flag
* WIP: resttemplate work
* WIP: withXml only when Jackson is used
* WIP: Tabs to spaces
* WIP: java-petstore-resttemplate-withxml sample
* WIP: language: spring
* WIP: language "spring" using library "spring-boot" should include apiPackage in @ComponentScan to detect the API
* WIP: javax.xml for non-Jackson Java and enabled payload logging for jersey2
* WIP: updated java petstore samples
* WIP: JavaSpring with non-jackson XML
* WIP: bin/spring-all-pestore.sh
* - Added Restbed Generator
* - Added Json processing functions to model
- Removed unnused code from restbed codegen class
- Added response header processing to api template
* Changed it to respect alphabetical order
* Made the string joining java 7 compatible
* Added samples
* Started work on restbed improvment
* - Updated samples
- Reworked Resource class names
- Added vendor extension for new formatted resource class names
* fix indention
* Fix error in Symfony models #5985
* Parse Symfony params #5985
* Implement auth metods in Symfony #5985
* Make "get" to "is" in Symfony's booleans #5985
* Use `camelize` instead of `initialCaps` in Symfony #5985
* Use File.separator instead of "/" in PHP/Symfony #5985
* Improve README generation for Symfony #5985
* Create an options test for Symfony #5985
* Add a swift4 client generator
* Updates per review comments:
- Changed Alamofire dependency from 4.0 to 4.5
- Added "Codable", "Encodable", and "Decodable" to list of reserved words in generator
- Ran "pod update" in default, promisekit, and rxswift samples test projects
Adding the possibility to generate java Vert.X servers.
It uses Vertx-Swagger-Router project.
It can generate an Async callback version or a Rx version.
* [Bugfix] Removed a debug print statement that sometimes caused crashes.
Change-Id: I62cf8d70faddfe855c7150927441465466dbaa53
Signed-off-by: akhilkedia94 <akhil.kedia@samsung.com>
* [Workaround/Fallback] Fix conversion of string representation of Json to JsonNode
Changed the conversion to consider any non-parseable string as a single "json string" object.
This is just a fallback to handle non-ideal server responses.
Change-Id: I5339d385e57b6225706fbaaaba1c04003c3810e9
Signed-off-by: akhilkedia94 <akhil.kedia@samsung.com>
* [Bugfix] Correct Handling of Non-String Value Types in Json Maps
Inside the Json Maps in server response, the earlier code was bugged if the "value" in the map was of a non-string type.
Change-Id: I8c34c7e9470fc0743b509917f8098b2ebe2bd4e5
Signed-off-by: Akhil <akhil.kedia@samsung.com>
* [BugFix/WorkAround] No "isPrimitiveType" in BodyParams
The "isPrimitiveType" value tells us whether the data type of a particular parameter is one if the primitive types.
This value is not present when iterating over all the body parameters, but is somehow present when
iterating over all parameters and filtering for only BodyParams.
Change-Id: I5b0a97e615b7300c33dc7f3d4673ad5e87c36f7e
Signed-off-by: Akhil <akhil.kedia@samsung.com>
* [Bugfix] Making Functions Static to Avoid Name Clashes
Multiple functions in different classes might named the same, hence leading to multiple functions of the same name.
Using static to have only internal linkage for these helper functions.
Change-Id: I97fb1dd64b176c4a2b95e6d923723469852bc85a
Signed-off-by: Akhil <akhil.kedia@samsung.com>
* [Enhancement] Minor Improvements to Documentation
Added Modules in Doxygen Doc, Improved MD documentation
Signed-off-by: Akhil Kedia <akhil.kedia@samsung.com>
* Regenrated petstore sample
Update the petstore sample with newest template files
Deleted older sample in samples/client/petstore/tizen/client/
The old samples use oblsolete APIs
(These are APIs for Tizen 2.0, removed in 2.4, current release is 3.0)
Signed-off-by: Akhil Kedia <akhil.kedia@samsung.com>
* [Bugfix] Fixes incorrect headers sent (#5980)
Regenerated the petstore as well.
Signed-off-by: Akhil Kedia <akhil.kedia@samsung.com>
* fix: es6 style of Array inheritance to fix transpiler error
* fix: rebuild of promise-es6 petstore samples with fixed mustache
style: added space between classname and bracket
* style: rebuild javascript-all to reflect style changes in mustache
* First commit of the Java Play Framework server generator. It is highly based on Spring so there might me a couple of things that don't make sense (like options or parameters) for the Play Framework.
* Fix suggestions in the PR discussion + add .bat and .sh file as requested.
* Updated Readme.md file
* Remove unused mustache file + fix baseName vs paramName in all the mustache files.
* Fix the compilation error when we have a body which is a list or map. Doesn't fix the problem with the annotation itself.
* Fix the problem with the Http.MultipartFormData.FilePart
* First iteration of updating the typescript-jquery template/generator
* first RC of the new version of Typescript-JQuery using better models.
* Minor fix to the generation
* first RC of the new version of Typescript-JQuery using better models.
* Add an options for people using this client in a legacy app and that already have jquery loaded with a script tag somewhere
* Generation of the samples based on the latest changes from the typescript-jquery generator
* Fix to the check if the value is null and undefined
* Small fix when using collection
* updated Spring, Boot, Fox and Cloud dependencies
* run scripts for java, jaxrs-cxf and spring samples (although changes are not related to my changes)
* update jersey java8 petstore samples
* update java feign samples
* update java petstore samples
* add new files for java petstore clients
* roll back spring cloud dep version
* fix jaxrs-cxf error
* Adds Valid annotation for request body (#4847)
If useBeanValidation is active, this change will add Valid annotation to ReqeustBody
* Adds generated samples for bean vaildation in spring boot (#4847)
* Adds feature option (#3819)
When you enable the feature useOptional the JavaSpring generator will use type Optional for non required parameters.
* Adds generated sample for #3819
* Adds generated sample for #3819
* Reverts commit for bean validation
* Adds generated sample for #3819
* Reverts commit for bean validation
* Fix alignment
* update spring samples
* update pom.xml to include spring use optional samples
* update artifactId to "spring-boot-beanvalidation"
* rpelace tab with 4-space
* check mvn task result
* Closes#5863
The "dateLibrary" option for java, sadly, sets a mustache value "java8". This change updates this so that "java" in the mustache
libraries means what it should mean - use all java8 classes. In this case, there's no need for the third party Base64 library
as java8's JDK has this built in. In my view, the "dateLibrary" should be deprecated but that should be a separate PR.
* Closes#5954
built and ran tests/samples
* - Added Restbed Generator
* - Added Json processing functions to model
- Removed unnused code from restbed codegen class
- Added response header processing to api template
* Changed it to respect alphabetical order
* Made the string joining java 7 compatible
* Added samples
* fix java7 issue with apache
* NancyFx - Fixed bug in the generation of enum types in the NancyFx server, which cause enums to be generated as general classes, without the enum values and with compilation errors (#5910)
* NancyFx - Changes in the nancyfx sample after the updates in the nancyfx model.mustache template. (#5910)
* Closes#5863
The "dateLibrary" option for java, sadly, sets a mustache value "java8". This change updates this so that "java" in the mustache
libraries means what it should mean - use all java8 classes. In this case, there's no need for the third party Base64 library
as java8's JDK has this built in. In my view, the "dateLibrary" should be deprecated but that should be a separate PR.
* updated samples
* fixed tests for new CLI java8
* regenerated samples after master merge
* oops - left in an end tag after master merge
* rerun checks
* rerun checks
* - Added Restbed Generator
* - Added Json processing functions to model
- Removed unnused code from restbed codegen class
- Added response header processing to api template
* Changed it to respect alphabetical order
* Made the string joining java 7 compatible
* Added samples
* Auto stash before merge of "master" and "origin/master"
* added missing apache2 config gen in services file
* - Added new Config Type
- Added Samples
- Added sample generating scripts
- Renamed Apache2Confgen to Apache2ConfigCodegen
* - Added Samples
- Added new config type
- Added sample generating scripts
- Renamed Apache2Confgen to Apache2ConfigCodegen
* updated versions
* match fix in 2.2.x branch
* updated with 73df07d64c
* regenerate pom.xml for jaxrs-cxf-petstore-server-annotated-base-path
* regenerate pom.xml for jaxrs-cxf-petstore-server-non-spring-application
* update dep for java jersey1, jersey2
* update sbt dependency for jersey2
* update dep for java okhttp-gson, resteasy, resttemplate
* update dep for java retrofit 1.x, 2.x
* update java petstore samples
* fix JS shell script, add log to show es version
* change CLI option default value for useES6
* fix shell script in JS ES6 promise
* fix windows batch files
* set useES6 to false
* - Added Restbed Generator
* - Added Json processing functions to model
- Removed unnused code from restbed codegen class
- Added response header processing to api template
* Changed it to respect alphabetical order
* Made the string joining java 7 compatible
* Added samples
* First step in fixing the cpp rest template
regenerated new samples
TODO: Fix the other functions
* Updated samples
* Added isMapContainer check
* Fixed item selection in json object for MapContainer
* - Fixed Syntax error in C++
- Fixed Syntax error in Mustache, that escaped characters
* - Added Restbed Generator
* - Added Json processing functions to model
- Removed unnused code from restbed codegen class
- Added response header processing to api template
* Changed it to respect alphabetical order
* Made the string joining java 7 compatible
* Added samples
* First step in fixing the cpp rest template
regenerated new samples
TODO: Fix the other functions
* Updated samples
* Added isMapContainer check
* Fixed item selection in json object for MapContainer
* add powershell generator (wip)
* minor fix to api template
* rename model files
* Powershell generator fix (#11)
* Fix typo
pacakge -> package
* Add missing `petstore` subfolder to $ClientPath
* Resolve $ClientPath to absolute path
Start-Process needs WorkingDirectory to be absolute
* Fix spaces in variable name
${ somevar } is a vairable that literally has spaces in name. We need to
temporarily redifine mustache delimiters so we can generate var. names
without spaces.
* Fix typo
Remove stray `r`
* Fix *.ps1 import in module
Directory structure has changed + we should export functions using
manifest.
* Remove erroneous file
* various fixes and enhancements
* remove nullable for string
* change function name based on feedback by beatcracker
* set index to start at 0
* fix file type
* Powershell generator fix 1 (#12)
* Add closing curly brace
* Fix duplicated '['
* Get FunctionsToExport using AST
Discussion: swagger-api/swagger-codegen#5789
* add guid option to powershell generator
* add test files, remove docs
* fix array of items
* clean up powershell comment, update model/api test files
* - Added Restbed Generator
* - Added Json processing functions to model
- Removed unnused code from restbed codegen class
- Added response header processing to api template
* Changed it to respect alphabetical order
* Made the string joining java 7 compatible
* Added samples
* First step in fixing the cpp rest template
regenerated new samples
TODO: Fix the other functions
* Updated samples
* Changing QBuffer to use a QByteArray solves the issue for me since there is no real use-case for using a QBuffer.
Documentation of QT5 states:
QBuffer::QBuffer(QByteArray *byteArray, QObject *parent = Q_NULLPTR)
Constructs a QBuffer that uses the QByteArray pointed to by byteArray as its internal buffer, and with the given parent. The caller is responsible for ensuring that byteArray remains valid until the QBuffer is destroyed, or until setBuffer() is called to change the buffer. QBuffer doesn't take ownership of the QByteArray.
Since the variable “request_content” is allocated on the stack, this is clearly wrong and a bug. The construction of QBuffer is designed this way so that whenever you write to the buffer, it is also written to the byte array that it is pointing to
* Add a retro-compatible solution based on QNetworkAccessManager SourceCode
* update samples
* - Added Restbed Generator
* - Added Json processing functions to model
- Removed unnused code from restbed codegen class
- Added response header processing to api template
* Changed it to respect alphabetical order
* Made the string joining java 7 compatible
* Added samples
* - Reworked the getter setter generation
* added headers to makeRequest function for swift3 template
* Added configuration file to Swift3 template
* added comments about the value read only once
* added comments about the value read only once
* comments fix
* Added Configuration.swift to Project File
* swift 3 promisekit, rxswift updates
* Issue #5147: allow empty values for properties.
* Issue #5147: Allow multiple `-D` options.
* Issue #5147: take advantage (and demonstrate) the new usage of -D.
* Issue #5147: also update windows script and security ones.
* adapt the resttemplate target for the threeten Time API
* add threeten dependencies to build.gradle
* fix missing dollar sign
* fix missing dollar sign
* module code added for es6-angular client code generation
* typescript wiped out the core gitignore file
* added USE_ES6 cli option to javascript-closure-angular, will use the javascript-es6-angular templates instead
* fixed issue with module file
* added annotations to the templates
* moved default output folder declaration
* moved es6 template folder under closure-angular
* Do not generate pom.xml and README.md when interfaceOnly=true #5542
* New swaggerDocketConfig option, to generate Spring configuration class for Swagger Docket bean. Ignored when interfaceOnly=false or library=spring-cloud #5542
* Updated tests running ./bin/spring-all-petstore.sh
* Run ./bin/spring-all-petstore.sh
* Fix for issue #3638
* Update tests for fix for issue #3638
* Fix bug when queryParams and collectionQueryParams are both specified
* Update tests
* Add certain tests back, address CI failures
* [javascript] Fix response body when return type is String.
* [javascript] Regenerate javascript petstores with fixed String return type.
* [javascript-es6] Fix response body when return type is string.
* [kotlin] support collectionFormat:multi
Adds "multi" support to collections.
Also changes generic lists (List<T>) to arrays. Generic lists and nested
lists can be problematic and require customized json factories. The
previous implement appeared to work because the results in the test were
LinkedHashMap with count greather than 0. The functional test has been
updated to force serialization and verify the results.
* [kotlin] Regenerate sample
* [kotlin] Update model test for Array changes
* fixed map to use value instead of mapentry while doing fromJson.
* cpprest models now use inheritance properly instead of always extending from ModelBase
* cpprest models now use inheritance properly instead of always extending from ModelBase
* removed a sysout used for debugging
* toJson() and fromJson() now leverages parent class's corresponding methods
* virtual is not needed as override essentially does the same thing.
* added docstring for getModelByName
* corrected the javadoc
* fixed @param issue in javadoc
* fixed @param uncapitalized P in param in javadoc
* [Swift3] Add lenientTypeCast option
When set to true, this generates a client JSON decoder
that will accept and cast mistyped values.
Here:
- String => Bool ("true" instead of true),
- String => Int ("123" instead of 123),
- NSNumber => String (123 instead of "123").
The point is to allow the same client code to handle several
server implementations that may (sadly) not be up to spec,
or still be "evolving".
The conversion is not guaranteed if the input
Not a perfect/complete solution, not sure if it should be
activated along other casts, so kept behind an option.
* Update Petstore client code
* Fix issue with buffered sink handling in okhttp
Fixes unexpected end of stream exceptions when using the okhttp-gson library
and making asynchronous calls.
* update petstore samples for okhttp-gson
$ ./bin/java-petstore-okhttp-gson.sh
$ ./bin/security/java-petstore-okhttp-gson.sh
* WIP: trigger ci
* enable travis CI tests for swift, objc, move some tests to circleci
* fix comment in xml file
* use xcode8.3
* use ruby 2.2.5
* fix objc core data pom.xml
* use cocoapods 1.2.1
* use xcpretty for clearer test results
* fix pom with relative path to script
* comment out objc test
* fix xcpretty exit code
* add && exit ${PIPESTATUS[0]} for swift3 xcodebuild script
* use xcode 8.2
* update promisekit version for swift 2x, 3x
* add pod repo update
* remove Pods directory
* update swift dependencies to the latest version
* update podfile.lock
* rollback Alamofire to 4.0 for swift3
* fix swift3 rxswift api cliiet
* fix testDeletePet test in Swift3 rxswift petstore
* update clojure petstore
* comment out clojure test in travis (already covered in circleci)
* run pestore server locally
* use wing328/swagger-samples to run petstore
* run petstore server in the background
* test ruby petstore client
* add /Users/travis/.cocoapods/repos/master to cache
* add back ruby test, use public pestore server
* add back bash client test
* add npm config set registry to avoid time out
* use docker branch in swagger samples
* remove bash test
* show go version, reorder
* debug go petstore client
* reinstall go
* comment out pod repo update
* uncomment pod repo update
* test go in circleci
* remove go from travis test
* brew install sbt
* [kotlin] Add model enum support
Model variables marked isEnum=true are nested class enums. Top-level
enums will not be isEnum=true, but rather have a datatype specific to
the enum's type.
* [kotlin] Regenerate client sample
* - Added Restbed Generator
* - Added Json processing functions to model
- Removed unnused code from restbed codegen class
- Added response header processing to api template
* Changed it to respect alphabetical order
* Made the string joining java 7 compatible
* Added samples
* [csharp] refactor ApiClient and Configuration usage
* # This is a combination of 2 commits.
# The first commit's message is:
[csharp] refactor ApiClient and Configuration usage
[csharp] Regenerate sample
# This is the 2nd commit message:
[csharp] Simplify setting apikey/prefix/headers
* # This is a combination of 2 commits.
# The first commit's message is:
[csharp] refactor ApiClient and Configuration usage
* Simplify setting apikey/prefix/headers
* Regenerate sample
# This is the 2nd commit message:
[csharp] Pass-through configuration timeout to client
* [csharp] refactor ApiClient and Configuration usage
* Simplify setting apikey/prefix/headers
* Regenerate sample
* [csharp] Regenerate all client samples
* [csharp] regenerate .net standard/core samples
* [csharp] Fix Timeout diff between netstandard and non-netstandard
* [csharp] Resolve additional netStandard issues after merge
* [csharp] Update doc for Configuration usage
* [kotlin] array->List instead of Array
Serialization to/from primitive arrays can cause issues with valid
responses. This commit considers swagger 'array' types as 'List' which,
although not as memory efficient should provide a cleaner interface for
users (and avoid serialization issues).
Also, updates README.md to list new generator and excludes
folder at samples/client/kotlin/bin/, which is not used.
* [kotlin] Move sample under conventional directory
samples/client/kotlin/ -> samples/client/petstore/kotlin/
Updated new.sh to generate client/server/docs into similar structure.
Current documentation generators (cwiki, html, html.md, html2) aren't
following a convention like client/server generators.
This commit adds Api/Model/Auth documentation to the generated
README.md. Because auth support is not yet fully implemented (users can
manually set default headers globally), there aren't examples for helper
auth methods.
Models with inline enums document allowed values rather than pointing to
a generated enum class.
Two global additionalProperties were added (generateApiDocs,
generateModelDocs) to allow templates to conditionally display
documentatoin depending on these mutually exclusive settings. All
current generators supporting docs will attempt to link to generated
models when only api docs are specified.
This also moves the $@ bash parameter in bin/kotlin-client-petstore.sh
to the end of the args variable. This is because $@ can only be used to
pass System properties like -DdebugModels, can can already be passed as:
JAVA_OPTS="$JAVA_OPTS -DdebugModels" ./bin/kotlin-client-petstore.sh
By moving the $@ to the end of the args, it allows us to pass additional
properties and other switches directly to the script.
* [Ruby] Modify file download to be written in chunks in order to handle large files. #5704
* [Ruby] Update Ruby Petstore with file download improvement. #5704
* Added mustache file for namedCredentials
* Removed Basic and OAuth from Apex API in favor of NamedCredentials
* Moved old README to README for ant deployment
* Added SFDX OSS descriptor
* Removed remoteSite mustache
* Changed package.xml from RemoteSite to NamedCredential
* Update ApexClientCodegen to support SFDX and namedCredentials
* Created initial README for Salesforce DX
* Ran Petstore test for Apex commit
* Fixed error in README mustache
* Updates http-client dependency to one that correctly handles certificates
This is important as amazon AWS gateway and several other types of certificates will not work correctly due to the old java library used by the 2.0.0 version of http-client.
* Runs the petstore updates switch for clojure
* Runs the petstore updates switch for clojure
* remove trailing space in cpprest, update samples
* remove unused pom.xml in go pestore
* fix broken links in php api doc by fixing baseType
* fix csharp api doc
* fix php examples
* fix examples for abstract php generator