5759 Commits

Author SHA1 Message Date
sunn
a1d21f6d3a
[C++] [Qt5]Add support for response compression and add response body to error s… (#5060)
* Add support for response compression and add response body to error string

* Improve robustness while parsing quality and compression levels
2020-01-21 12:11:43 +01:00
Sebastien Rosset
ff7203875f fix compilation error in generated go code (#5061) 2020-01-21 17:32:38 +08:00
Sai Giridhar P
ad009180dd fix(r): Adding repository url (#5056) 2020-01-21 10:47:05 +08:00
Mateusz Szychowski (Muttley)
6af27d52ca [C++][Pistache] Rename value holder to lower chance of collision with parameter name (#4948)
* [C++][Pistache] Rename value holder to lower chance of collision with parameter name

* [C++][Pistache] Update Petstore sample
2020-01-21 00:47:26 +01:00
Jim Schubert
2bc3c196e8
[aspnetcore] Fix duplicate enums (#5059)
* [aspnetcore] Fix duplicate generation of enums

Fixes template issue where enums defined within a class were generated
regardless of whether they were a complexType (externally defined
"model") or an inlined enum.
2020-01-20 16:37:15 -05:00
Liam Martens
7599531960 Fixed call of toISOString on a string type when using string type-mapping (#5057) 2020-01-20 16:59:16 +01:00
William Cheng
4ec3900d31 undo restoring ElmClientCodegenTest.java 2020-01-20 17:53:11 +08:00
William Cheng
82e2448bf2 Merge remote-tracking branch 'origin/4.3.x' into 5.0.x 2020-01-20 15:46:13 +08:00
William Cheng
04af5e0445 Merge remote-tracking branch 'origin/master' into 4.3.x 2020-01-20 15:04:34 +08:00
Đào Hoàng Sơn
3a8e598ca2 [dart-dio] Various fixes (#5027)
* [dart-dio+time_machine] Add missing import, serializer

* [dart-dio] Remove bad import from `http` package

* [dart-dio] Use raw strings for those that contain variable name.

This should eliminate potential issue with variables like `$ref`.

* [dart-dio] Use `_path` instead of `path` to avoid potential conflict with op params.

See 1bec0b47b1/Kubernetes.json, there are a few with `{path}` param.

* [dart-dio+time_machine] Use `OffsetXxx` classes for date time values
2020-01-20 11:56:24 +08:00
Sebastien Rosset
449026add7 Add java code comments based on explanation from Jim Schubert (#5048) 2020-01-19 21:18:15 -05:00
Jim Schubert
644f720db8
[docs] Sorted doc outputs and clean up duplicated CliOptions (#5046)
* [config-help] Sort all outputs

* Remove old/stale generator docs (these have been renamed previously)

* Sort config doc outputs, making it easier to find relevant info

* Fixes cliOptions duplicates

Erlang client/proper improperly set the version option as packageName
(causing duplicate for packageName).

The java and swift option removals are because the options are added in
parent classes, resulting in duplication of the options.

* Add --github-nested-index for generating docs/generators/README.md

* 📝 Regenerate generator docs
2020-01-19 20:19:11 -05:00
Sebastien Rosset
d61dcc17e0 [gradle] consistent use of maven url in gradle files (#5045)
* wrap maven url with uri function

* consistent use of maven url in gradle files
2020-01-19 14:57:38 -05:00
Jim Schubert
23131c1a63
Use HTTPS Maven URL in Kotlin meta generator (#5043)
This continues on work in #5033 and #5034 which convert all http usage
to https to unblock CircleCI builds.

In #5034, mavenCentral() DSL was updated to explicitly target the https
maven repo because Gradle didn't force TLS 1.2 until v4.8.1 and many of
our examples use earlier versions of Gradle.  The Kotlin meta generator
was missed because it is a .kts build file rather than build.gradle, and
the mustache filename doesn't have kts in it; the file was updated as if
it was build.gradle (groovy syntax).
2020-01-19 10:42:25 -05:00
William Cheng
fff759b79c
[Python] fix numeric enum in python flask, aiohttp (#5019)
* minor code format fix

* fix numeric enum in python flask and aiohttp

* add python-server-all.sh to ensure-up-to-date
2020-01-19 15:25:20 +08:00
William Cheng
6a34706a9b
add multipleOf to various codegen classes (#5021) 2020-01-19 13:39:26 +08:00
Jim Schubert
ea55968737
Evaluating https issues in CircleCI (on top of CiscoM31-maven-h… (#5034)
* replace http with https. Replace http://central.maven.org with https://repo1.maven.org

* replace http://www.apache.org/licenses/LICENSE-2.0 with https://www.apache.org/licenses/LICENSE-2.0

* Force HTTPS for mavenCentral gradle DSL

Co-authored-by: Sebastien Rosset <serosset@cisco.com>
2020-01-18 18:53:05 -05:00
William Cheng
d1948c4b41
better code format in java jersey doc (#5031) 2020-01-18 19:11:51 +08:00
Nicholas Muesch
2722c602ac Escape query params before invoking api (#5023)
* Escape query params before invoking api

* Update petstore file

* Update remaining petstore examples
2020-01-18 17:25:18 +08:00
Hippolyte HENRY
ee984c38a5 [Java][jersey2] Use builder pattern for requests (#4666)
* Use builder pattern for requests

* petstore

* Add @throws annotation

* regenerate jersey2 test files

* Also group bodyParam in builder class

* petstore java6

* regenerate java8

* ensure up to date
2020-01-18 16:12:20 +08:00
Yuriy Belenko
420039c9eb [Slim4] Add integer formats support to Data Mocker (#4965)
* [Slim4] Support int32 and int64 data formats

* [Slim4] Fix data format key in object mocking

* [Slim4] Refresh samples
2020-01-18 16:08:13 +08:00
William Cheng
3f074a280a
minor improve to rust server (#5020) 2020-01-17 18:54:31 +08:00
aandyl
67d23fcf7e [Rust Server] fix handling of special characters in path param names (#4897)
* test for hyphen in path parameter name

* fix handling of hyphens in path parameter names
2020-01-17 15:44:23 +08:00
Josh Burton
f48325ac45 [dart-dio] Fixes issues with DateTime import and form date paramaterToString function (#4929)
- due to the addition of the timemachine library, models were importing ‘DateTime’ when using the core library, which is not a valid import.

- the parameterToString function was copied from the dart2 generator and had some errors when some enums were classes.
2020-01-17 15:35:38 +08:00
William Cheng
ef31e8f86b fix permission of codegen classes 2020-01-16 21:46:12 +08:00
Sebastien Rosset
fa0ef2be25 [Python] Conditionally set auth attributes (#4988)
* Enhance python API keys

* Run python scripts under ./bin/openapi3

* fix unit test issue

* Fix unit tests

* Fix unit tests

* Invoke bin scripts
2020-01-16 17:42:23 +08:00
Liv Fischer
b94fe7a40f add multipleOf to CodegenProperty (#2192) (#5009) 2020-01-16 17:27:49 +08:00
Justin Black
fcdbcb095e Updates maven urls, fix #5011 (#5012)
* Updates maven urls

* Runs ensure up to date'
2020-01-16 17:24:20 +08:00
Hippolyte HENRY
e09f1c9b37 [go-experimental] Use builder pattern for requests (#4787)
* [go-experimental] Use builder pattern for requests
2020-01-15 09:19:23 -05:00
Sebastien Rosset
fe8775a5a5 fix php ordering issue for CodegenSecurity (#5001) 2020-01-15 07:39:04 +01:00
sullis
6a48dd7cd6 upgrade Jackson, swagger-core, and swagger-parser (#4915)
- swagger-parser 2.0.17
- swagger-core 2.1.1
- jackson 2.10.1
2020-01-14 22:40:01 +08:00
Justin Black
8a94a3a7d5 [Java] Fixes Spring generator devaultValues for int64/float/double (#4969)
* Updates spring generator to omit type suffixes from int float double defaults, adds testDefaultValuesFixed

Adds the test testDefaultValuesFixed

* Updates SpringCodegen to only remove character suffixes from CodegenParameter defaultValues, updates tests

* Updates java function comment

* Adds early return in postProcessParameter

* Removes unneeded imports

* Fixes decorators on java method postProcessParameter

* Fixes typo

* Fixes paste error

* Removes unused import
2020-01-14 22:38:16 +08:00
Hui Yu
4767259df4 [C-libcurl] Support setting basePath and apiKeys when creating an apiClient (#4960) 2020-01-14 21:36:12 +08:00
William Cheng
0344f14e9a
fix csharp-netcore doc (#4987) 2020-01-14 14:11:35 +08:00
Justin Black
bf24d646c5 [PHP] fix php-slim4-server CI tests #4994 (#4995)
* Suggested no-api fix

* Adds sample update
2020-01-14 08:29:18 +03:00
Sai Giridhar P
fb6daa89b0 [r] Ignore cran-comments file from the build (#4986)
* fix(cran-comments): Ignoring CRAN comments file from build

* fix(cran-comments): Ignoring CRAN comments file from build
2020-01-13 21:31:40 +08:00
valery1707
b22fde6caa Use UTF-8 charset on writing files (#4984) 2020-01-13 15:26:56 +08:00
Jim Schubert
b680d7cd7f
[kotlin] Fixing merge conflict and re-running CI for #4565 (#4977)
* [fix-kotlinArrayEnumEmbedded] fix embedded enum array
* Add new gen props to bin/ci/kotlin-client-string.json

Co-authored-by: nekkiy <hard-t@mail.ru>
2020-01-11 20:52:45 -05:00
Jim Schubert
78bf3adc4a
[core] Initial FeatureSet structures and definitions (#3614)
[core] Initial FeatureSet structures and definitions
Add default feature set to DefaultCodegen
Initial FeatureSet definitions for:

*  ada 
*  android 
*  apache2 
*  asciidoc 
*  aspnetcore 
*  avro 
*  bash 
*  c 
*  clojure 
*  cpp-pistache-server 
*  cpp-qt5-client 
*  cpp-qt5-qhttpengine-server 
*  cpp-restbed-server 
*  cpp-restsdk 
*  cpp-tizen 
*  csharp 
*  csharp-nancyfx 
*  csharp-netcore 
*  cwiki 
*  dart 
*  eiffel 
*  elixir 
*  elm 
*  erlang 
*  flash 
*  fsharp-functions 
*  go  Client/Server
*  graphql-nodejs-express-server 
*  graphql-schema 
*  groovy 
*  haskell 
*  haskell-http-client 
*  java 
*  jmeter 
*  kotlin 
*  kotlin vertx 
*  kotlin-server 
*  kotlin-spring 
*  lua 
*  mysql 
*  nim 
*  nodejs 
*  nodejs-express 
*  objc 
*  ocaml 
*  openapi 
*  openapi-yaml 
*  perl 
*  php 
*  php-laravel 
*  php-lumen 
*  php-silex 
*  php-slim 
*  php-symfony 
*  php-ze-ph 
*  powershell 
*  protobuf 
*  protobuf-schema 
*  python 
*  python-aiohttp 
*  python-blueplanet 
*  python-experimental 
*  r 
*  ror 
*  ruby 
*  ruby 
*  ruby-sinatra 
*  rust 
*  scala-akka 
*  scala-finch 
*  scala-gatling 
*  scala-http-client 
*  scala-lagom 
*  scala-play 
*  scalatra 
*  scalaz 
*  spring 
*  static docs 
*  swift 
*  typescript
2020-01-11 16:20:47 -05:00
Justin Black
cbc12543a9 [Python] Allow models to have properties of type self (#4888)
* Refactors openapi_types into a staticmethod

* Adds a Player model with a self type rpoperty, adds a test to ensure that it is working right
2020-01-10 17:43:35 +08:00
Erik Timmers
b62fc1c031 Elm refactoring (#4891)
* [elm] Remove support for Elm 0.18

* [elm] Drop `Main.elm`

* [elm] Put all models in a single file

* [elm] Put generated code in `Api` package

* [elm] Introduce Request type for operations

* [elm] Generate list of enum variants

* [elm] Make default Time module

* [elm] Small improvements & fixes

* [elm] Improve support for allOf

* All of types are now nested;
* Adding a discriminator creates a custom type wrapping all variants
  and a 'catch-all' fallback variant.

* [elm] Add support for recursive types

* [elm] Add catch-all type for allOf

* [elm] Drop support for post-processing of files

* [elm] Only import required packages

* [elm] Handle reserved and unsafe words

* [elm] Minor improvements

* [elm] Add support for integer enums

* [elm] Remove additional slash in path

* [elm] Add link to docs

* [elm] Update CI test file & scripts
2020-01-10 17:12:33 +08:00
Steve Porter
75508f5ce0 Add npmRepository option to javascript generators (#4956) 2020-01-10 17:02:50 +08:00
Yuriy Belenko
6dcdf5c311 [Slim4] Add ref support to Data Mocker (#4932)
* [Slim4] Add new method to Mocker interface

* [Slim4] Add implementation and tests for new method

* [Slim4] Add test fixture to encrease code coverage

* [Slim4] Add ref support to mockArray method

* [Slim4] Add mockFromRef method

* [Slim4] Add ref support to mockObject method

* [Slim4] Add ModelInterface

* [Slim4] Refresh samples

* [Slim4] Add ref support to mockFromSchema method

* [Slim4] Run all test suites by default test command

As it turnes out to generate coverage report for a whole project I need
to run all test suites at once.

* [Slim4] Fix enum option of string mocking
2020-01-10 16:27:43 +08:00
Jérémie Bresson
c27a6ed2bf [jaxrs-spec][quarkus] update to version 1.1.1.Final (#4935)
* [java][quarkus] update to version 1.1.0.Final

* [java][quarkus] update to version 1.1.1.Final
2020-01-08 21:30:36 +08:00
Ryan N Johnson
d51354783f Add RequestFile to typescript-node model template (#4903)
RequestFile is defined in the [api-all.mustache
template](ac4ead9e78/modules/openapi-generator/src/main/resources/typescript-node/api-all.mustache (L29)),
and it gets used [as a special
case](ac4ead9e78/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptNodeClientCodegen.java (L92))
[in the model.mustache
template](ac4ead9e78/modules/openapi-generator/src/main/resources/typescript-node/model.mustache (L21)).

When this special case is triggered and `RequestFile` is used in a model
file, Typescript complains that the type is not found.

```
TSError: Unable to compile TypeScript:
path/to/model.ts:15:16 - error TS2304: Cannot find name 'RequestFile'.

15      'myFile'?: RequestFile;
                   ~~~~~~~~~~~
```

This solution is to import `RequestFile` by adding it to the model
template.

Here is an openapi schema that would trigger this use-case:

```yaml
openapi: 3.0.0
components:
    schemas:
        IUploadMyFileBody:
            type: object
            properties:
                myFile:
                    type: string
                    format: binary
```
2020-01-06 10:09:56 +01:00
Jim Schubert
ec1e9a4c9b
[csharp] enum suffix changes enumValueNameSuffix to enumValueSuffix (#4927)
* [csharp] Change enum value suffix name

'enumValueNameSuffix' and 'enumNameSuffix' were introduced in a recent
commit. This changes 'enumValueNameSuffix' to 'enumValueSuffix' to
better differentiate between the two options. This also adds a caveat to
the default description which explains that this flexibility may cause
issues when used by client generator.

* [csharp][aspnetcore] Regenerate samples
2020-01-05 16:18:19 -05:00
scott dallamura
9b893ef3c1 [C#] allow customization of generated enum suffixes (#4301)
* [C#] allow customization of generated enum suffixes
2020-01-05 10:25:08 -05:00
Matt Traynham
38185d8558 [Kotlin] Correct isInherited flag for Kotlin generators (#4254)
* Correct isInherited flag for Kotlin generators

* Update Kotlin Client inheritance test to check variables
2020-01-05 10:10:03 -05:00
Richard Whitehouse
e9459125bb
[Rust Server] Hyper 0.12 Support (#4519)
[Rust Server] Hyper 0.12 Support

- Hyper upgraded to Hyper 0.12.
  - NewService becomes MakeService
  - Request on MakeContext is not parameterised - instead, ReqBody, and ResBody are parameterized, and must implement hyper::body::Payload.
  - This means that our existing tuples (i.e. (Body, Context)) don't work - instead we have a type ContextualPayload, which implements Payload, and derefs to an inner payload (the body), and contains a context.
  - This is handled by the work done in Metaswitch/swagger-rs#63 but has some fall out here as well.

- tokio-proto/tokio-core is no longer supported, and hyper instead depends on tokio.

- Hyper depends on mime 0.3, but multipart depends on mime 0.2, so we now import both

- Hyper TLS 0.2 and native-tls 0.1

- Use Swagger Support library 3.x

- Futures are now Send. This forces ApiImpl to be need to Send as a result, and all forces Clients to be Send + Sync.
2020-01-05 14:48:12 +00:00
Richard Whitehouse
79d11d7129
[Rust Server] Fix panic handling headers (#4877)
[Rust Server] Fix panic handling headers

If we have an API which has multiple auth types, we may panic. This is because
in Hyper 0.11, the following code will panic:

```
use hyper::header::{Authorization, Basic, Bearer, Headers};
fn main() {
    let mut headers = Headers::default();
    let basic = Basic { username: "richard".to_string(), password: None };
    headers.set::<Authorization<Basic>>(Authorization(basic));
    println!("Auth: {:?}", headers.get::<Authorization<Bearer>>());
}
```

as it mixes up an `Authorization<Basic>` and `Authorization<Bearer>` as both
have `Authorization:` as the header name.

This is fixed by using `swagger::SafeHeaders` added in
https://github.com/Metaswitch/swagger-rs/pull/90
2020-01-05 14:46:09 +00:00