This PR includes theses changes:
- Handling "optional" parameters is not optional anymore. Handling an additional parameter for it makes templates more complicated, and IMO, it is not worth it (as discussed in issue, it is an "acceptable" breaking change).
- Optional parameters are handled everywhere: path params, query params, form params... Generated sample code compiles (both hyper and reqwest libraries).
As we discovered in #3463, there are various bits of the rust client generator that are currently untested. This PR adds tests for various generator-specific types, and also files.
Follows the example of the rust-server generator for making it easy to add new test specs. This should make it easier for future contributors to make sure that their contributions are tested
* Fixes NPE when no outputDir is set
* Fix behaviors of default values for values not provided by user
* Easier handling of default behavior in settings.
* Fixes for dynamic config deserialization (specifically, ruby client sample fix)
* Tests for WorkflowSettings (defaults, modified defaults, nulls)
* Test modification of WorkflowSettings defaults for both class constructor and builder
I already contributed proper enum supports a few weeks ago, but somehow missed actually using them when they're used as a property. This PR fixes that.
I also took the liberty of fixing a bunch of unused warnings.
* Make sure we use the enum types in Rust
* Fix unused warnings in Rust and regenerate samples
* Use crate:: import path that works both with Rust 2015 and 2018
* Derive PartialEq and Eq in generated Rust structs and enums
* Better Rust client imports.
* No more "unused_imports" in models for serde_json::Value.
* No more compilation problem for apis requiring serde_json::Value.
* "crate::" prefix for models and apis imports, for compatibility with Rust 2018 edition.
* Rust samples regeneration using new code.
* Resolves#525 for Rust client generator with reqwest library.
* Use Reqwest "query" method to generate query URL.
* urlencode URL string parameters.
* Generate rust-reqwest client, and verify it compiles and work as intended.
* Map file params (to "&std::path::Path") and support multipart operations (with file params) in Reqwest library.
* Cleanup: template compression to remove unecessary blank lines in generated code.
* Revert "Disable rust-reqwest petstore test"
This reverts commit 9e1cce2e7b2fefa742c4992215c59998fb9fb311.
* Revert "Fix various CI issues (#1722)"
This reverts commit 77270a01183b3fb353113a709079213c87d00787.
* Revert "[Rust] Support formParams and fix list-params. (#1678)"
This reverts commit 4a494b45d306480d2bda671159ad02b35ebdf8d3.
* [Rust] Support formParams and fix list-params.
Form params were previously unsupported, and list-params would produce code that didn't compile.
* update rust samples
* Port of PR https://github.com/swagger-api/swagger-codegen/pull/8804.
* Correction of conflict with PR #528 (missing template file).
* Add rust-reqwest samples to Circle CI tests.
* Add integration test pom.xml file with launcher to trigger cargo execution.
* Deduplicate Maven project name.
* Fix "api_key" header for Petstore.
* Better API key management.
* Fix query param for lists of objects other than strings (numbers, etc.).
* Update to reqwest 0.9, and refactor of header management (using reqwest transition feature).
* Merge scripts generating rust-hyper and rust-reqwest samples.
* Consistent full stops.
* Use raw variables in all Rust mustache templates.
* Replace production build in CI with a quick simple check.
* Update samples.
* Finish Reqwest 0.9 migration (removing "hyper 0.11" transition feature).
* Configuration implements Default trait.
* API template reorganized: HashMap is not required anymore.
* Revert "Merge scripts generating rust-hyper and rust-reqwest samples."
This reverts commit 970f996566a740045f2a986fd70fc70f11952925.
* Remove deprecated "-XX:MaxPermSize" java arg.
* [Rust] Move request logic into standalone file
This reduces the number of variables which are used in the generated
operations, thus fixing #512.
This also fixed a TODO related to URI parsing errors.
Other than that, it is meant to be functionally identical.
* [Rust] Add support for non-file form params
Up until now, they just weren't there at all
* [Rust] Use more rustic terms in example
* update rust client with petstore oas2
* update rust with oas2 petstore, fix default value
* fix type mapping for file, update api_doc for rust client
* update rust client with oas3