This is the initial Codegen for Elm 0.18.
Please try it out and provide feedback.
Not yet supported:
* path variables;
* additionalProperties;
* authentication;
* recursive types.
* Commit leftover snapshot changes
* Add logic to deal with non-JSON body params
If the spec specifies a list of consumes MIME types, default to the
first MIME type in the list instead of "application/json" (the user may
still override this by passing "Content-Type" in options.headers).
Additionally, only perform explicit JSON serialization if the data type
of the body parameter is not "string", or if it is string, only when the
content type is "application/json".
* Update snapshots
* Added pkmst-microservice toolkit
* formatted
* replaces tab with blank spaces
* adding documentation folder
* adding documentation folder
* Update readme.mustache
Added feature set offered by pkmst
* updated readme
* Update io.swagger.codegen.CodegenConfig
Arranged pkmstServerCodeGen and SymfonyServerCodegen in aphabatical order
* Update readme.mustache
* renamed according to convention and added typeinfoannotation
* removed tabs
* updated codegen which extends abstractjavacodegen
* Added the script files and rectified the errors
* folder name changed and commons -lang3 version upgraded
* updated readme.mustache
* updated logging filter
* Added petstore to samples and updated the pom for the same
* Added java-pkmst sample to pom.xml.circleci
* updated readme.mustache
* use status codes in the variants of the responses instead of message
* samples
* add missing {{code}}
* use human friendly idents if possible
* generate samples
* salvage an oversight
* java 8 interface only delegate method mode
* typo correction
* Update samples with ./bin/spring-all-petstore.sh
* change delegate prefix to "do" and make delegate method a default method that returns an OK status code
* remove temp debug printout
* prefix spring annotated method with "_" to indicate that is private
* resolve merge issues from Merge of remote-tracking branch 'upstream/master'
* tuned whitespace in api.mustache and re-ran spring-all-petstore.sh
* removed special spring cloud library check as it was no longer being referenced in api.mustache
re-ran spring-all-petstore.sh
* [akka-scala] template upgrade dependency version and refactor #7171
* update sbt dependencies version and add enforce plugin
* delete new to the case class
* Prevent usage of reserved keyword for model fields
* Changes from code review to follow JS convention of using toParamName and toVarName
* Another small change from code review. Removing from postProcess because it is already called from somewhere else.
* Ran bin/aspnetcore-petstore-server.sh
* Added contact information to startup.cs
* updated to support NAME as well
* updated samples
* updated NAME default
* Updated Codegenerator as well as added new swagger-original mustache template
* updated Startup.cs template to provide guidance for original Swagger file
* Updated Sample
* Added support for VERSION and APPNAME from Swagger file into Startup.cs for Swashbuckle SwaggerGen
* Ran bin/aspnetcore-petstore-server.sh
* Added contact information
* Added contact information to startup.cs
* Move the test code to the appropriate test case
* currently, InvalidArgumentException will be thrown
* Remove unnecessary tests at this time
* Unify into single quotes
* MMORCH-428: Export the Authorization struct
This is needed so that code can check that the version of Authorization
in the auto-generated code is the same as the version it is using. If
the versions are not exactly the same then the lookup into the TypeMap
will not work.
* Add Rust as a supported language for client and server.
Clarify that there are two Rust client implementations, and one Rust server implementation.
* Percent-encode path and query parameters in client URLs
Fixes#122
Also don't include a question mark at the end of the path when there are no query paramters.
Fixes#121
* Rust2 client: add --host and --port parameters to example client.
Allows the example command-line client to override the default host and port.
* Extract default host and port from Swagger file.
* Derive 'Eq' and 'Ord' on enums
* Rust2: improve server code structure.
server.rs (main.rs) - main entry point for binary; starts the web server and points it at the server code within the library.
server_lib/mod.rs (lib.rs) - root of library; creates the server.
server_lib/server.rs (server.rs) - actual server code
The old server_lib/mod.rs is now server_lib/server.rs; server_lib/mod.rs is new.
This structure is easy to map onto a server implementation; unfortunately we can't get it exactly right here because of the limitations of cargo's examples/ folder.
* Rust2: Explain fully how to use the example code in your project.
* Added plaintext support
* Linting
* MGJ Markups
* Move errant file to 'rust-server'
Rust2 was the old name
* Add license and description to Cargo.toml
For rust-server, getting them from the swagger
* Valid Java doesn't have uninitialised variables...
* Default license to "Unlicense"
* Set license to "Unlicense" for generated crates
* Updated to .NET Core 2.0
* Fixed issue with IConfiguration vs. IConfigurationRoot
* Ran bin/aspnetcore-petstore-server.sh
* Updated to .NET Core 2.0
* Fixed issue with IConfiguration vs. IConfigurationRoot
* Ran bin/aspnetcore-petstore-server.sh
* Add README.md to the typescript jquery client generator
* Fix from code reviews about the addition of README.md. Made the fix in fetch too since it was a copy paste
* Operation now returns StatusCode Stubs as well
* Updated mustache file to use comments
return StatusCode(..) is now commented out.
* Change default(..) to not escape the type
default(dataType) --> default(&dataType)
* Return IActionResult no matter what..
* Updated formatting
* Ran bin/aspnetcore-petstore-server.sh
* Do not apply content-type header if no request body
* Set content-type header if there are form params
* Add tests
* Run update script
* Regenerated sample clients
* add support for async routes/endpoints
you can now set --optional-properties async=true to generate
a nancyfx server stub that uses asynchronous programming.
(cherry picked from commit 126869cb0b967e8063417e11993cf6326ce8ffd4)
* add nancyfx-petstore-server-async.sh to generate sample of async nancyfx.
* Rename async => asyncServer
* update bin/nancyfx-petstore-server-async.sh
* rename async => asyncServer in api.mustache + small bugfix
* run ./bin/nancyfx-petstore-server.sh and ./bin/nancyfx-petstore-server-async.sh
* remove additional new line in api.mustache + add space after if
* run ./bin/nancyfx-petstore-server.sh and ./bin/nancyfx-petstore-server-async.sh
* Map `date` fields to LocalDate c# type + add a JsonConverter for LocalDate.
* #6818: support for security definitions and some refactoring
* adding support for Either
* adding dates with TimeZone (date-time) and Local (date)
* cleanup
* generating code
* Updated swagger-ui wget url to https
* Issue #6902 Add Observe/ReportProgress pass through variables to the response for each api call for angular 4.3 and above
* Issue #6902 Fixed problem where extra comma as generated and should
not have been.
* Issue #6902 Fixed compiltion issue for Angular 4.3
* Objects are represented by `ModelBase.h`, not `Object.h` which does not exist.
* Use correct relative imports for files in the `model` and `api` folders.
* [CppRest] Update cpprest petstore client sample.
* Implement `Object` class to support arbitrary types.
* [CppRest] Update cpprest petstore client sample.
* [CppRest] Add newly generated files to petstore client sample.
* [CppRest] Add `Object` to CMakeLists.
* Initial Commit
* Removed unneeded class, Updated names as per naming conventions, Removed licensing info from generated code
* Moved samples from client folder to server
* Fixed naming issue with scripts in the bin
* improved code format for api
* fixed compile issue and improved formatting
* fixed compile issue and improved formatting
* update versions of dependencies on swift4 and swift3
* change syntax for swift4
* run petstore script
* change enum case from UpperCamel to lowerCamel
* remove unneeded break statements
* avoid wrapping conditionals in parentheses
* avoid force casting
* run pod update on petstore/swift4/rxswift
* update project for swift 4
* run swift4-petstore-all.sh
* fix compile error
* avoid use iso8601 date strategy for encoder / decoder
* resolve file references
* the result I want to obtain
* add csharp-petstore-net-40.bat for windows
* just ran bin\windows\csharp-petstore-all.bat
* Removed those directories:
- samples\client\petstore\csharp
- samples\client\petstore\csharp-dotnet2
then ran :
bin\windows\csharp-petstore-all.bat
* - update JsonSubTypes to 1.1.3 by using nuget dependency (the package is compatible with net40)
- allign all version of Newtonsoft.Json to 10.0.3
* the result of bin\windows\csharp-petstore-all.bat
* ran bin\security\windows\csharp-petstore.bat
* fix: non-zero exit code if tests fail
* tests: use local petserver to run tests
* fix: non-zero exit code if tests fail
* tests: use local petserver to run tests
* fix: creating ssl context in old version of Python
* chore: remove unused target from Makefile
* doc: changes from upstream
* fix: tornado client raises NotImplementedError in older version of Python
* Revert "[csharp] clean boolean additional properties 6784 (#6899)"
This reverts commit 2c9f98ce38.
* Revert "[Swift4] Add throw to reserved words (#6952)"
This reverts commit 970de01bdf.
* Revert "add a docker build tag for pushing docker image instead of just latest (#6837)"
This reverts commit 4e482eef17.
* [csharp] Convert "false" properties to booleans
It appears as though "false" strings in additionalProperties are no
longer treated as false booleans. This may be an issue elsewhere, but a
simple fix is to always explicitly set the boolean value in a generator
class back to the additionalProperties map to convert boolean Strings to
boolean Objects.
* [nancyfx] Clean up async default option handling
* [nancyfx] Include asyncServer=false in sample script
* [csharp] Regenerate samples
* [csharp] Resolve .net 4 generation issues
Some functionality is missing from .NET 4.0, such as IReadonlyDictionary
and Type.GetTypeInfo().
This commit resolves compilation of generated .NET 4.0 code, requiring
no conditional versioning of Newtonsoft.Json.
* [csharp] Regenerate .net 4.0 sample
* [csharp] Resolve .NET 4.0 sample compile
Sample build.sh wasn't accounting for targeting different FCL correctly.
That is, when passing "net40" to the -sdk option, it would use the
default -sdk:4 and -langversion:6. These don't necessarily match with
what is installed on a machine with only .NET 4.0 (which is our targeted
use case here).
To resolve, we need to define another version-specific value for passing
to the mcs -sdk option (see man mcs for details).
This option currently isn't overridable in the client codegen class.
Also, langversion is set specifically to the version of C# available to
the targeted SDK version. If there is need, we may extend this to
something like:
langversion=${MCS_LANG_VERSION:-6}
To allow users to run as:
env MCS_LANG_VERSION=5 sh build.sh
I haven't done this because I doubt there's much of a use case via this
script. I'm assuming most consumers will build via IDE or MSBuild.
* [csharp] Revert bin/csharp-petstore.sh to 3.5
* [csharp] Regenerate .NET 3.5 sample
* [csharp] Resolve nuget issue with existing files
* [csharp] Update -all.sh, regenerate samples
* [csharp] Treat enum models consistently
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.
* Categorizing C# integration test for enums as general
* [csharp] Remove enum-ref integration test
* [csharp] Clean up general enum support integration test, validate different enum usage cases.
* [csharp][all] Assign one-based int to string enums
The EmitDefaultValue=false for string based enums will prevent the first
enum value from being serialized, because as 0 it is considered the
default.
This commit assigns an explicit numerical value to all non-integer
enums. This assignment has no effect on the
serialization/deserialization values, and only assigns the compiled
integer.
NOTE: This will have an effect of requiring recompilation of any code
that references the client/server models. This is because:
public enum Pet { Available }
Source files referencing Pet.Available as defined above will have a
constant 0 in place of the enum value.
public enum Pet { Available = 1 }
Source files referencing Pet.Available as defined above will have a
constant 1 in place of the enum value.
After compilation, Pet.Available in both instances lose their semantic
values and refer to the byte representation of their integral values.
For more info, see
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/enum
* WIP: initial commit for Erlang client generator
* add models types and function type specs
* fix type specs when models are the type and support QS lists
* make method lowercase in postprocessoperations
* add model encode function
* add erlang client sample
* add windows client sample script
* proper return type spec and handle return error messages
* remove jdk7 check
* comment out some installation
* update npm
* comment out ts angular tests
* restore ts angular2 test
* restore bash test
* add back new config, clean up commented items
* The get method template is modified to return the value of the enum instead of the enum itself.
* Update of the Petstore CXF server sample
* Update of the Petstore CXF client sample
* Update of the Petstore CXF server annotated base path sample
* Update of the Petstore CXF server non spring application sample
* adding "Read Timeout" getters and setters for the Jersey and OkHttp
based ApiClients
adding "Write Timeout" getters and setters for the OkHttp based
ApiClient
adding tests for the OkHttpClient covering the new getters and setters
* generated files from the bin scripts
* [CppRest] Replace U macro with conversion function for default string values.
* [CppRest] Replace U macro with conversion function in templates.
* [CppRest] Update cpprest petstore client sample.
* [csharp] Treat enum models consistently
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.
* Categorizing C# integration test for enums as general
* [csharp] Remove enum-ref integration test
* [csharp] Clean up general enum support integration test, validate different enum usage cases.
* Attempts to fix issues that causes enums that are not generated with a class to not generate correctly
* Fixed issue with incorrectly generating enums
* Replaced isomorphic fetch with portable fetch
* Ran scripts in bin
* reference custom.d.ts in api.ts
* ran scripts and added custom.d.ts files to git
* Ran scripts in bin after merge
* regenerated security tests
* Implemented fix for #6006. Mime-type support for accepts and
content-type.
* Review comments of @macjohnny incorporated
* merge with latest and retest
* merge with latest and retest. Now correctly generated with new Maven build
`unicode` does not exist in py3, therefore since six is already imported
switch to using `six.u` so that `unicode` is used on py2 and `str` is used
on py3.
* Add support for the google-api-client
* When there's no return type, just return (no parsing the response)
* Update the deserialization to use a Jackson typeref.
* Delete the auth mustache files as we don't need them
* Stop generating unneeded auth files; get SBT/gradle working with the generated module
* Add builder-style methods to the google-api-client ApiClient for getting API instances
* Update the README to reflect the new client library option
* Generated overloaded methods to send query params as a Map<String, Object>
* Add files for Sample codes
* Add type in angle brackets to support Java 6
* Required query params must be added to the Map of params. Update sample code.
* Use explicit types instead of diamonds to support Java6 in one more place.
* Clean up javadoc warnings in generated code / remove pointless return statements
* Clean up extra newlines in generated code
* [kotlin] Nested enum naming fix, and naming options via CLI
* [kotlin] Add option test for enum property naming
* [kotlin] Escape all reserved/keywords for enums
The linting results for the generated samples are as follows
where the first number is the BEFORE and the second is AFTER.
pyclient 7714 vs. 120
pyclient3 7717 vs. 120
pyclient3-asyncio 7584 vs. 120
pyclient-tornado 7633 vs. 120
pyclient3-tornado 7633 vs. 120
For the complete details please see the following gist.
https://gist.github.com/kenjones-cisco/2eb69a7e8db75e9fd53789f01570d9f2
Enforces linting for python clients by running flake8 for the generated
python client.
* add support for async routes/endpoints
you can now set --optional-properties async=true to generate
a nancyfx server stub that uses asynchronous programming.
(cherry picked from commit 126869cb0b967e8063417e11993cf6326ce8ffd4)
* add nancyfx-petstore-server-async.sh to generate sample of async nancyfx.
* Rename async => asyncServer
* update bin/nancyfx-petstore-server-async.sh
* rename async => asyncServer in api.mustache + small bugfix
* run ./bin/nancyfx-petstore-server.sh and ./bin/nancyfx-petstore-server-async.sh
* remove additional new line in api.mustache + add space after if
* run ./bin/nancyfx-petstore-server.sh and ./bin/nancyfx-petstore-server-async.sh
* [Rust] Use serde Value for objects
This hopefully fixes the previous TODO; it at least fixes compilation
errors for the specific swagger model I'm working with.
* [Rust] Update Cargo.toml to specify versions
Letting the version float freely is scary, to say the least.
This gives it a better chance at being future-proof.
When the crate author had a recommended selector I picked that,
otherwise I went semver compatible.
* [Rust] Regenerate the example
* Add addiitional files from upstream
* Remove mis-added files
* Swift3: Properly percent-escape path parameters
This change fixes the following issue:
https://github.com/swagger-api/swagger-codegen/issues/6400
The problem was that path parameters were not properly percent-escaped before being placed into the URL path. This leads to creation of an invalid URL, which then fails.
So therefore, in the API template where path parameters are handled, we propertly percent escape them, using the characters which are allowed in URL paths.
In addition to this template change, then this PR includes the following changes:
1. Resulting changes in all generated code due to the above template change.
2. I added the objcCompatible run to the swift3-petstore-all.sh so that I could re-generated all of the generated code with a single script.
3. I added a unit test in UserAPITests.swift which verifies that paths are properly escaped.
4. In order to make the unit test work, then I needed access to RequestBuilder<T>.URLString to verify that the path was properly escaped. However, RequestBuilder<T>.URLString had "internal" access control so it was inaccessible from the unit test. So therefore, I made four contants in RequestBuilder<T> to be public. This should not harm anything, since they are constants ("let's") and cannot be changed from the outside of the class after initialization.
5. There were also some stray changes which look like they were caused by having not run bin/swift3-petstore-all.sh in a while.
* [Elixir Client] Update the sample
It just executes
% bin/elixir-petstore.sh
without any code changes.
It have been affected by updating the sample swagger specification of 07b408a44a
* [Elixir Client] Fix typings in RequestBuilder
Fix following dialyzer warnings in the sample:
```
lib/swagger_petstore/api/another_fake.ex:30: Function test_special_tags/2 has no local return
lib/swagger_petstore/api/another_fake.ex:30: Function test_special_tags/3 has no local return
lib/swagger_petstore/api/another_fake.ex:32: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'patch') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/fake.ex:29: Function fake_outer_boolean_serialize/1 has no local return
lib/swagger_petstore/api/fake.ex:29: Function fake_outer_boolean_serialize/2 has no local return
lib/swagger_petstore/api/fake.ex:34: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'post') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/fake.ex:57: Function fake_outer_composite_serialize/1 has no local return
lib/swagger_petstore/api/fake.ex:57: Function fake_outer_composite_serialize/2 has no local return
lib/swagger_petstore/api/fake.ex:62: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'post') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/fake.ex:85: Function fake_outer_number_serialize/1 has no local return
lib/swagger_petstore/api/fake.ex:85: Function fake_outer_number_serialize/2 has no local return
lib/swagger_petstore/api/fake.ex:90: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'post') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/fake.ex:113: Function fake_outer_string_serialize/1 has no local return
lib/swagger_petstore/api/fake.ex:113: Function fake_outer_string_serialize/2 has no local return
lib/swagger_petstore/api/fake.ex:118: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'post') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/fake.ex:142: Function test_client_model/2 has no local return
lib/swagger_petstore/api/fake.ex:142: Function test_client_model/3 has no local return
lib/swagger_petstore/api/fake.ex:144: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'patch') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/fake.ex:181: Function test_endpoint_parameters/5 has no local return
lib/swagger_petstore/api/fake.ex:181: Function test_endpoint_parameters/6 has no local return
lib/swagger_petstore/api/fake.ex:195: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'post') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/fake.ex:230: Function test_enum_parameters/1 has no local return
lib/swagger_petstore/api/fake.ex:230: Function test_enum_parameters/2 has no local return
lib/swagger_petstore/api/fake.ex:242: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'get') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/fake.ex:266: Function test_inline_additional_properties/2 has no local return
lib/swagger_petstore/api/fake.ex:266: Function test_inline_additional_properties/3 has no local return
lib/swagger_petstore/api/fake.ex:268: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'post') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/fake.ex:293: Function test_json_form_data/3 has no local return
lib/swagger_petstore/api/fake.ex:293: Function test_json_form_data/4 has no local return
lib/swagger_petstore/api/fake.ex:295: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'get') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/fake_classname_tags123.ex:29: Function test_classname/2 has no local return
lib/swagger_petstore/api/fake_classname_tags123.ex:29: Function test_classname/3 has no local return
lib/swagger_petstore/api/fake_classname_tags123.ex:31: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'patch') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/pet.ex:30: Function add_pet/2 has no local return
lib/swagger_petstore/api/pet.ex:30: Function add_pet/3 has no local return
lib/swagger_petstore/api/pet.ex:32: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'post') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/pet.ex:57: Function delete_pet/2 has no local return
lib/swagger_petstore/api/pet.ex:57: Function delete_pet/3 has no local return
lib/swagger_petstore/api/pet.ex:62: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'delete') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/pet.ex:86: Function find_pets_by_status/2 has no local return
lib/swagger_petstore/api/pet.ex:86: Function find_pets_by_status/3 has no local return
lib/swagger_petstore/api/pet.ex:88: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'get') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/pet.ex:112: Function find_pets_by_tags/2 has no local return
lib/swagger_petstore/api/pet.ex:112: Function find_pets_by_tags/3 has no local return
lib/swagger_petstore/api/pet.ex:114: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'get') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/pet.ex:138: Function get_pet_by_id/2 has no local return
lib/swagger_petstore/api/pet.ex:138: Function get_pet_by_id/3 has no local return
lib/swagger_petstore/api/pet.ex:140: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'get') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/pet.ex:163: Function update_pet/2 has no local return
lib/swagger_petstore/api/pet.ex:163: Function update_pet/3 has no local return
lib/swagger_petstore/api/pet.ex:165: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'put') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/pet.ex:191: Function update_pet_with_form/2 has no local return
lib/swagger_petstore/api/pet.ex:191: Function update_pet_with_form/3 has no local return
lib/swagger_petstore/api/pet.ex:197: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'post') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/pet.ex:223: Function upload_file/2 has no local return
lib/swagger_petstore/api/pet.ex:223: Function upload_file/3 has no local return
lib/swagger_petstore/api/pet.ex:229: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'post') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/store.ex:30: Function delete_order/2 has no local return
lib/swagger_petstore/api/store.ex:30: Function delete_order/3 has no local return
lib/swagger_petstore/api/store.ex:32: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'delete') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/store.ex:54: Function get_inventory/1 has no local return
lib/swagger_petstore/api/store.ex:54: Function get_inventory/2 has no local return
lib/swagger_petstore/api/store.ex:56: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'get') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/store.ex:79: Function get_order_by_id/2 has no local return
lib/swagger_petstore/api/store.ex:79: Function get_order_by_id/3 has no local return
lib/swagger_petstore/api/store.ex:81: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'get') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/store.ex:104: Function place_order/2 has no local return
lib/swagger_petstore/api/store.ex:104: Function place_order/3 has no local return
lib/swagger_petstore/api/store.ex:106: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'post') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/user.ex:30: Function create_user/2 has no local return
lib/swagger_petstore/api/user.ex:30: Function create_user/3 has no local return
lib/swagger_petstore/api/user.ex:32: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'post') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/user.ex:56: Function create_users_with_array_input/2 has no local return
lib/swagger_petstore/api/user.ex:56: Function create_users_with_array_input/3 has no local return
lib/swagger_petstore/api/user.ex:58: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'post') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/user.ex:82: Function create_users_with_list_input/2 has no local return
lib/swagger_petstore/api/user.ex:82: Function create_users_with_list_input/3 has no local return
lib/swagger_petstore/api/user.ex:84: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'post') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/user.ex:108: Function delete_user/2 has no local return
lib/swagger_petstore/api/user.ex:108: Function delete_user/3 has no local return
lib/swagger_petstore/api/user.ex:110: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'delete') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/user.ex:133: Function get_user_by_name/2 has no local return
lib/swagger_petstore/api/user.ex:133: Function get_user_by_name/3 has no local return
lib/swagger_petstore/api/user.ex:135: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'get') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/user.ex:159: Function login_user/3 has no local return
lib/swagger_petstore/api/user.ex:159: Function login_user/4 has no local return
lib/swagger_petstore/api/user.ex:161: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'get') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/user.ex:185: Function logout_user/1 has no local return
lib/swagger_petstore/api/user.ex:185: Function logout_user/2 has no local return
lib/swagger_petstore/api/user.ex:187: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'get') breaks the contract (map(),'Elixir.String':t()) -> map()
lib/swagger_petstore/api/user.ex:211: Function update_user/3 has no local return
lib/swagger_petstore/api/user.ex:211: Function update_user/4 has no local return
lib/swagger_petstore/api/user.ex:213: The call 'Elixir.SwaggerPetstore.RequestBuilder':method(#{},'put') breaks the contract (map(),'Elixir.String':t()) -> map()
```
* Correct default value for resteasy query parameters
* clean up: add default value in query params for resteasy mustache templates
.
* clean up
* add space following wing328 recommandation.
* Add configuration to split input and output bean validations. When useBeanValidation is used, the variable are created in the application.conf file and can be tweaked by environment. For example, dev and stage can have true to both but only have input in prod.
* Refactor of mustache tags for more clarity
* sample generation with refactor
* Fix a couple of bugs with the fake-endpoint yaml but there is still 2 cases where it doesn't work.
* Remove Accept request header from api signature
* Inject HttpServletRequest to get request header and clean templates
* Use constructor injection for HttpServletRequest
* Implement example in default controller responses
The linting results for the generated samples are as follows
where the first number is the BEFORE and the second is AFTER.
flaskConnexion 1843 vs. 20
flaskConnexion-python2 1841 vs. 19
For the complete details please see the following gist.
https://gist.github.com/kenjones-cisco/edc9d71ef7fd2bf23714ecbb693d52b3
Enable the creation of the entrypoint so that the server can be started
using a named command instead of needing to always use `python -m` to
run the server.
* Added forRoot and constructure duplicate check
* added imports
* updated providers display format
* updated examples
* Moved providers so users don't hav eto use forRoot if they don't want.
* Updated the readme
* [angular-typescript] imports HttpClientModule
HttpModule has no effect, since the new `HttpClient` is now used. fixes#6727
* #6727: import http client module or http module, depending on setting
* #6727: import http client module or http module, depending on setting
* #6727: generate samples
flatten methods replaces original ObjectProperty objects with new
RefProperty objects which required variables are false as default.
Newly created objects' required variables are set as the original
property.
* Added v4/v4.3 to typescript-angular-petsotre-all and renamed from angular2 to angular
* refactored typescript-angular-petstore-all.sh
* changed profile id for typescript-angularjs to properly have angularjs instead of just angular.
* Spacing at end of model template
* Corrected backwards compatible enum typing
* Removed commented code
* Input validation is now supported as strict JSON validation
* [PHP][Symfony] Improve the implementation
Closes#6614
* Generated code is tested to assure it compiles and updated README to dynamically load dependencies via composer
* Updated shell script because shippable tests were failing
* Replaced the method for updating path to prep for URL encoding.
The new method will switch TypeScript-Angular variables from snake_case to camelCase in the URL generation.
Imported StringBuffer, Matcher, and Pattern, since the new solution needs them.
Some extra whitespace on blank lines was removed.
* Since these were not up to date with the current master, I ran them and am commiting them here.
This way, the changes are shown here instead of after future commits.
* Simplified the code for the path conversion A LOT.
New version is much simpler to follow, and very efficient - only one iteration through the length of the string.
Removed regex Matcher and Pattern classes, since they weren't needed anymore.
* Updated api_client and configuration docstrings
ApiClient: Removed host param, added configuration and cookie param
Configuration: Docstrings are only read from the @property decorated
function, not the setter, moved the more descriptive docstrings from the
setters to property functions
* Ran bin/python-petstore.sh
* Inclusion of API documentation in CXF Server stub generation
* Inclusion of API documentation in CXF client generation
* Update of the Petstore CXF server sample
* Update of the Petstore CXF client sample
* Update of the Petstore CXF server annotated base path sample
* Update of the Petstore CXF server non spring application sample
* Changed {{{appDescription}}} to {{appDescription}} to use the HTML-escaped value in handling special characters like <, > in the description following the correction made by @wing328
* Update of the Petstore CXF samples
* revert changes to fakes yaml
the yaml currently includes invalid definitions that do not exist: ('#/definitions/xmlObject').
revert to known good yaml state.
* update template creators
* Rust API client/server generator
* `Future::boxed()` has been deprecated - replace with `Box::new(...)`
* rebasing to rust
* MMMLS211 use empty vec over none
* MMMLS211 rebuild after merge from rust
* MMMLS211 YAML array examples not wrapped in Some()
* MMMLS211 Array parameters bad mustache fix
* MMMLS211 don't parse map containers
* MMMLS211 Tidy container types
* MMMLS-211 rebuild example
* MMMLS211 mvn rebuild
* Percent-decode parameters contained in the path
* Produce warnings when unknown fields are present
We still accept unknown fields and discard them. However, to improve
diagnosability, we now write a warning log and return a `Warning`
header.
Note that this is server-only
* Markup
* MMMLS211: Make optional arrays Options again
* 211 markups
* Temporary attempt at tweaking Cow ownership tweak while merging changes from rust branch
* Remove to_string call while parsing path parameters, which requires definining a temporary var in a block because rust can't tell where a Cow reference gets dropped
* Fix rustfmt to the correct version
* Fix rustfmt to the correct version
* Add more response information to ApiError in client
* Re-add missing brace
* Code review markups
* Allow converting out of wrapper types
* Store arrays in new-types too
* Use a new hyper_client every request
* Add vec-like traits to array types
* Xml support - new branch
* Moved conversion from serde_xml_rs::Error to ApiError from swagger-rs to client code until upstream PR is accepted
* MMSUB-172 Don't set Content-Type when there's no body.
If we don't have a body we've serialized, then don't declare
any content type for the nonexistent body.
This is really important for 204 No Content responses, but it's
also morally important for all other non-bodied responses.
* MMSUB-172 Move to swagger 0.6.
* Manually implement debug for the client
* Allow `Context` to be bound to `Api`, and not passed on every function call
* Support "." in parameter names
* Support generate's "--reserved-words-mappings" option
* Support "." in parameter names
* Support generate's "--reserved-words-mappings" option
* Included Open Systems International in the list of companies using Swagger Codegen
* Force Jackson to use the real names of the properties of the Data type defined in the YAML
* Update of the Petstore CXF server sample
* Update of the Petstore CXF client sample
* Update of the Petstore CXF server annotated base path sample
* Update of the Petstore CXF server non spring application sample
* Changed {{name}} for {{baseName}} following the correction posted by @wing328
* Update of the Petstore CXF server sample
* ContentType selection fix for csharp.
Updated to reflect java implementation. Previously any request body of type string was having the content type overridden to 'application/json'. This prevented custom json ContentTypes
* updated the petshop codegen for C#
* Fixed content type selection test for csharp
* Replaced tabs with 4 spaces
* Removed trailing space / string comparison
* [Elixir Client] Improve primitive typings
* [Elixir Client] Add type to models
Fix following dialyzer warnings in the sample:
```
:0: Unknown type 'Elixir.SwaggerPetstore.Model.ApiResponse':t/0
:0: Unknown type 'Elixir.SwaggerPetstore.Model.Client':t/0
:0: Unknown type 'Elixir.SwaggerPetstore.Model.Order':t/0
:0: Unknown type 'Elixir.SwaggerPetstore.Model.OuterBoolean':t/0
:0: Unknown type 'Elixir.SwaggerPetstore.Model.OuterComposite':t/0
:0: Unknown type 'Elixir.SwaggerPetstore.Model.OuterNumber':t/0
:0: Unknown type 'Elixir.SwaggerPetstore.Model.OuterString':t/0
:0: Unknown type 'Elixir.SwaggerPetstore.Model.Pet':t/0
:0: Unknown type 'Elixir.SwaggerPetstore.Model.User':t/0
```
* Adding a Scalaz codegen client
* Fixing imports and removing commented code
* Adding the bash file and updating the Pet store samples for Scalaz.
* Finalizing Scalaz generation so that it works for the Petstore.yaml
* Removing some unnecessary files and comments
* Removing some files that were accidentally generated for the wrong Scala
* Added support for enums in Dart.
* Pick non-private names for enum values.
The _ prefix denotes a private member in Dart, so avoid generating enum values starting with this character.
* Properly encode enum values into query paramters.
* Various cleanups.
* Add support for x-enum-values extension.
Use class instead of enum for better ergonomy.
Better generated enum names.
* Fixed test.
* Support enum descriptions.
* Updated api client, Required parameters {{#required}} .. {{/required}}, are mapped to Eiffel
Void Safety Rules, optional parameters are translated to detachable TYPE.
Validation Rules are mapped to preconditions, at the moment maximun and minimun
validation has been added.
Improved API_CLIENT.parameter_to_tuple feature to accept a LIST [ANY] instead of LIST [STRING_32].
Improved model template to generate the model output.
* Updated API_CLIENT.parameter_to_string feature, missing STRING representation.
* Updating sample using the latest modifications.
Fixes#5985
We were experiencing syntax issues when generating the Petstore example. See some of the examples below:
StoreApiInterface.php
namespace Swagger\Server\Api;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Swagger\Server\Model\Order;
**use maparray<string,int>;**
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
UserApiInterface.php
public function createUsersWithArrayInput(**User[]** $body);
public function createUsersWithListInput(User[] $body);
As far as I know, it is not possible to use array of objects in this way.
PetApiInterface.php
namespace Swagger\Server\Api;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Swagger\Server\Model\Pet;
use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
use Swagger\Server\Model\ApiResponse;
**use string[];**
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
public function findPetsByStatus(string[] $status);
public function findPetsByTags(string[] $tags);
* Add addiitional files from upstream
* Remove mis-added files
* Add additional swift4 initializer for initializing model object with properties.
This change fixes this issue: https://github.com/swagger-api/swagger-codegen/issues/6641
It adds an additional initializer which allows model objects to be initialized using the properties. For exxample, if we had this model:
"ErrorInfo": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "string"
}
}
},
"description": "Example Error object"
},
This we generate an initializer for this model object like this:
public init(code: Int?, message: String?, details: [String]?) {
self.code = code
self.message = message
self.details = details
}
* Add hasVars checks around initializers and re-run all scripts to re-generate
Void Safety Rules, optional parameters are translated to detachable TYPE.
Validation Rules are mapped to preconditions, at the moment maximun and minimun
validation has been added.
Improved API_CLIENT.parameter_to_tuple feature to accept a LIST [ANY] instead of LIST [STRING_32].
Improved model template to generate the model output.
* Add addiitional files from upstream
* Remove mis-added files
* Fix compilation issue with Swift4 inline enums.
This change fixes this issue: https://github.com/swagger-api/swagger-codegen/issues/6607
The problem was that I was using "datatype" instead of "datatypeWithEnum" in the model.mustache file.
When you have a the following model property:
"myInlineStringEnum": {
"type": "string",
"enum": [
"inlineStringEnumValue1",
"inlineStringEnumValue2",
"inlineStringEnumValue3"
]
}
Then we were generating:
public enum MyInlineStringEnum: String, Codable {
case inlinestringenumvalue1 = "inlineStringEnumValue1"
case inlinestringenumvalue2 = "inlineStringEnumValue2"
case inlinestringenumvalue3 = "inlineStringEnumValue3"
}
However, when we decode this, we were using type of the enum ("datatype") rather than the enum type itself ("datatypeWithEnum"). So we were generating:
myInlineStringEnum = try container.decodeIfPresent(String.self, forKey: "myInlineStringEnum")
rather than:
myInlineStringEnum = try container.decodeIfPresent(MyInlineStringEnum.self, forKey: "myInlineStringEnum")
* Adds the ability to create code for an interface-based jaxrs client.
* Adds shell script and sample files for jaxrs-spec-interface
* rebase into adds shell
* Fixes bug in creation of Produces/Consumes in method annotation. Allows for instance "application/json; charset=utf-8"
* Fixes generated pom.xml
* Generate pom.xml by default
* Prettier output from api.mustache
* Fixes bug in mediatype, allowing charset-specification in swagger.yaml.
* Merges generation of interface-based jaxrs client/api into jaxrs-spec.
* Moves jaxrs-spec server interface to match location of jaxrs-spec server
* Makes Generated-annotation in genereated classes slightly prettier.
* 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
* represent swagger enums as union of literal types
enabling their easy use in angular templates, structural subtyping
among enums (in particular, different instances of the same enum
are now mutually assignable), improving type safety by preventing
incorrect widening, and permitting numeric enum values
(albeit without descriptive names)
Fixes#6206, #5146, #3500
* update samples
* restore blank lines at end of file
* fix typo
* Add support for lists of path parameters (eg instances), and default params for optional case classes
* Update Petstore sample
* Revert defaulting of case class fields to None
* Update Petstore sample
* add support for auth methods
* use newtypes for required params
* fix duplicate operationId issues
* prevent aliasing of vendorextension references in fromOperation
* add --fast to stack ci build
* [objc] Update deployment target to 8.0
Updates the test project deployment target to 8.0, as that's the lowest
supported by the latest XCode.
* [objc] Update petstore tests based on current master
Makes sure the tests are based on the latest version of master.
* [objc] Allow specifying the serialization timezone
Now it's possible to specify the timezone used for serializing dates
* Add test which reproduce the warning #5338https://github.com/swagger-api/swagger-codegen/issues/5338#issuecomment-292502895
`[main] WARN io.swagger.codegen.languages.PhpClientCodegen - Type object not handled properly in setParameterExampleValue`
* Fix Type object not handled properly in setParameterExampleValue
* Update samples
- /bin/php-petstore.sh
- /bin/security/php-petstore.sh
* Added namespace mustache to be generated
* Fixed syntax issues with package generation
* Added Response and Element mustache templates
* Added ApiClient
* Fix: Only required parameters needed for api operations
* Added documentation generated code
* Regenerated petstore samples
* Fixed url paths for operations
* Fixed based on comments in issues #6520
* Regenerated petstore samples
* Ada language support (generic generator)
Implement the AbstractAdaCodegen class with the Ada keywords and global
behavior for Ada language
* Ada language support (main generator)
Implement the AdaCodegen class for the Ada client and server code generator
Initial implementation based on a mix from CppRestClientCodegen, NodeJSServerCodegen
* Ada language support: register the AdaCodegen generator class
* Ada language license template
* Ada language model templates (spec and body)
* Ada language client spec and body templates
* Ada language server spec and body templates
* Fix escaping Ada keywords for parameter name
* Generate GNAT project and update type mappings
- Use 'p_' as escape prefix for parameter names because identifiers are not allowed to start with '_'
- Add GNAT project file generation
- Update the type mappings to use the Swagger package types
* Fix generation of operations with no parameters
* Fix instantiation of Ada.Containers.Vectors package in generated model files
* New template for the GNAT project file generation
* Fix datatype generation for Ada language
- Override the getTypeDeclaration function to specify the datatype
- Fix definition of language predefined types
* Add a Serialize procedure declaration for the Ada model generation
* Add a Serialize procedure for the Ada template model generation
* Fix operation name and parameter name for Ada
- Declare and implement toAdaIdentifier function to verify and turn some identifier
to Ada identifier following Ada style
- Override toOperationId and use toAdaIdentifier for generation of operation name
- Update toParamName to use toAdaIdentifier
* Media type support for Ada code generator
- Implement postProcessMediaTypes function to add a 'adaMediaType' member
to each media type and map it to some Ada enumeration
- Post process the 'produces' and 'consumes' media type of an operation
* Use x-has-notes extension to avoid emitting notes when they are empty
* First generation for Ada client operation body
* Add a x-has-uniq-produces and x-has-uniq-consumes to media types
to indicate that the list contains only one item, this is necessary
for Ada generator for generation of arrays with one item only
* Add a postProcessParameter for Ada code generator to emit a x-is-model-type attribute
* Update Ada client body template for the serialization of data
* Fix postProcessParameter in Ada code generator to take into account file parameters
* Update the Ada client body to support form parameters
* Fix type name used for mapped types in the Ada generator
* Declare a Deserialize procedure for the Ada generated model
* Override the fromOperation for Ada client code generator
- Emit a x-codegen-response extension with the response description type
- Emit a x-id-model-type extension for each type property
* Update the Ada client package spec template to declare the result type
* Add support to extract response and return result in Ada client code
* Fix Ada postProcessModels to handle container properties and emit a correct x-is-model-type attribute
* Add support for Deserialize procedure in the Ada model generator
* Fix indentation of generated Ada client body package
* Add projectName option to configure the GNAT project name
* Update the GNAT project name for the Ada code generator
* Cleanup implementation and remove unused code
* Cleanup implementation and remove unused code
* Fix javadoc errors
* Use 'ada' for the language name to follow swagger-codegen convention
Add (beta) to the help description
Fix a NPE that occurs with incomplete yaml descriptions
* CsharpDotNet2Client - Use clientPackage in additionalProperties if provided
* Give execution rights for csharp-dotnet2-petstore.sh
* Fix generation of C#.net2 apiPackage, modelPackage, clientPackage
* Fix modelPackage property missing when generating models
* Initialize clientPackage in constructor
* Retrofit2: Return ResponseBody if response if file.
Until now
--------------------
If a swagger endpoint returned a file (e.g. an image), then the Retrofit2
template has choosen the return type java.io.File. However, retrofit cannot
deal with this and throws a com.google.gson.stream.MalformedJsonException.
New:
-------------------
If a swagger endpoint returns a file, then the corresponding Retrofit2 endpoint
will return a okhttp3.ResponseBody which can be used to retrieve the file.
* fix Interface Prefix
* Retrofit2: Return ResponseBody if response if file.
Until now
--------------------
If a swagger endpoint returned a file (e.g. an image), then the Retrofit2
template has choosen the return type java.io.File. However, retrofit cannot
deal with this and throws a com.google.gson.stream.MalformedJsonException.
New:
-------------------
If a swagger endpoint returns a file, then the corresponding Retrofit2 endpoint
will return a okhttp3.ResponseBody which can be used to retrieve the file.
* Add the option packageContext for nancyFx which allows a better adjustment of the namespace.
* run nancyfx-petstore-server.bat
A type alias in this context is where a model is simply another name for a
primitive type, such as `MyString` in the following model definitions:
MyList:
type: array
items:
$ref: '#/definitions/MyString'
MyString:
type: string
It is valid to use a type alias as a property in another object or array model,
even if the object/array is defined before the alias is, as in the example
above. However, the current alias logic only looks "back" in list of previously
defined models, meaning that `MyList` would not know that `MyString` is an
alias. This change fixes the incorrect behavior by pre-calculating the list of
aliases before any models are processed. It also changes the test endpoint to
verify the correct behavior even when an object is defined before an alias it
uses.
* fix compilation error in eclipse
by updating package declarations in moved files
(eclipse validates that package and folder names match)
* permit specifying the full angular version
simplifying the templates by moving trivial case splits to the model
* remove dead code
this method is never called ...
* support HttpClient in addition to Http, clean up generated code
Fixes#6080
* added new sample, and regenerated existing samples
* updated samples
this time with the freshly build generator ...
* improve formatting
* updated samples
* fix compilation error in generated code
the overload for blobs does not have a type parameter
* added the first test for the utils package
* fix extra trainling commas in function argument lists
* regenerated samples
* Adding support for non dictionary body types.
* Adding test for rest of the swift3 types
* Cleaning up implementation of makeRequest and adding better error handling.
* Adding ClientError for error produced before request is sent.
* Changing how encoding of body data is handled.
* Cleaning up code that was modified.
A previous change to make the regex a variable to allow proper linting
resulted in the regexp not having access to the value associated with
the variable and the path variable not being replaced.
Moves the regexp variable inside the for loop to allow the value to be
used and the path variable to be replaced with the provided value.
* Fix dependencies and generate model classes
* Better elixir client generation.
Responses are parsed and serialized by Poison into the model structs.
Use shared helper functions to generate the request.
Extract client connection configuration from api calls.
Elixir client can sanitize the operationId
Correctly output the model variables. Fix typos
Fix path replacement when there are multiple replacements
Cannot separate globally shared parameters from operations
Error handling for the tesla response
update templates
Can generate clients that compile
Can make requests - parse optional params, build query
Add oauth to connection. Fix connection directory
Add basic auth helper for creating a connection
Fix map types. Fix guard clauses for creaing connections
Add licenceInfo template. Parse config for moduleName via standard invokerPackage option
Can provide and inject a license header into all source files
fix location of connection.ex
Move shared code into reusable modules
Elixir filenames should be underscored
Fix visibility of helper functions
Parse the packageName from config options
Handle date and datetime fields with DateTime.from_iso8601
Fix indentation
Update documentation, add typespecs
Generate a standard elixir .gitignore
typespec is calculated recursively in java
Use the JSON middleware and using Poison.Decoder.decode on already parsed structs
move decoded struct into java
Fix handling of non-json responses
Switch basic auth to use the provided Tesla.Middleware.BasicAuth
Update README template to include the appDescription
Update sample elixir client
remove junk client models that don't belong with petstore
Only implement Poison.Decoder protocol if needed
Update samples with skipped Poison.Deocder impl
* Handle multipart file uploads
Handle building form params in the body
Files are handled as strings for input
* Requests with no defined return type will return the Tesla.Env response
* Run the bin/elixir-petstore.sh
* * Fix bugs in api.mustache, model.mustache, mostly bracket errors or small typos
* Added section about installation in README.mustace
TODO: fix tests in testthat
TODO: fix bug in description.mustace regarding package name
* Updates to sample for R client caused by running ./bin/r-petstore.sh (or .\bin\windows\r-petstore.bat)
* Add R specific files to .gitignore
* [R] add additional files generated by the petstore sample. (see #6520)
The only special handling was for security definition type `apiKey`
in `query`. All the other security configurations should result in the
same generated code.
Moves the handling of the special query parameters outside of the
`parameters without specific cardinality` section.
To cover the scenario where `elif` was being used, simply leverage the
builtin `continue` statement to stop processing the specific query
parameter and continue to the next available query parameter, if any.
Manually test with multiple different combinations.
Resolves: #6526
* Update samples
./bin/php-petstore.sh
* Remove unnecessary implements entry
ModelInterface, ArrayAccess are already implemented in parent
* Remove field `container` which is already defined in parent
* Change snake case to lower camel case
- invalid_properties
- allowed_values
* Improve doc commenct style
* Improve description length
* Improve length
* Doc comment short description must start with a capital letter
* Add a line between @param and @return
* Delete an additinal blank line at end of doc comment
* Udpate petstore-security-test
* upgraded zend-expressive from version 1 to 2
* Changed error handler for compatibility with Zend Expressive 2
* generated newest sample files for Petstore ze-ph
* removed ErrorMiddleware because it is never been used anymore. Regenerated samples
* removed ErrorMiddleware Template from Codegen
* remove ErrorMiddleware from petstore sample
* Fixed some code styles
* regenerated ze-ph samples with corrected code styles
* added new line at the end of the file
* [QT5][CPP] Fixing issue with maps in models
- Adjusted init function to init map correctly
- Adjusted cleanup function to cleanup maps correctly
* Fixed formatting for samples
Previously, we had implemented the Codable protocol by simply claiming conformance, and making sure that each of our internal classes also implemented the Codable protocol. So our model classes looked like:
class MyModel: Codable {
var propInt: Int
var propString: String
}
class MyOtherModel: Codable {
var propModel: MyModel
}
Previously, our additionalProperties implementation would have meant an object schema with an additionalProperties of Int type would have looked like:
class MyModelWithAdditionalProperties: Codable {
var additionalProperties: [String: Int]
}
But the default implementation of Codable would have serialized MyModelWithAdditionalProperties like this:
{
"additionalProperties": {
"myInt1": 1,
"myInt2": 2,
"myInt3": 3
}
}
The default implementation would put the additionalProperties in its own dictionary (which would be incorrect), as opposed to the desired serialization of:
{
"myInt1": 1,
"myInt2": 2,
"myInt3": 3
}
So therefore, the only way to support this was to do our own implementation of the Codable protocol. The Codable protocol is actually two protocols: Encodable and Decodable.
So therefore, this change generates implementations of Encodable and Decodable for each generated model class. So the new generated classes look like:
class MyModel: Codable {
var propInt: Int
var propString: String
// Encodable protocol methods
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: String.self)
try container.encode(propInt, forKey: "propInt")
try container.encode(propString, forKey: "propString")
}
// Decodable protocol methods
public required init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: String.self)
propInt = try container.decode(Int.self, forKey: "propInt")
propString = try container.decode(String.self, forKey: "propString")
}
}
class MyOtherModel: Codable {
var propModel: MyModel
// Encodable protocol methods
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: String.self)
try container.encode(propModel, forKey: "propModel")
}
// Decodable protocol methods
public required init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: String.self)
propModel = try container.decode(MyModel.self, forKey: "propModel")
}
}
This is the equivalent change in the swift4 module which was made in the swift3 module in this PR:
https://github.com/swagger-api/swagger-codegen/pull/6274
This updates AlamofireImplementations.mustache to handle when the response is an URL. It also makes changes in the generated sample code for:
* default configuration (no promisekit or rxswift)
* promisekit
* rxswift
Also, in order to build, the generated code needed to be updated with the change in CodableHelper which changes dataDecodingStrategy to ".base64" from its previous definition in earlier Xcode 9 betas.
*
* point readme links to canonical locations
* use lenses for non-required model fields, instead of traversals
* fix .gitignore generation
* fix dateFormat cli option bug
* [ANDROID][volley] Handle UnsupportedEncodingException in invokeAPI (Issue #6432)
The constructor of StringEntity can throw UnsupportedEncodingException, which is not catch nor thrown by createRequest method.
Therefore the build of android client fails with:
ApiInvoker.java:448: error: unreported exception UnsupportedEncodingException; must be caught or declared to be thrown
This commit adds a try ... catch on UnsupportedEncodingException in invokeAPI methods and declare this exception to be thrown in createRequest
* [ANDROID][volley] Handle UnsupportedEncodingException in invokeAPI (Issue #6432)
The constructor of StringEntity can throw UnsupportedEncodingException, which is not catch nor thrown by createRequest method.
Therefore the build of android client fails with:
ApiInvoker.java:448: error: unreported exception UnsupportedEncodingException; must be caught or declared to be thrown
This commit adds a try ... catch on UnsupportedEncodingException in invokeAPI methods and declare this exception to be thrown in createRequest
* [ANDROID][Volley] Handle UnsupportedEncodingException (Issue #6432)
Throw more precise ApiException
* [csharp] Explicitly set supportsInheritance
* [csharp] set supportsInheritance for client
This includes supportsInheritance only for the client codegen at the
moment, because setting in AbstractCSharpCodegen would require the
change to be tested in all derived generators, possibly including
similar template changes to this commit's.
* include nice improvement of https://github.com/jimschubert/swagger-codegen/tree/csharp/3829 and leverage https://github.com/manuc66/JsonSubTypes for subtype deserialization
* remove duplicate base validations
* remove useless tests
* restore documentation for properties coming from parent
* launch bin/security/csharp-petstore.sh
* it's impossible to call an explicitly implemented interface-method on the base class
(https://stackoverflow.com/questions/5976216/how-to-call-an-explicitly-implemented-interface-method-on-the-base-class)
* restore portion of code that was lost
* regenerate more
* fix missing using
* take the multi .net compatible revision
* keep generated model simple when no hierarchy involved
* regenerate with:
- bin/csharp-petstore-all.sh && bin/security/csharp-petstore.sh
- bin/csharp-dotnet2-petstore.sh && bin/csharp-petstore.sh && bin/csharp-petstore-netcore-project.sh && bin/csharp-petstore-net-standard.sh && bin/csharp-property-changed-petstore.sh
* fix sln indentation and the missing windows runner for dotnet2
* fix inheritance GetHashCode and Equals
* override instead of hiding the base method
+ fix the csharp-property-changed-petstore.bat
* By default the value of the discriminator property must be the name of the current schema
* Add test for subtype deserialisation from parent type
* add missing '.bat' and use the 'call' template from javascript-petstore-all.bat
add missing file to trigger it on windows
* fix default value bug
* cleanup copyright information
* formatting after merge
* fix merge
* applying bin/csharp-petstore-all.sh
* applying bin/security/csharp-petstore.sh
All Model classes include a set of methods - it makes sense to align them to a concrete interface to improve strict typing when referencing these models.
* add r client codegen
* update r api, model templates
* various fix
* rename Json to JSON
* more enhancements
* fix json handling
* add file upload support, var name to handle hyphen
* use httr::upload_file
* Fix Uuid parse
* Add isString = true when property is Uuid
This will not break previous code
* Update conversionBegin.mustache
* Update conversionEnd.mustache
* - Added javax.validation.Valid annotation to modules/swagger-codegen/src/main/resources/JavaJaxRS/spec/bodyParams.mustache
- Added bean validation and api description to modules/swagger-codegen/src/main/resources/JavaJaxRS/spec/headerParams.mustache
- Added api description to modules/swagger-codegen/src/main/resources/JavaJaxRS/spec/queryParams.mustache
- Added interfaceOnly parameter management to modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaJAXRSSpecServerCodegen.java to generate only interfaces and models.
- Added interfaceOnly parameter management to modules/swagger-codegen/src/main/resources/JavaJaxRS/spec/api.mustache
- Added throws java.lang.Exception to modules/swagger-codegen/src/main/resources/JavaJaxRS/spec/api.mustache
* Run ./bin/jaxrs-spec-petstore-server.sh
* jaxrs-spec: javax.validation.Valid model attributes for array items
* Run ./bin/jaxrs-spec-petstore-server.sh
* two fixes: 1) extra ?'s at end of some url's 2) enums not being called out w/ rawValue to get the proper string name
* update samples
* one step closer
* closer implementation
* break on optional decode failing since it's an optional we don't want to fail the whole decode
* update samples
* two fixes: 1) extra ?'s at end of some url's 2) enums not being called out w/ rawValue to get the proper string name
* update samples
* one step closer
* closer implementation
* add back in array decoders
* regenerate samples
* Use the right package name for the Rust crate.
* Change getters on models to return Option for non-required fields.
* Cleanup Rust generation and get example compiling again.
* Use underscore names for functions.
Until now
--------------------
If a swagger endpoint returned a file (e.g. an image), then the Retrofit2
template has choosen the return type java.io.File. However, retrofit cannot
deal with this and throws a com.google.gson.stream.MalformedJsonException.
New:
-------------------
If a swagger endpoint returns a file, then the corresponding Retrofit2 endpoint
will return a okhttp3.ResponseBody which can be used to retrieve the file.
* Implemented support for Play! 2.5.x / java8
* Added petstore sample for play25
* implemented play25 support
implemented version switch via playVersion config option
* fixed compilation failure after merge
* Disabled generation of CustomInstantDeserializer if dateLibrary equals to java8
* two fixes: 1) extra ?'s at end of some url's 2) enums not being called out w/ rawValue to get the proper string name
* update samples
* one step closer
* closer implementation
* fix unwrapRequired models when we have a parameter named result
* Rrename for angular and angularjs to reflect naming guidelines
see http://angularjs.blogspot.com.au/2017/01/branding-guidelines-for-angular-and.html
- move makes typescript-angular -> typescript-angularjs
- move makes typescript-angular2 -> typescript-angular
Language string with generate was already this so generation shouldnt change
but class naming follows this convention now
* Fixing merge problems
* Support additionalproperties and more.
- Upgrade to TypeScript 2
- Use type definition from npm instead of typings, typings is deprecation
- Use Enum instead of String Literal Types
- Use typescript es6 lib for target es5
- Support additionalproperties
- Support JSDoc
- Add snapshot and npmRepository option
- Update typescript-fetch run script for linux
- Create typescript-fetch run script for windows
* Update and fix
- Fix circle run script
- Fix duplicate query parameter
* Rename typescript-fetch folder to lowercase
* Fix for review and update new line end of file
* Fix end of file
* rename script to {lang}-petstore-all.sh and fix test
* Fix override query string
https://stackoverflow.com/a/7517673/1077943
* - check C++ keywords
- setter for SSL configuration
* recreate example QT5CPP
* only emit error signal if error happens
* provide more error information
* regenerate example QT5CPP
* * use reserved words in abstract cpp generator
* update CppRest examples
* remove tabs
* two fixes: 1) extra ?'s at end of some url's 2) enums not being called out w/ rawValue to get the proper string name
* update samples
* one step closer
* closer implementation
* fix build when using unwrapRequired option
Checking for "trueness" here is not sufficient. An empty list has a truth
value of false so it will not be encoded as json and sent as the request
body as it should. Instead we need to check explicitly if body is None.
If a data class has no optional parameters, a trailing comma (which was
supposed to delimit the list of required and optional parameters) will be
inserted after the last required paramter, leading to a syntax error in
Kotlin.
* fix a bug whereby OAuth intercept method calls itself forever
When the response is 401 or 403, the interceptor assumes that it is because of token so it keeps retrying the request with new token. However if the response status is due to the fact that authorization to the api endpoint failed, and not due to invalid token, then a recursive operation of updating token and re-requesting the failed request happens.
* change binary OR operator: | to normal OR operator: ||
although binary may work, it's unusual and likely was unintentional.
* trying an approach with providing asyncio as a framework.
* adding example of asyncio.
* removing sample client to help PR look more manageable.
* possibly fixing a unit test
* getting unit test to pass again.
* addressing comments.
* [java-vertx] make vertx client support running on different contexts
* [java-vertx] make vertx client support running on different contexts (samples)
* Removals of most of the warnings found by lint
* Removals of most of the warnings found by lint (PART 2)
* Removals of most of the warnings found by lint (PART 3)
* Removals of most of the warnings found by lint (PART 4)
* Removals of most of the warnings found by lint (PART 5)
* Fix conversion error
* Removal of unnecessary import. Other will need more complex login in the generator itself (not in the mustache files)
* Add missing imports + fix to the regex. Generation of the samples
* 1st commit of lua generator
* add petstore sample
* various fixes based on feedback
* better return handling
* check status code 1st letter
* add support for query parameters, auth, body param
* more fixes based on daurnimator feedback
* more fixes based on daurnimator feedback
* fix a few more issues found by luac -p
* use lower case for http header key name
* more fixes based on feedback
* update lua sample
* skip auto-generated readme, doc, test files
* use tab instead of 2-space
* fix container return type
* fix cast method call
* fix cast function call
* Fix issue #6100. Tested with all the samples.
* Fix multiple issue with the examples. Removing all of this.
Adding fake endpoint .sh but it is not compiling right now.
* add rust generator (1st release)
* update based on feedback
* fix reserved keyword
* fix string parameter
* Convert String to &str in trait definition
* Only pass pathParams to uri builder
* Fixed the html escaping in return type
* Fixed the hashmap constructor
* Added models into API scope
* removed models subimport, reference from super
* update returntype in method signature
* Fixed the remaining templates inconsistencies
* Fixed issues that floated up in kubernetes swagger file
* add hash support, fix docstring
* fix map parameter, update api.mustache
* use baseName for parameter
* use fully-qualfiied model name
* add rust tests
* fix test cases
* Rust gen slightly more idiomatic (#6247)
* Go -> Rust in README
* Remove leftover go file in rust sample
* rust: Regenerate sample
* rust: Rename *Impl -> *Client
* rust: one-line use line
More in line with common style
* rust: Replace tabs (in java) with 4 spaces
* Added trivial getter implementation (#6249)
* update rust petstore samples
Fixed typo in shell script
Added support for Outer Enums, inner enums not supported.
Added missing UUID library in ecf template.
Improved Model inheritance.
This change adds Objective-C compatibility for Swift Optional scalars in the swift4 language just like we added in swift3 here:
https://github.com/swagger-api/swagger-codegen/pull/6129
It also adds unit tests for the swift4 language. Currently those unit tests are the same as the swift3 unit tests, but will change soon as we iterate on the swift4 language generator.
Currently, in the swift3 language, if you have an optional integer, number, or boolean property in a model, then the generated swift3 model class might look like:
class SomeModel {
var someInt: Int?
var someFloat: Float?
var someDouble: Double?
var someBool: Bool?
}
This works fine if you are accessing this model only from Swift code. However, it is very common for iOS codebases to contain both Swift AND Objective-C. If you need to access this model from Objective-C, then those 4 properties are not accessible, since Optional scalars do not translate to Objective-C.
Therefore, in the swift3 language, we want to add some code for Objective-C compatibility:
1. We add a "objCompatible" boolean command-line option. If objCompatible=true, then this enables some additional code generation to make these types of properties accessible from Objective-C. If objCompatible=false, then the generated code is exactly as it currently is. The default is objcCopmatible=false.
2. If objCompatible=true, then for these types of Objective-C-inaccessible properties (Optional scalars), then we add a "x-swift-optional-scalar=true" vendor extension in the CodegenProperty.
3. Then, in the model.mustache template, if we see x-swift-optional-scalar=true, then we add an additional computed property which returns an optional NSNumber.
So, for example, when objcCompatible=false (the default case), then the generated code for the "declawed" property of the Cat model looks like:
open class Cat: Animal {
public var declawed: Bool?
...
But when objcCompatible=true, then it looks like:
open class Cat: Animal {
public var declawed: Bool?
public var declawedNum: NSNumber? {
get {
return declawed.map({ return NSNumber(value: $0) })
}
}
...
* Changes to allow field names as examples for string properties and multiple items in array during example generation
* Reverting the version to 2.3.0-SNAPSHOT and autogenerated petstore files
* Add polymorphism support for python
* Update api_client
* Remove leading spaces
* Bugfix
* Catch case where swagger_types is none but get_real_child_model is defined
* Added C++ generator for Pistache
* Revert of CodegenOperation
* Updated template
* Removed isRestful from method declaration
* Updated httpMethod variable
* Changed isRestfulCreate
* Updated pistache library name
* Update pistache petstore sample with the new library name
* removed typings for typescript-node language and updated typescript version
* updated sample of typescript-node by running .\bin\windows\typescript-node.bat
* More flexible subclassing of ApiClient possible by s/private/protected/g
I found myself in a situation where I needed to change the configured `Feature`s, but
because of all the private variables I was not able to do so. Perhaps this is a bit too
broad of a stroke, but I changed all fields and methods to `protected` instead of `private`.
In this way, future extensibility should be improved.
Also, to solve my particular problem, I added a new empty method called
`performAdditionalClientConfiguration` which will allow subclasses to add specific features,
or do anything else possible with a `ClientConfig`.
* Updated samples
Allow documentation to specify void when no
return type is available
Remove Xcode warnings:
"Documentation Issue
Empty paragraph passed to '@return' command"
* Fix issue 5460
* Handling only first and last double quote to support example with double quote in the middle
* Fix proposed by @ePaul
* Add comments to explain de fixStringModel function. Add an enum model called PetStatus that test this scenario. Update sample only for JavaPlayFramework generator
* Add automatic validation of return type when beanValidation is activated
* Small fixes for the automatic validation
* Add validation of entering body object + fix problem when receiving list + do not validate when the return value is a file
commit e3210cf8cc679c54f5c0d8d4fda2db6af1ee5bcf
Author: wing328 <wing328hk@gmail.com>
Date: Sun Jul 23 17:41:44 2017 +0800
comment out failed kotlin test
commit ed6bd1b92464f56885bc3cfa5d30936ce4a3d53d
Author: wing328 <wing328hk@gmail.com>
Date: Sun Jul 23 17:17:20 2017 +0800
test kotlin the last
commit a601445d04d0935f6a80a5052f1b4c6c3ee514d2
Author: wing328 <wing328hk@gmail.com>
Date: Sun Jul 23 16:56:40 2017 +0800
add test for kotlin client
* [TypeScript][Aurelia] Create Aurelia code generator #5987
* Implement authentication methods for Aurelia #5987
* Support form data in Aurelia #5987
* Generate an index.ts file for Aurelia #5987
* Add return type to Aurelia model imports #5987
* Add Aurelia client options test #5987
Added shell scripts, batch files to generate Eiffel Petstore samples.
Added Setup CI (travis, shippable, etc) to cover the Eiffel Petstore samples.
Refactored part of the code into an Abstract Eiffel base class,
which can be later used in Eiffel server stub generators.
Added Eiffel Style guide to the contribution guidelines so that Eiffel contributors know what to follow in terms of code style
Fixed code generator issues.
Updated mustaches templates.
* Improve generated code in APIs so to use the most of Swift SDK
Improve generated code in APIHelper so to remove duplicated code and reuse existing checks
* run ./bin/swift3-petstore.sh
* Run ./bin/swift3-petstore-all.sh to update all the Petstore samples
* Restore old implementation and fix using .isEmpty in place of .count
* Run scripts to update pet store samples
* Reverte changes that use reduce
* Bug fixes on APIHelper template
* Fix build error in Xcode 9 beta 3, as .compact is no longer defined
* Add test schema for Swift 4 and associated script and config files
* Add test app for swift4Test.json schema
* Make integer, Integer, int, and Int32 types map to Swift Int type instead of Int32 type
* Add CodingKeys to model template, which allows us to serialize/deserialize variable names that are different than property names
* Make updates to Swift 4 test schema
* Fixes for unit test app for swift4Test.json Swift 4 test schema
* Major fix to the collection handling in Play Framework Generator
* Major fix to the collection handling in Play Framework Generator (small details missing from previous commit)
* Add the fix to header and form parameters too
* Fix to the default values. It did not take care of the "default" and also was setting to a bad default when not set.
* Just make a difference between string and non string instead of placing all types in the mustache file
* update pom to prepare 2.2.3 release
* add header support to qt5, update samples
* update version in java help
* update to xcode 9
* rollback to xcode8.2
Moving instantiationTypes, typeMappings, languageSpecificPrimitives, additionalProperties, and reservedWordsMappings out of configOptions and converting it into a list, rather than being a comma-separated string.
The [java8 doclint](http://openjdk.java.net/jeps/172) rejects unescaped
HTML chars such as `<`, making some generated clients unbuildable with
java8. Seems a few property descriptions were using the `{{{` instead
of `{{` preventing those HTML chars from being escaped properly.
* Initial Eiffel Client code generator
TODO API and Domain model
* Updated EiffelClientCodegen to support Eiffel code style.
Added mustaches templates for models and apis.
The last one still under development.
* Updated templates, initial API generation.
Added client request template.
* Updated api.mustache style
* Updated code generation with a new directory layout.
Added test case generation, clean code.
* Updated Code generator, added apidoc and modeldoc
Updated readme file
* Added a Basic JSON Deserializer
Updated API client to support by default a basic json (de)serializer and let
the user customize then if needed.
* Updated Eiffel code generator to use Eiffel feature name style.
Updated templates to follow Eiffel style.
Improved feature descriptions.
* Added model inheritance support.
Removed unused code.
* Updated Eiffel code templates, refactor remove obsolte feature calls.
Added Eiffel sample in samples/client/petstore/eiffel.
* Updated Java code style.
* Fixed formating, using spaces instead of tabs.
* Updated EiffelCodeGenarator typeMapping.
Added TestCases for EfiffelClientOption and ModelTest cases.
Updated sample code to use the lastest changes.
* Restore keyword `nil' in Go Language.
* 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
* Update samples for several languages.
Just whitespace changes and some reordering where the order doesn't matter.
* Adding generated .swagger-codegen/VERSION files.
* [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
* add pod file for swift3
* skip pod install
* avoid pod install in swift3 petstore (promisekit,rxswift)
* use https instead of http for cocoapod spec
* avoid timeout in swift3 test
* 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
* gh-4044: Added useES6 as an option for javascript templates
* gh-4044: Enabled ES6 in `javascript/api.mustache`
* gh-4044: Enabled ES6 in `javascript/ApiClient.mustache`
* gh-4044: Enabled ES6 in `javascript/enumClass.mustache`
* gh-4044: Added useES6 cli option to `javascript` clients and updated the test cases
* gh-4044: Enabled ES6 in `javascript/index.mustache`
* gh-4044: Enabled ES6 in `javascript` model templates
* `javascript/model.mustache`
* `javascript/partial_model_generic.mustache`
* `javascript/partial_model_enum_class.mustache`
* `javascript/partial_model_inner_enum.mustache`
* gh-4044: Separated `javascript-es6` templates to another folder
* gh-4044: Updated `javascript-es6/index.mustache`
* gh-4044: Enabled ES6 in `javascript-es6/api_doc.mustache`
* gh-4044: Added required dependencies for ES6
* gh-4044: Updated Supportig files for ES6 and non ES6
* gh-4044: Added test scripts to verify `javascript` useEs6 option
* gh-4044: Commented `javascript-es6` scripts due to the permission issues.
* Moving import-mappings out of configOptions and converting it into a list, rather than being a comma-separated string. #5383
* Making the change to importMappings backwards compatible
* Implement generating interfaces option for api resources, closesswagger-api/swagger-codegen#5453.
This commit introduces another _system property_ for typescript-angular2, called `withInterfaces` that is default to `false`. You can activate this flag by:
```
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
-i http://petstore.swagger.io/v2/swagger.json \
-l typescript-angular2 -o samples/server/petstore/springboot/typescript-angular2 \
-D withInterfaces=true
```
If set to `true`, generated api resource classes will be implemented with their interfaces in separate files.
This change should not break and change the behaviour even though `withInterfaces` flag set to `true`. You are also welcome to create your own custom resource class by implementing those generated interfaces as they support defining new attributes with `[others: string]: any;` signature.
* Fix unit test for typescript/angular2 client options for "withInterfaces"
* Use double quote to follow coding standard
* Respect interface naming convention for typescript/angular2
Create respectful interface names that ends with `Interface` suffix, instead of prefixing with `I` according to typescript naming convention. This is also consistent with their file names that also ends with `Interface.ts`.
Also fixes the merge conflicts.
* Have better explanation for the `withInterfaces` system config
* Salesforce Apex support
* typo in function name
* comments for clarification
* DoubleProperty and FloatProperty are both DecimalProperty
* test models with default and provided example property values
* adding some more default example values
* 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
* Removal of warning (final) and fix of a missing default value for boolean query parameters
* 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
* Fix the conversion of boolean type
* Add samples for the fix with the boolean
* Fix bugs introduced by polci related to the bean validation.
* Refactor to use the "beanValidationCore". Asked by @wing328
* Sync with upstream/master
* Fix for issue #5653
Override the toModelName(String name) [from DefaultCodegen] in StaticHtmlGenerator to return `name` unmodified
so that the anchors for models and the href for body parameters match case (do not convert model names to TitleCase.
* Revert "Fix for issue #5653"
This reverts commit 5472aa10a3101ea5dd417bc509c5d9c5351a3d66.
* Fix for issue #5653
Override the toModelName(String name) [from DefaultCodegen] in StaticHtmlGenerator to return `name` unmodified
so that the anchors for models and the href for body parameters match case (do not convert model names to TitleCase.
* ignore .vscode
* fixed test case for models requiring mandatory attributes. added deserialize test for enum class
* construct model with mandatory attributes. improve class reflection (e.g. deserialize). disable generated empty model unit test for further FIXME
* rebuilt samples
* FIXME comment
* FIXME comment
* fix deserialization enum test
* Disable Jackson FAIL_ON_INVALID_SUBTYPE in feign
With this change, Jackson does not fail even if it doesn't recognize a
discriminator type name. This is helpful when upgrading a microservice with
a new subtype while keeping compatibility with its old clients. The instance
is returned as null instead of throwing an exception deep in the feign
framework, allowing clients to gracefully degrade.
* Disable FAIL_ON_INVALID_SUBTYPE for all Jackson-based projects
With this change, users providing custom configuration must provide an exported Configuration factory, rather than just an object. This is needed to be Angular AoT compatible.
Example use:
import * as api from '../api';
/** Configuration settings for the backend API */
export function backendConfigurationFactory(): api.Configuration {
return new api.Configuration({basePath: '/api'});
}
@NgModule({
imports: [api.ApiModule.forConfig(backendConfigurationFactory)],
...
This fixes the glob pattern to remove hard-coded namespaces, and exclude
the obj folder. This removes a newly introduced issue that breaks
apiPackage and modelPackage support and fixes a problem with Xamarin
pulling in obj/**.cs when globbing **/*.cs.
* Add overloads on signals.
The overload adds the NetworkError and the error string to the signal. Both signal will be emitted. Clients are supposed to subscribe to only one of the overloads.
* refactor generated code alignement
* Do not use method overload for signals. Instead, have another naming convention for signal that carries Error information.
Why ? Because signal overloading and QT5 connector with method referencing do not mix well (see http://stackoverflow.com/questions/16794695/connecting-overloaded-signals-and-slots-in-qt-5). It would need to specify exactly which overload to take. That is cumbersome to write AND is a breaking change for the consumer of the generated code.
* update qt5 sample files
* Added code to templates to ensure generation of code for Swift3 that builds on both Apple platforms and Linux. Fixed a bug in the Model decoders that prevented code from building for Linux
* Ran the script to generate the PetStore API
* [Erlang] Address apparent reproducibily issue of sample
Spotted running `bin/erlang-petstore-server.sh` on d08d55d41 .
Apart from newlines, this is the opposite change of ec6248cbc .
* [Erlang] Perform basic testing of sample server on CI
* [Erlang] Install recent Erlang/OTP version
... in order to satisfy `jesse` compilation.
The error I faced is:
```
$ curl -f -L -o ./rebar3 https://s3.amazonaws.com/rebar3/rebar3 && chmod +x ./rebar3 && ./rebar3 version && export PATH="${TRAVIS_BUILD_DIR}:$PATH"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 766k 100 766k 0 0 1041k 0 --:--:-- --:--:-- --:--:-- 1041k
rebar 3.3.6 on Erlang/OTP R16B03 Erts 5.10.4
...
===> Verifying dependencies...
===> Fetching jesse ({git,"https://github.com/for-GET/jesse.git",
{tag,"1.4.0"}})
===> Fetching jsx ({git,"https://github.com/talentdeficit/jsx.git",
{branch,"v2.8.0"}})
===> Skipping jsx (from {git,"git://github.com/talentdeficit/jsx.git",
{tag,"2.8.0"}}) as an app of the same name has already been fetched
===> Compiling jsx
===> Compiling jesse
===> Compiling _build/default/lib/jesse/src/jesse_tests_util.erl failed
_build/default/lib/jesse/src/jesse_tests_util.erl:28: can't find include lib "common_test/include/ct.hrl"
_build/default/lib/jesse/src/jesse_tests_util.erl:55: undefined macro 'config/2'
_build/default/lib/jesse/src/jesse_tests_util.erl:24: function do_test/2 undefined
_build/default/lib/jesse/src/jesse_tests_util.erl:72: function test_schema/3 is unused
_build/default/lib/jesse/src/jesse_tests_util.erl:102: function get_path/2 is unused
_build/default/lib/jesse/src/jesse_tests_util.erl:105: function load_schema/1 is unused
[ERROR] Command execution failed.
org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:404)
at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:166)
at org.codehaus.mojo.exec.ExecMojo.executeCommandLine(ExecMojo.java:804)
at org.codehaus.mojo.exec.ExecMojo.executeCommandLine(ExecMojo.java:751)
at org.codehaus.mojo.exec.ExecMojo.execute(ExecMojo.java:313)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:exec (Erlang Test) on project ErlangServerTests: Command execution failed. Process exited with an error: 1 (Exit value: 1) -> [Help 1]
```
* [Erlang] Bump `jsx` dependency to latest stable version
* [Erlang] Disable sample server from CI until compilation works
* Added PowerShell module. See #4320
MVP PowerShell module to serve as a template for a PowerShell generator.
* Fixed function name
* Removed module manifest
It should be generated by the build script
* Ignore module manifests
* Removed binding from prop. name for Pet
This is the result of
- `$ git checkout master`
- `$ bin/run-all-petstore`
No change was made to the code, just ran the aggregate sample generation
script.
- typo in csharp-petstore-net-standard.sh (Stanard -> Standard)
- non-existent config file name name in csharp-petstore-netcore-project.sh
- non-existing config file name in ruby-petstore.sh
- snapshot versioning in typesript-petstore-npm.json causes
non-deterministic output
The hasMore field of the global authMethods was broken due to sorting after
setting that field. The sort order for per-operation authMethods was not
guaranteed to be consistent across runs because it didn't do sorting. This
change fixes those issues by always sorting and setting the hasMore field
post-sort.
query_params is a list of tuple, so defined it as a list by
default instead of a dict.
This fix below issue on the client side.
Traceback (most recent call last):
File "test.py", line 13, in <module>
api_response = api_instance.seek("the")
File "python-client/swagger_client/apis/seek_api.py", line 168, in seek
(data) = self.seek_with_http_info(recherche, **kwargs)
File "python-client/swagger_client/apis/seek_api.py", line 245, in seek_with_http_info
collection_formats=collection_formats)
File "python-client/swagger_client/api_client.py", line 323, in call_api
_return_http_data_only, collection_formats, _preload_content, _request_timeout)
File "python-client/swagger_client/api_client.py", line 135, in __call_api
self.update_params_for_auth(header_params, query_params, auth_settings)
File "python-client/swagger_client/api_client.py", line 512, in update_params_for_auth
querys.append((auth_setting['key'], auth_setting['value']))
AttributeError: 'dict' object has no attribute 'append'
Signed-off-by: Gregory Herrero <gregory.herrero@gmail.com>
* add withCredentials to the configuration
1. `withCredentials` in Request is `false` default
2. if want to set the `withCredentials` as `true` (for CORS request),
instance `Configuration` object and set the `withCredentials` as `true`.
* simplify the code according to the code review
* remove trailing space in cpprest, update samples
* add android batch files, better code format, sync petstore.json with
petstore.yaml
* restore petstore.json and sync it to petstore.yaml
* update circleci pom.xml
* add new android files
* add new android files
The old android-petstore.sh script is writing output to the android volley
directory. There is a new script called android-petstore-volley.sh that also
writes to that same directory. They overwrite each other, which makes the
run-all-petstore script output dependent on which one gets run last. This change
removes the old script.
* Elizabeth - changes to include swagger version in generated api files
* Filtering version.properties in swagger codegen module
* Removing resource filtering from swagger codegen cli module
* Merging master
* Converting to constructor based injection
* Correcting spelling mistake
* Adding the bean for ObjectMapper
* Adding files modified by running the petstore scripts
* Adding final qualifier to objectMapper variable in apiController mustache
* Enable Tag details to be used in templates
Adds the ability to reference the tag name, description, external
docs, and vendor extensions in Mustache templates during codegen
* Properly resolve tags when not defined in Swagger tags definition
* Fix NullPointerException for info.version on Javascript client codegen
* Set/Return project default version to 1.0.0 if info.version not found
* info version null check handled and default version/appVersion value set to 1.0.0
* Removed null check for info version. Fixed DefaultGenerator code to handle null check.
* Semicolon added missing
* Add support to UUID type
* Simplify and use a simple QString instead of a QUuid.
Work for using a QUuid is way larger than supporting QString (imply modifying multiple c++ templates).
Current needs are fullfill with the use of a simple QString, so I let the use of QUuid for future enhancement.
* - add windows executable for generating qt5 security samples
- update sample clients
PS : some modifications on the samples are not related to the patch I applied. Were the samples up-to-date ?
* Fix NullPointerException for info.version on Javascript client codegen
* info version null check handled and default version/appVersion value set to 1.0.0
* Removed null check for info version. Fixed DefaultGenerator code to handle null check.
* semicolon added missing
* [JAVA/] jaxrs/jersey2 (Issue: 4662) Made java8-date codegeneration to work with jersey2
* Ran shellscripts for jaxrs-jersey-petstore-server and java8-petstore-jersey2 to update petstore samples
* Updated the Petstore samples
* This change uses std::stringstream for string conversions instead of std::to_string(). Android doesn't yet support std::to_string(). This should fix#4632
* Add support for Spring's RestTemplate in Java client codegen
Resolves#1176
* Update all Java samples to include change for Jackson enums
Currently enums are deserialized from a String value with an
explicit @JsonCreator. However, they are not being serialized with
this String value. This change introduces the @JsonValue annotation
on the toString() method of enums, so they will be serialized as a
String with the correct value.
* Rewrite of Go Client
* Revert to older version of context.Context
* Clean and bulk up concurrency test.
* Correct {{path}} to {{{path}}}
* change custom date type to string.
* Add APIKey authentication
* Correct missing line from resolving conflicts.
Correct missing line from resolving conflicts.
* use py3 instead of py34
* fixed test to test invalid enum
* ADDED: assign variable in the ctor with property setter to check validity if possible. CHANGE: move required property check to proper place. CHANGE: remove double quotes from allowed_values for none-string enum property
* rebuilt samples
* comment for improvement
* ADDED: post process enum model for python.
* comment
* rebuilt samples
* rebuilt samples
The generation code was ignoring top-level aliases for any language config that
contained "java", which included "javascript", a completely different language.
Changed this to be those configs based on the JavaAbstractGenerator class.
When a spec defines a Model at the top level that is a non-aggretate type (such
as string, number or boolean), it essentially represents an alias for the simple
type. For example, the following spec snippet creates an alias of the boolean
type that for all intents and purposes acts just like a regular boolean.
definitions:
JustABoolean:
type: boolean
This can be modeled in some languages through built-in mechanisms, such as
typedefs in C++. Java, however, just not have a clean way of representing this.
This change introduces an internal mechanism for representing aliases. It
maintains a map in DefaultCodegen that tracks these types of definitions, and
wherever it sees the "JustABoolean" type in the spec, it generates code that
uses the built-in "Boolean" instead.
This functionality currenlty only applies to Java, but could be extended to
other languages later.
The change adds a few examples of this to the fake endpoint spec for testing,
which means all of the samples change as well.
* Fixed classFilename in typescript-angular and recreated samples
* Changed classname to classFilename in ts-angular2/models.mustache
Also recreated ts-angular2 sample
* 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 Valid import to Controller
* Adds generated code for bean validation change
Commit e3d04ee01 (issue #5240) introduced unsafe add/put methods for optional
list/map parameters. This change maintains the spirit of issue #5240 (optional
containers are null by default) while still making add/put calls safe. It does
this by checking for null first and, if so, initializing it with an empty
container.
Also updated the affected samples using the various scripts in bin/.
* set list to null in java if not required
* update petstore sample for java server stub
* update sample for msf4j
* add null assignment to new list/map in java
* Add option to skip Maven plugin execution
The execution is skipped if either the codegen.skip property or the <skip>
configuration parameter is set. This is consistent with how many other Maven
plugins, such as maven-exec-plugin and maven-clean-plugin, handle this.
* Add documentation for Maven `skip` property
* Fix environment variable support in successive Maven plugin executions
System properties were retained across multiple successive executions,
resulting in unpredictable behavior. Property values are now properly reset
to their original value after plugin execution.
Fixes#5350
* Add explanation to environment variable reset mechanism in Maven plugin
* 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
* Return a FileInputStream when the returnType is "file" + Fix a couple of other bugs with boolean + updated sample
* Return an InputStream instead of FileInputStream (except in the instantiation)
* A little cleanup for the form param of type file.
This is for the EAP version specifically.
* The JacksonConfig class always used the io.swagger.api package
* The RestApplication class did not import the service implementations
from the correct package
* Added shell script for generating test applications
* reimplemented basic requests with httpplug
* added returning headers
* added query params support
* removed constant reference to model class
* some extra @throws; form params
* form and query params encoding
* file upload / form multipart
* added missing response headers in WithHttpInfo calls
* removed Store test From PetApiTest class
* removed configuration overriding test as its now task of client adapters
* updated store tests with new client initialization code
* updated composer.json template
* not using json_decode if response is string
* renamed some variables to camelCase
* removed ApiClient and Configuration classes
* added HeaderSelector template
* added ObjectSerializer injection
* regenerated all samples
* added AuthConfig and readded support for custom api keys
* readded support for oauth tokens
* readded basic auth; moved auth tests to separate test class
* readded header params
* readded support for collections in paths
* readded config option; readded exception handling
* file downloading; readded some Configuration properties removed earlier
* readded default headers
* made responses and return types work same way as earlier
* made all methods static in ObjectSerializer
* updated test.php, replaced autoload.php with composer's autoloader
* updated api doc template
* removed classes used for testing; regenerated Fake_classname_tags123Api
* replaced httplug with guzzle6
* updated required php version to 5.5
* clean up
* readded missing userAgent feature; removed default headers from Configuration
* updated test.php
* downgraded phpunit back to 4.8 to work with php5.5; fixed client initialization in some tests
* Add async support to scala client.
* Format api endpoints.
* Modify build.sbt.
* Change date format and pass StoreApis tests.
* Add StringReader and StringWriter to support string serialization/deserialization.
* update petstore samples for scala clients
* Update maven and gradle dependency. Update tests to pass compilation.
* [Swift3] Fix bug where non-camel-case path params didn't work.
* [Swift3] Fix bug where int enums generated non-compiling code. Swift3 integration tests now pass.
* [Swift3] Add a non-camel-case path parameter to petstore-with-fake-endpoints-models-for-testing. This would have caused the Swift3 tests to be broken before 7387e49fef56a624045aa52b65ffb9c19b3853ec.
* Support Swagger collectionFormat encodings in Feign
Feign only natively supports the "multi" collectionFormat for encoding lists
of parameter values. This change adds manual encoding of the other formats, such
as "csv" (the default for collections), "tsv", space-separated, and pipes.
* Fix typo in anchor tag.
* Migrate from Swashbuckle to Swashbuckle.AspNetCore
* Fix typo
* Add SwaggerResponse for all responses
* Remove model constructor
* Add required attribute if available
* Improve whitespace and remove some redundant code
* Remove redundant code from Dockerfile
* Add disable warning 1591 pragma for model utility methods for bringing down compiler warnings to zero
* Add proper model state validation before controller is called
* Regenerate AspNetCore PetStore sample
* [#5172] Allow vendor json media types
* Revert unnecessary diffs
* Update petstore sample
* Didn't run mvn after some edits
* Rerun ' ./bin/java-petstore-all.sh' and './bin/security/java-petstore-okhttp-gson.sh'
* Added more realistic test cases for isJsonMime
* Updating samples after #5232.
* Fix tests after #5232.
* Fix Javascript client tests.
* JaxRS server: set serverPort only when not given from outside.
* Update JaxRS sample creator scripts to fix serverPort.
* Preliminary test fix for JaxRS server generators.
* Updating samples for JaxRS with Jersey1/2.
* Updating JaxRS samples again.
* JaxRS server: set serverPort only when not given from outside.
* Update JaxRS sample creator scripts to fix serverPort.
* Preliminary test fix for JaxRS server generators.
* Updating samples for JaxRS with Jersey1/2.
This change enables top level enumeratons to be written out as:
export type SortDirection = "Ascending" | "Descending";
vs.
export class SortDirection {
}
* Pretty-print swagger.json.
(This was done via `jq`. In a later commit we'll generate it pretty-printed.)
* Erlang Server: pretty-print generated swagger.json.
* Update samples for Erlang-server.
* Issue #3084: add hideGenerationTimestamp option to Go server generator.
* Issue #3084: use hideGenerationTimestamp in go server sample script.
* Update Go server samples.
* [JAXRS-CXF][#4776] Respect query params default values in generated interfaces
Before this change, the generated interface ignored default values of query
params. Now, it adds the proper @DefaultValue annotation.
See issue #4776 for example.
* [JAXRS-CXF] Update samples
* 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
* - Add "wrapCalls" and "useSwaggerUI" CLI Options and updated what handleException does to follow Play Framework lifecycle more closely
- Updated all mustache files accordingly
- Updated the sample
- Updates Play Framework version to the latest 2.5.13
In the convenience class defined for generating a Map of query parameters, the
parameter name was mistakenly being set to the Java variable name, not the
actual parameter name. These are often the same, but can be different in the
case of multi-word parameters, such as in the sample API's `enum_query_string`
vs `enumQueryString`.
* Update samples for java/jersey2-java6.
* Let the sample generation script set the right name for jersey2-java6.
This is the equivalent change to #5095, for jersey2-java6.
* Update samples for Java/Jersey2-java6.
* Sync with upstream/master
* Support Markdown in -l html
Add https://github.com/atlassian/commonmark-java to modules/swagger-codegen to convert Markdown to HTML,
update StaticHtmlGenerator to use this (see the toHeml() method and its uses)
Add a new test case bin/html-markdown.sh and
modules/swagger-codegen/src/test/resources/2_0/markdown.yaml
* Support Markdown in -l html
Add https://github.com/atlassian/commonmark-java to modules/swagger-codegen to convert Markdown to HTML,
update StaticHtmlGenerator to use this (see the toHeml() method and its uses)
Add a new test case bin/html-markdown.sh and
modules/swagger-codegen/src/test/resources/2_0/markdown.yaml
* use builder pattern for operations
* @QueryMap parameter only for query parameters
The previous iteration had replaced all parameters (body, path, query, etc)
within a single @QueryMap. But Feign only supports this style of parameter
passing for query parameters. Besides, for the case of a body parameter (like
soxhlet uses) it only added extra verbosity. With this change, the query
parameters are gathered together in a single @QueryMap and the other parameters
are left alone.
* Adding template for generating test code
* Make javadoc consistent with rest of file's conventions/indents
* Update samples
The files in src/main were generated by running
$ bin/java-petstore-feign.sh
The files in src/test were manually fixed.
* Correct capitalization of @QueryMap class in feign
Adds a field operationIdCamelCase (a la operationIdLowerCase) to the
CodegenOperation container and uses it in the feign-generated classes
with @QueryMap parameters. Also re-generated the feign samples.
* Adding hyphen to javadocs for extra readability.
* Adding (not replacing) api method with @QueryParam overload.
In order to keep backwards compatibility, switched to adding a new method to
the interface instead of replacing the old call.
* Adding newline to generated source for readability.
* 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.
* Add an CLI option to generate interface. These interfaces are implemented by the controllerImp and help to generate the code with an IDE like IntelliJ because on updates of the code the controllerImp must follow the contract of the interface. If it don't, IDE will provide support to generate missing functions or parameters. I also did some cleanup of options we don't use in Play Framework.
* 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
* Small fixes
* Remove everything related to swagger-play. No need for annotation anymore because we export the swagger.json directly and show the documentation using swagger-ui with the direct path. Also added the sample.
* Remove/Rename paramsX mustache because there is no more documentation. Remove unused file. updated sample
* Fix the problem with default values that was not set correctly.
* Small fix related to bad merging
* Add handleException CLI options
* Fix default values once and for all!
* Update sample files + fix bug
* Fix bug with body that is required and have a list as a parameter + add bean import for interface to prevent compilation error
* added supporting files for Dockerfile and dockerignore generation for python-flask lang
* documenting how to build the docker image and how to spin up a container
* updating pet store sample
* fix#2159 dataformatter error for iOS Swift
When trying to parse 24-hour time to 12-hour time, date formatter throws fatal error.
It's caused by lack of settings locale for date formatter.
* update sample code
* #4627 - When looking for template files also look in the libraries subfolder of the supplied templateFolder, before checking the embedded locations.
* Reworked the order in which template files are searched for:
- 1st the code will check if there's a <template folder>/libraries/<library> folder containing the file
- 2nd it will check for the file in the specified <template folder> folder
- 3rd it will check if there's an <embedded template>/libraries/<library> folder containing the file
- 4th and last it will assume the file is in <embedded template> folder.
Added unit test to test template dir overloading.
* [CsharpNetStandard] Added C# .NET Standard Client Generation
Added language CsharpNetStandard.
Everything copied from csharp Client Generator.
Dependancies switched from Restsharp to Restsharp.Portable.
Changes made where nececary to replicate Restsharp functionallity.
Project type changed to .NET Standard protable library.
* [CsharpNetStandard] Removed client prop validation due to incompability
* [CsharpNetStandard] Minor fixes
Changed leftover RestSharp.Method to Method
Changed to .Net Standard 1.3 for compability reasons
Changed excludeTests to default to true due to tests not being implemented yet
Removed unnecessary targetFramework property
Removed leftover UWP stuff
* [CsharpNetStandard] More fixes
Added correct dependencies to Readme
Added correct supported frameworks to Readme
Added slightly better placeholder for installation instructions in Readme
Removed leftover dependencies from project.json
Removed leftover SupportsAsync stuff
Removed references to build.bat/-.sh since they're not yet being generated
Todo implement test generation
* [CsharpNetStandard] Added forgoten git_push.sh
* [C#-netstandard] Renamed option to csharp-netstandard
Also added .bat file for test generation
* [C# Net Standard] fixed path in .bat file
* [C# NET Standard] fixes to enum generation
Fixed issues with enum generation due to tired programmer
* [C# NET Standard] Generated sample client library
Sample library generated
Fixes:
Class actually works again
.bat - minor inconsistency fixed
* [C# NET Standard] Error corrected in how timeout is set
Configuration Timeout property changed to TimeSpan type and code corrected around that
* [C#] Merged .NET Standard generator into csharp generator
Functionallity of csharp-netstarndard generator has been moved into standard csharp generator under the targetFramework option as "v5.0"
This was previously missing and I don't think it was intentional.
It appears that swagger-codegen is already correctly processing
the yaml and the placeholder in the template was the only thing
missing.
* Swift3 enum: number variable names fix
Swift3 generator: added 'number' prefix to enum variable names that start with a number
* Fixed Swift3 enum variable names starting with number (prefixed with '_') and added test cases
* Swift3 enum var names: made sure to keep the next word after a number in lower case
* Update samples for nodejs + nodejs-google-cloud-functions.
* Fix example generator to use deterministic randomness.
This avoids changing results after each generation, and makes diff reviews easier.
* Update NodeJS samples.
This is the last "randomness" update. From now on the samples should only change if either the generator, the input or parameters change.
* Fix (partially) #4898 for groovy.
This also adds some TODOs for the missing path, form and body parameters.
* Update Groovy samples (after partial fix for #4898)
* Run mvn in batch-mode to be less verbose on download
* Build and upload Swagger Codegen CLI Docker image on release
* Ensure we only push master and tags to Docker Hub
* [Swift3] fix format warnings
* [Swift3] null enumerations should not cause failure
success or failure on numm enumerations should be decided by users
* update petstore
* handle type mismatch and null respectively
* 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
Render "default" instead of 0 for response code when Swagger uses "default" (#4982)
Add title for models to TOC and each model's section
Render model description only conditionally.
Remove extraneous Up link
Regenerate samples/html/index.html
* Make java spring controller constructor public.
This lets users manually create the controller and inject the delegate in the
spring configuration file, instead of letting spring scan for controllers and
autowire the delegate.
* Ran spring-all-pestore.sh.
This adds a `saveCookies` boolean flag to ApiClient. If set to true,
the client will save and return cookies to the server.
This is useful for supporting @SessionScoped beans in Java servers.
Works both in Node.js desktop apps, and in the browser.
* Triple quote python strings in defaults
When the model contains a string with a default value with new lines in
it, simply quoting generates invalid python code. Using triple quotes
for all string defaults makes sure the generated code will be a valid
python string.
Fixes#4862
* Wrap default string in triple quotes when it contains new lines
* Add newly generated python sample files
* Port the optional/enum template logic from async-scala to the regular scala client
* oops, accidently pulled template from akka-scala which has custom logic for enum
Just going to avoid enum for now, considering I'm not sure what scala client
will be official
* Update tests to use option
according to the help message setting dateLibrary to 'legacy' should
make the code generator use java.util.Date.
before this change, when setting dateLibrary to 'legacy' made the
generator use javax.xml.datatype.XMLGregorianCalendar.
now, the generator uses java.util.Date such that the documentation and
behavior are consistent.
* Update samples for Scalatra after 2.2.2.
* [scalatra] Revert changes to build.sbt
Changes were made in conjunction with the new finch generator. This
reverts those changes to Scalatra's previous build.sbt.
* Update scalatra samples again after revert of part of #3905.
* Improved ExampleGenerator:
- Now takes into account enum and uri/url formats for strings.
- Uses example for referenced objects if available.
- Proper examples get generated for specific numeric formats, because more specific formats now get checked before generic format.
- Honors min and max values for numerical properties, if set.
* Ran script `bin/nodejs-petstore-server.sh`.
* Renamed log to logger to conform to coding standard.
Superagent doesn't encode form parameters properly. For example it doesn't encode objects which contain array. The following is a failed test case:
var my_opts = {
'storyId': 65441,
'id': [56, 352]
};
* Update spring samples with current code.
This is done so I can see my own changes better.
* Regenerate samples after 2.2.2.
* use baseName instead of paramName for spring annotations.
* update spring petstore samples to show the effects.
While creating a static library from the generated files, compilation issues arose due to QDateTime only being forward declared. Adding the include resolves the issue.
* Issue 4637 Fix for ci build (#4643)
* [Python] update python requirement.txt and use single quote for safe characters (#4702)
* update python requirement
* update petstore sample
* Implemented fix for missing json to property mapping in typescript-node
The previous version did not parse the JSON-Response at all, so that
properties, which where renamed (e. g.due to modelPropertyNaming config
option), were not correctly parsed.
E. g.: modelPropertyNaming=camelCase & property 'mounted_at' in json,
would be renamed to mountedAt in the model.
This was not parsed at all in the typescript-node client api, so that
the actual model still had the mounted_at property, but not mountedAt.
See #2766 for additional details
* Updated samples for typescript-node
* Reverted initial changes to api.mustache
* Draft for object serializer for typescript-node
* Fixed missing variable error in ObjectSerializer in typescript-node
* Fix for body return type
* Fixed attributeTypeMaps when polymorphism is used
* Added ObjectSerializer support for polymorphism
* Code formatting in typescript-node api.mustache
* Fixed primitive type bug & added tests for ts-node
- primitives were serialized as strings instead of their respective type
- added test case for pet
* Code Formatting in ts-node client test
See samples/client/petstore/typescript-node/npm/client.ts
* Replaced tabs with 4 spaces and improved code formatting
* Recreated security test for typescript-node
* Read sample.png with fs.readFileSync instead of a stream
* Merge branch 'www2k-feature/file-response'
* Merge pull request #4421 from wing328/fix_isfile_boolean
Fix `isPrimitiveType` for file property
* roll back to latest working version of swagger paresr for codegen
* enable typescript-angular2 to upload file
* update typescript-angular2 samples
* [Swift 3] Return an error when dealing with invalid responses, instead of crashing.
Compatiblity: ErrorResponse.Error becomes ErrorResponse.HttpError
* Cleanup and work around existing swift3 generator bug/missing feature
* Generate PetStore samples for swift3
* [Swift3] Make ErrorResponse a struct for cleaner useage. Specify Errors that are always ErrorResponse as ErrorResponse type to avoid casting.
* [Swift3] Regenerate Petstore after ErrorResponse changes.
* Add VSCode to the list of ignores.
* Move optional parameters into a map[string]interface{}
Refactor tests to new API and add concurrency test.
* Add optional check to postBody.
The pet-store does not create this scenario.
* [feign] add threetenbp support for feign clients
* [okhttp] add threetenbp support for okhttp clients
* [jersey] add threetenbp support for jersey clients
* [retrofit2] add threetenbp support for retrofit2 clients
* [spring] add threetenbp support for spring generators
* add a workaround in tests for a bug in the petstore
The petstore doesn't manage fractional digits of dates correctly when there are less than 3
* add configuration to typescript fetch
* fix issues reported by the CI
* fix header parameters in ts fetch client
* add new configuration file for ts fetch
* skip if check for configuration in ts fetch
* Fix `this.configuration` issue in paramsCreator
* update ts fetch samples
* Fix typescript fetch tests to work with Configuration
* Add dictionary to store apikeys (#8)
* Add dictionary to store apikeys
* Type apikey with expected params rather than Dictionary - typescript-fetch
* Update test samples to new typescript-fetch api
* Fix tests for typesript-fetch api
* update typescript sample using petstore.yaml
* Update JavaJaxRS/resteasy/api.mustache to have swagger annotations
The annotations should now appear on generated resteasy API classes.
* Re-generate resteasy petstore sample
* Add swagger-annotations to rest-easy samples as a dependency
* Regenerat pom.xml and build.gradle files for resteasy
There are several issues with the security policy:
* The security policy is created with `AFSSLPinningModeNone` which means that even if pinned certificates are set (if config.sslCaCert is not nil), they will be ignored. Pinning will not work at all with this security policy.
* The configuration wrapper for the security policy is a bad idea.
* `verifySSL` controls both invalid certificates and domain validation. A vanilla `AFSecurityPolicy` clearly exposes both `allowInvalidCertificates` and `validatesDomainName`.
* `sslCaCert` only allows for a single pinned certificate. A vanilla `AFSecurityPolicy` clearly exposes a set of pinned certificates and makes it very convenient to load them with either `+[AFSecurityPolicy policyWithPinningMode:]` or `+[AFSecurityPolicy certificatesInBundle:]`
Since the security policy does not work at all and adds confusion, it is better to just remove it and let the user configure a security policy that fits their needs.
this allows to remove a lot of code in the ApiClient.
Tests for the ApiClient thus have been move to JSONTest.
Also allow to configure the date formatter of all date types individually.
An assertion in testCreateAndGetPetAsync() is removed because it's useless and makes the test fail randomly.
See #3727
Updated Tizen Client Codegen to remove calls to obsolete/deprecated system APIs.
The new templates are based on json-glib and libcurl.
The produced code also contains scripts for auto-generation of the documentation of the produced client library using Doxygen.
Included test cases for Petstore in /samples/client/petstore/tizen/PetStoreTest/
Signed-off-by: akhilkedia94 <akhil.kedia@samsung.com>
* change api and ApiClient to return cancellable NSURLSessionTasks instead of NSNumber
* define a configuration protocol for custom configurations, which can be passed to api clients instead of a global configuration, provide a default implementation with a singleton option
* integrate a workaround for a current JSONModel concurrency bug
* update to new ISO8601 pod
* add missing call to super
* integrate new templates into codegen
* updates documentation templates
* updates petstore objc generated code
* fixes objc client tests
@@ -14,17 +14,17 @@ Also please indicate in the issue title which language/library is concerned. Eg:
##### Swagger 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
```yaml
(here your code)
```
(for YAML code) or
```json
(here your code)
```
(for JSON code), so it becomes more readable. If it is longer than about ten lines,
please create a Gist (https://gist.github.com) or upload it somewhere else and
link it here.
If you post the code inline, please wrap it with
```yaml
(here your code)
```
(for YAML code) or
```json
(hereyourcode)
```
(for JSON code), so it becomes more readable. If it is longer than about ten lines,
please create a Gist (https://gist.github.com) or upload it somewhere else and
link it here.
-->
##### Command line used for generation
@@ -35,12 +35,12 @@ Also please indicate in the issue title which language/library is concerned. Eg:
<!-- unambiguous set of steps to reproduce the bug.-->
##### Related issues
##### Related issues/PRs
<!-- has a similar issue been reported 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/swagger-api/swagger-codegen/issues?utf8=%E2%9C%93&q=is%3Aissue%20 -->
##### Suggest a Fix
##### Suggest a fix/enhancement
<!-- if you can't fix the bug yourself, perhaps you can point to what might be
causing the problem (line of code or commit) -->
causing the problem (line of code or commit), or simply make a suggestion -->
- [ ] Read the [contribution guildelines](https://github.com/swagger-api/swagger-codegen/blob/master/CONTRIBUTING.md).
- [ ] Ran the shell/batch 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)
- [ ] Filed the PR against the correct branch: master for non-breaking changes and `2.3.0` branch for breaking (non-backward compatible) changes.
- [ ] Read the [contribution guidelines](https://github.com/swagger-api/swagger-codegen/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.
# comment out the host table change to use the public petstore server
addons:
hosts:
- petstore.swagger.io
@@ -19,6 +37,8 @@ before_install:
# required when sudo: required for the Ruby petstore tests
- gem install bundler
- npm install -g typescript
- npm install -g npm
- npm config set registry http://registry.npmjs.org/
- sudo pip install virtualenv
# to run petstore server locally via docker
- docker pull swaggerapi/petstore
@@ -29,27 +49,47 @@ before_install:
- sudo apt-get update -qq
- sudo apt-get install -qq bats
- sudo apt-get install -qq curl
# comment out below as installation failed in travis
# Add rebar3 build tool and recent Erlang/OTP for Erlang petstore server tests.
# - Travis CI does not support rebar3 [yet](https://github.com/travis-ci/travis-ci/issues/6506#issuecomment-275189490).
# - Rely on `kerl` for [pre-compiled versions available](https://docs.travis-ci.com/user/languages/erlang#Choosing-OTP-releases-to-test-against). Rely on installation path chosen by [`travis-erlang-builder`](https://github.com/travis-ci/travis-erlang-builder/blob/e6d016b1a91ca7ecac5a5a46395bde917ea13d36/bin/compile#L18).
- if [ $DOCKER_HUB_USERNAME ]; then docker login --email=$DOCKER_HUB_EMAIL --username=$DOCKER_HUB_USERNAME --password=$DOCKER_HUB_PASSWORD && docker build -t $DOCKER_IMAGE_NAME ./modules/swagger-generator && if [ ! -z "$TRAVIS_TAG" ]; then docker tag $DOCKER_IMAGE_NAME:latest $DOCKER_IMAGE_NAME:$TRAVIS_TAG; fi && docker push $DOCKER_IMAGE_NAME; fi
- mvn -q --batch-mode verify -Psamples
# Below has been moved to CircleCI
# docker: build generator image and push to Docker Hub
#- if [ $DOCKER_HUB_USERNAME ]; then docker login --email=$DOCKER_HUB_EMAIL --username=$DOCKER_HUB_USERNAME --password=$DOCKER_HUB_PASSWORD && docker build -t $DOCKER_GENERATOR_IMAGE_NAME ./modules/swagger-generator && if [ ! -z "$TRAVIS_TAG" ]; then docker tag $DOCKER_GENERATOR_IMAGE_NAME:latest $DOCKER_GENERATOR_IMAGE_NAME:$TRAVIS_TAG; fi && if [ ! -z "$TRAVIS_TAG" ] || [ "$TRAVIS_BRANCH" = "master" ]; then docker push $DOCKER_GENERATOR_IMAGE_NAME; fi; fi
## docker: build cli image and push to Docker Hub
#- if [ $DOCKER_HUB_USERNAME ]; then docker login --email=$DOCKER_HUB_EMAIL --username=$DOCKER_HUB_USERNAME --password=$DOCKER_HUB_PASSWORD && docker build -t $DOCKER_CODEGEN_CLI_IMAGE_NAME ./modules/swagger-codegen-cli && if [ ! -z "$TRAVIS_TAG" ]; then docker tag $DOCKER_CODEGEN_CLI_IMAGE_NAME:latest $DOCKER_CODEGEN_CLI_IMAGE_NAME:$TRAVIS_TAG; fi && if [ ! -z "$TRAVIS_TAG" ] || [ "$TRAVIS_BRANCH" = "master" ]; then docker push $DOCKER_CODEGEN_CLI_IMAGE_NAME; fi; fi
after_success:
# push a snapshot version to maven repo
- if [ $SONATYPE_USERNAME ] && [ -z $TRAVIS_TAG ] && [ "$TRAVIS_BRANCH" = "master" ]; then
mvn clean deploy --settings .travis/settings.xml;
echo "Finished mvn clean deploy for $TRAVIS_BRANCH";
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)
@@ -29,23 +35,31 @@ For a list of variables available in the template, please refer to this [page](h
### Style guide
Code change should conform to the programming style guide of the respective languages:
@@ -78,3 +92,4 @@ To start the CI tests, you can run `mvn verify -Psamples` (assuming you've all t
- 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)
- 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.