* fix runtime deserialisation
* add security support for dart dio
* regenerate dart dio sample
* update dio pubspec.mustache deps
* check response type before parsing
* add default dateTime serializer
* regenerate sample
* Propagate deprecated property through $ref's
As $ref is supposed to completely replace the definition of a property,
make sure we also include the 'deprecated' property when generating the
type of a $ref property.
This makes a property $ref'ing a deprecated schema also become deprecated.
* Clarify why we're messing around with $ref
* Fix return type in model setters.
Previously return type was same, as method arguments. It`s wrong, and cause errors like
"Return value of Foo::setSuccess() must be of the type bool, object returned"
We cant use self and current {{classname}} as return type, because that can break class inheritance. So, better remove type hint on setters, until PHP-devs dont make realization for return static
* Add return self type hint for setters
* Revert "Add return self type hint for setters"
This reverts commit 07dd9715
* better anytype support
* add tests for any type
* fix test with any_value
* fix tests
* fix case additionalProperties: {}
* test with CI
* remove check in map schema
* Revert "remove check in map schema"
This reverts commit e016c4155f1bd8753e894d87bad8e70eee29f3d5.
* fix tests, comment out map schema fix
* fix tests
* fix tests with correct codegen model
* fix tests
* fix tests for map of any type
* fix array of any type
* fix array of any type
* update samples, remove log
* add typemapping to go, python
* Fix problem with clients, that put charset in content type header.
With this fix header "Content-Type: application/json; charset=utf-8" working same as "Content-Type: application/json" for parse input data
* Fix code style, add $consumes length check.
* Add isContentTypeAllowed static method and tests
* Fix old tests
Right now serializer doesn't support anything beside json and xml.
Call tests with application/json instead of form data.
Co-authored-by: Yuriy Belenko <yura-bely@mail.ru>
* Fixed valuetype parameters and discriminator deserialization
- Made non-required valuetypes nullable, and flagged required valuetypes as "x-csharp-value-type"
- Made sure to camelCase discriminator property names in Subtype converter
* Ran pet store sample script
* Ensure that readWriteVars and readOnlyVars are also marked as isEnum and isPrimitiveType where appropriate
* Updated petstore sample with enum fix
* Fields that are required should emit default values (otherwise the consuming API might throw a fit
* Added missing sample updated
* Re-ran petstore example script to grab all changes
* Rebased and re-ran example update script
* update csharp samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
Add a lambda that formats the documentation correctly even if it
contains newlines. The generated docs with typedoc looks a lot better
and also renders Markdown correctly.
Also remove the "no description" fallback for APIs because we don't have
it anywhere else, other generators don't generate a default fallback and
I'd rather have no documentation than a "no description" string.
There are cases where minimizing quotes results in invalid YAML. For
example, an input YAML with string "1234_1234" will be converted to YAML
value 1234_1234 which is an int in YAML 1.1
(https://yaml.org/type/int.html)
THe only option in these cases is to either:
* Revert the option completely to always quote values
* Provide a user-customization to disable quotes minimization
This applies the latter with the assumption that this is an edge case
and users who are unaffected will default to the "prettier" version.
An alternative would be to write a custom serializer for strings, and if
they are in the format of of any of the valid formats defined in YAML:
[-+]?0b[0-1_]+ # (base 2)
|[-+]?0[0-7_]+ # (base 8)
|[-+]?(0|[1-9][0-9_]*) # (base 10)
|[-+]?0x[0-9a-fA-F_]+ # (base 16)
|[-+]?[1-9][0-9_]*(:[0-5]?[0-9])+ # (base 60)
Then wrap the result in quotes. That approach was not taken because of
the potential for significant performance impact on very large specs,
which our users are often tasked with transforming.
deepObject query parameters need to be specially marshalled.
Unfortunately, they're quite tricky to distinguish in mustache because
there's no boolean property for deepObject, so add a vendorExtension
property to ease the mustache template.
* Try decoding but don't bail on error
* Switch binary and ByteArray to bytes
* Read content type and parse appropriately
* Remove response parsing
* Remove response parsing and just return the data
* Update petshop examples w/ new generator code
* Fix copy/paste error with naming
* Update petstore examples
* Move response decoding to inside _preload_content block
* Update the clients again
* Use a raw string for the regex pattern
* Regenerate petstore clients
* Add bytes to python primitives as it's supported in 2.7 and 3
* Add bytes to the exports from model_utils
* Import bytes from model_utils
* Add conditional typing for regex pattern to match variable type
* Regenerate petstore clients
* Use read() instead of text() for asyncio
* Regenerate petstore clients
* Remove unused six import
* Regenerate petstore clients
* Add newline to kick Circle to re-run
* Remove whitespace from tox.ini
* Update more examples after ensure_updated
* Add sample updates that didn't run with the --batch flag
* Remove extra bracket in regex to remove warning
* Stop printing debug messages
* Add bytes examples to python doc generators
* Update generated FakeApi docs
* Regenerate api_client.py
* Remove print statements from generated clients
* Update bytes example in FakeApi.md. Again. I swear.
* Add yet another seemingly missing doc update
* Catch the error, decode the body, and re-throw
* Remove the updates now that the change is non-breaking
* Regenerate client
* Add bytes deserialization test
* Update exception parsing
* Add exception parsing for python-experimental
* Regenerate client with minor changes
* Revert test changes
* Regenerate model_utils.py
* Update confusing test name
* Remove bytes from mapping and examples
* Add back in the old binary/ByteArray to str mapping
* Update docs and api_client template
* Add experimental api_client changes
* Regenerate samples again
* Add Tornado handling to early return
* Try fixing Tornado python returns
* More documentation changes
* Re-generate the client code
* Remove bytes from test_format_test
* Remove more leftover bytes usages
* Switch bytes validation back to string
* Fix format_test template and regenerate
* Remove unused bytes var
* Remove bytes import from models and regenerate
* Remove bytes import from test_deserialization
* Reduce nested ifs
* Remove byte logic for now
* Regenerate client after latest changes
* Remove another bytes usage
* Regenerate after removing dangling byte string usage
* Reduce the scope of the try/catch in api_client
* Regenerate after try/catch cleanup
* Swap catch for except
* Regenerate Python client after api_client change
* Fix lint error on the generated api_client
* Add binary format test back in w/ string
* Add decoding to python-experimental and regenerate
* Import re into python-experimental api_client
* Ensure file upload json response is utf-8 encoded bytes
* Adds addComposedMappedModels and testComposedSchemaOneOfDiscriminatorMap
* Requires that discriminators be required properties
* Strengthens discriminaotr validation, adds better error messages, adds schema oneof samples
* Adds oneOf and anyOf invalidDiscriminator tests
* Updates incorrect addOneOfInterfaceModel invocation
* Runs ensure-up-to-date
* Adds updates from Sebastien Rosset
* Removes newlines
* Uses df.isString
* Fixes tests be correctly setting df.isString
* Updates discriminatorExplicitMappingVerbose description per PR feedback
* Adds description of how mappedModels is populated
* Adds the suggestion exception raising when a MappedModel mappingName is null
* Actually resolves merge conflicts
* Switches two methods to package private because they are needed for testing
* Allow nulls in MappedModel.getMappingName
* Updates CLI flag name to legacyDiscriminatorBehavior, default=true
Co-authored-by: William Cheng <wing328hk@gmail.com>
* Add __setattr__ function to ensure signing_info.host is the same as configuration.host when the user assigns signing info
* Add __setattr__ function to ensure signing_info.host is the same as configuration.host when the user assigns signing info
* add support for any type, i.e. when 'type' attribute is not specified in OAS schema
* fix typos, add code comments
* Handle case when 'type' attribute is not present in the OAS schema
* fix python formatting rule
* fix python formatting rule
* remove 'object' as a type
* add jersey2 experimental
* add new files
* add abstract one of class
* read the stream multiple times
* rename to getActualInstance
* update petstore
* fix jackon check
* test new java petstore in ci
* fix broken tests
* remove todo
* better exception message, primitive type handling
* add anyof support
* update samples
* add new files
* update all java client samples
* update doc, fix pom
* better null check for allOf
* add primitive types support in oneof, anyof
* better validation
* update python exp samples
* remove primitive type support in allOf
* [Rust Server] Fix RustServerCodegen type: object example "Disabled because there's no example" issue.
* [Rust Server] Add test case yaml with "Disabled because there's no example" issue.
* [Rust Server] Fix example-client-main param.example character escaping issue with raw string.
* [Rust Server] Add test case yaml new generated code after fix.
* [Rust Server] Fix issue with multiple tags on an operation generating duplicate methods.
* [Rust Server] Add test case yaml with multiple tags on a single operation.
Some APIs have a model called "Index" which would create a file
"Index.ts" which would override "index.ts" on case-insensitive file
systems (e.g. macOS, some Windows versions). Make "Index" a reserved
word to prevent this clash.
* Fix Gradle and SBT builds for Java REST Assured generator
* Add missing jackson-databind-nullable dependency to SBT build
* Update rest-assured sample
* Add sample for Java client with REST Assured and Jackson
* Add new REST Assured sample as Maven sub-module