* add test cases to cover different collection format
* add space params to retrofit 1.x
* add space params to retrofit 2.x
* rename url to localVarUrl
* fix exception in haskell servant
* Added handling of api keys in headers.
* Added handling of optional arguments in api functions.
* Optional header params.
* Fixed a bug in path param replacement.
* Relaxed deserializing of model records with @@deriving yojson { strict = false }. It allows receiving more fields in the JSon payload than declared in the OCaml record, fields not matching any record field are ignored.
* Reformatted api-impl.mustache.
* Generate shorter enum value names by allowing underscore character.
* Cleanup of optional params generation.
* Updated the OCaml samples with the latest version of the generator.
* Corrected a bug encountered when generating default value for optional enum fields.
* Added v3 version of the samples for the OCaml generator.
* Début d'un générateur pour OCaml.
* Ajout du script bash de generation pour OCaml.
* Implémentation de la partie model du générateur OCaml.
* Suppression du fichier Model.mustache.
* Légère modification dans le générateur OCaml.
* Début d'implémentation de la génération des opérations.
* Avancées dans l'implémenatation des opérations.
* Avancée dans la gestion des enums : reste à traiter le fait que Yojson sérialize les variants comme des tableaux JSON.
* Prise en compte du fait que Yojson représente les variants constants sous forme d'un tableau JSON contenant une unique string.
* Utilisation des variants polymorphe pour les enums car il se peut que plusieurs énumérations partagent des valeurs communes ce que ne permettent pas les variants ordinaires au sein d'un même module.
* Avancées dans le générateur de code OCaml : le code produit compile et prendre en compte les pathParams, les queryParams, les headersParams, les bodyParams et la réponse JSON. Manque le support du multipart, du form encoded et des mécanismes d'authentification.
* More tests.
* Correction de problèmes dans la génération mis en évidence par l'utilisation d'un fichier OAS plus gros et complexe que Petstore.
* Mapping du case Error de Ppx_deriving_yojson_runtime.ok_error vers l'exception Failure pour avoir des types plus simples et non dépendants de Pppx_deriving_yoson_runtime dans les APIs générées.
* Ajout de la génération des fichiers d'interfaces .mli pour les APIs.
* Ajout du support des parametres de type x-www-form-urlencoded.
* Le paramètres d'url de type number étaient mal gérés.
* Cleanup.
* Replace block comment start and end sequences in input text.
* Make apis calls without a return type return unit rather than Yojson.Safe.t.
* Make modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml generate properly.
* Added generated code for modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml.
* Better handling of enums and map container and better sanitizing of generated identifiers to support all the corner cases present in modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml.
* Correcting a violation : using toLowerCase without relying on the default Locale.
* Changed authoring in partial_header.mustache.
* Deleted commented code.
* Collect enum schemas in items properties of operation parameters in the case of ArraySchema parameters. This allows correct processing of modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml.
* Collect enums also in additional properties schemas of operation parameters in the case of MapSchema parameters (if this type of parameter can is allowed).
* Removed copy-pasted Copyright notice from SmartBear.
* update doc
* Use Locale.ROOT instead of Locale.ENGLISH for toLowerCase calls.
* Make GET operations with body generate compilable code.
* Updated ocaml-client generated samples using the latest version of the OCaml code generator.
* Added [@default None] for record fields with option types so that if those fields are missing at deserialization time, None is assumed.
* Added support of api keys in query params.
* Updated generated ocaml samples to reflect latest changes in templates.
* Added [@default] on enum record fields for which the enum type has only one accepted value so that those fields can be deserialized even if the value is absent of the json payload.
* Delete useless space character in template.
* Added proper handling of http response codes.
* Updated generated ocaml samples to reflect latest changes in templates.
* Set error_reporting(E_ALL) in phpunit.xml settings, so that undefined variables will always cause a test failure
* Update petstore sample for php-laravel
* [Go][Client] Ensure test errors don't crash
Previously we did not interrupt execution of a test case
when an error was returned from an API call. This was
causing the tests to crash as soon as we try to
dereference the response.
We now fail the tests as soon as the first API error
is received.
* [Go][Client] Use configured Scheme and Host in requests
Previously we were simply setting the Host header and
completely ignoring the configured scheme.
* Introduce GeneratorSettings + cleanup
GeneratorSettings is an immutable settings object, intended to limit the
manipulation of generator settings.
To move to GeneratorSettings, lots of modification was done to
CodegenConfigurator. The goal here is that CodegenConfigurator
would create the contextual information required to initiate a
generator run:
* GeneratorSettings
* Workflow related settings
* Configuring "system" GeneratorProperties (ThreadLocal properties)
* Deserializing from file to config object
* Input spec document (OpenAPI, intending to target others)
ClientOpts was generally unused, and the few places it was being used
have been updated to pass the properties to
codegen.additionalProperties.
* Add sanity to system properties
The -D argument for the generate command is an application argument
which is easily confused for Java System Properties. This isn't the
case, as setting values here doesn't update the configuration in
System.getProperties().
This adds a warning and deprecation to that option, as defining these
values as system properties will also continue to work as expected. This
makes the -D application argument redundant and confusing.
* Contextualize generator/workflow settings
This splits settings relevant to generator configuration (the what) and
workflow configuration (the how) in an attempt to make configuration
easier to conceptualize.
* Update Gradle task w/ CodegenConfigurator setters
* Remove -D usage in scripts
* Add -p option for additional properties
* Regnerate samples
`URI.encode` is obsolete. `CGI.escape`, `URI.encode_www_form` or
`URI.encode_www_form_component` are recommended instead.
https://ruby-doc.org/stdlib-2.6/libdoc/uri/rdoc/URI/Escape.html#method-i-escape
URI.encode has different behaviour to CGI.escape:
```ruby
URI.encode('hello/world?test%string')
=> "hello/world?test%25string"
CGI.escape('hello/world?test%string')
=> "hello%2Fworld%3Ftest%25string"
```
I recently raised pull request #3039
201cbdce29cc6cdbbbe9efcb1afb250a05bc2ffd
That pull request escapes path items at insertion.
Before either pull request, the path item 'hello?world' would go into
the URL as 'hello?world'. That behaviour was insecure as if an attacker
could control the path item value, they could change the URL the
application connected to.
After #3039 'hello?world' would go in as 'hello%253Fworld'. This was
safer than before, but it's still not correct.
If I'd realised at the time, I would have made it correct at the time.
What this pull request does is make it go in as 'hello%35world', which
is correct.
ApiClient::build_request_url was URI.encoding the whole path.
This wasn't protecting against all undesirable characters in the path
items, but was escaping % characters a 2nd time which was unhelpful.
I have additionally removed URI.encode from Configuration::base_url as I
can't see any benefit it could be bringing.
There is no justification for it in the commit where it was originally
added: 47c8597d36a9bc0983ba5c40e2489bb094f9f076
* kotlin spring : add reactivity via kotlin's coroutines
* add kotlin spring boot reactive samples
* bug : fix spring version and import for coroutines
* remove exception handler for reactive (webflux doesn't support it)
* add spring milestone repository to maven pom
* add reactive type for list in Api and ApiImpl methodes for mathching body responsive parameter
* fix baseType for ArraySchema
* regenerate samples
* updating documentation
* Ruby client: escape path parameters
Path parameters should be escaped when encoded into the path.
In the path '/pet/{petId}' let's pretend petId is a string instead of a
number.
If the user uses "Bobby" as the petId then they correctly get the path
'/pet/Bobby'.
But if they put 'Bobby/Tables' as the petId then they used to get the
path '/pet/Bobby/Tables' which will be interpreted by the server as a
different route.
Using CGI::Escape they now get '/pet/Bobby%2FTables' which is correct.
* Ruby client- regenerate further files
Thank you @autopp for noticing I needed to update
`samples/openapi3/client/petstore/ruby`.
Regenerated by running `bin/openapi3/ruby-client-petstore.sh`.
PR #3039
* Support for Bearer in Ruby Client
* Update README.mustache
* Update README.mustache
* Update api_doc.mustache
* Update api_doc.mustache
* Update api_doc.mustache
* samples
* Uncommited changes
* Formatting
* More Formatting
* Fomatting
* More formatting
* More formatting
* Even more formatting
* Even more formatting
* More formatting
* Even more formatting
* More formatting
* More formatting
* python: api_client: add the multipart files after sanitization
* simplify prepare_post_parameters
* fix case of both post params and files set
* update samples
* update samples
* Pass opts argument to api client in ruby-client
We want to change the option when debugging, changing timeout to specific api, etc...
So we want to merge and pass options to api client.
* fix ruby-client
* fix openapi ruby-client
* fix typo
* fix template