390 Commits

Author SHA1 Message Date
alisters
0de482da2b
Kotlin client: add volley library support (#10253)
* Add basic jvm-volley folder to enable it as a library

* Add JVM_VOLLEY to the KotlinClientCodegen as a library option (using Retrofit2 processing for now)

* Temporary checkin of generated code and kotlinfied version for use in new template

* Added Kotlin-ified api invoker and request objects, update Kotlin client codgen for volley

* Add Android specific build.gradle mustache file to jvm-volley library

* Hardcode SDK version and build tools version in build.gradle template, add extra repository for Android Gradle build tools

* Add Android manifest to generated code

* Add Kotlin dependencies and plugins to build gradle template

* WIP: Create basic API templating for jvm-volley

* Add ApiException and parameter validation, create path variable using ApiInvoker

* Build queryParams and headerParams

* Add VolleyRequest template

* WIP: Injecting context and default API invoker into APIs (non compiling)

* Add DefaultInvoker stub and update API to inject context

* Add request queue generation to the DefaultInvoker

* Fix up compile errors in the invoker

* Cleanup unrequired templates

* Update templates

* Add constructor overloads to inject stack or network into request queue

* Fix compile errors with request queue generation

* Fix compile errors

* Al'll fix it for you.....

* WIP compile fixes

* More compile fixes

* Generate to java directory and kotlin-ify auth code

* More syntax fixes in templates

* Almost left it in a working state, fixing that .... now...

* Switch builder method based on model existence constraints - body and response

* Add coroutine logic to APIs and pass through listeners to the requests, various other fixes.

* Use reflection and type tokens to work around clazz issues on generics

* Add POST, PATCH and PUT to RequestFactory

* More templating magic

* Fix Steve, the human compiler's errors again !

* Add CLI option for generating room models

* Configure the room model package

* Add initial room model templating and generation

* Add room model generation implementation

* Implement toRoom function on models to convert model to room model

* Bug fixes, transformers to and from room models

* Add query parameters to URL generation

* Fix issues with gson type conversion, add type adapters to gson instance

* Fix issues with older API versions and Java8 libraries,

* Add request factory interface

* API template tidy up

* Update IRequestFactory to include companion object, minor tidy ups

* Remove @Keep annotations from room templates

* Rename toRoomModel and toApiModel functions

* Add empty companion object to generated room model

* Add ITransformStorage interface to allow polymorphic transforms to room models

* Add content type into GsonRequest

* Move gson serialization of request body into GsonRequest

* Update request factory to take header factories

* Remove the generated comparision code

* Move the generateRoomModels switch into the KotlinClientCodegen class

* Move room model generation out of default generator

* Updates for auth

* Finalise removal of kotlin elements from default generator

* Hoist room model logic out of abstractKotlin into kotlin client codegen

* Revert AbstractKotlinCodegen

* Revert Codegen constants to remove base generator changes out of our new library

* Revert data class template changes, add data class body check to Kotlin Client codegen

* Add sample generation yaml file for jvm-volley library

* Update JVM-Volley readme for generateRoomModels flag

* Remove unused template files, get auth compiling but non functional, clean build of warnings

* Generate sample generated code

* Add not implemented method for oauth

* Add unit test for KotlinClientCodegen generateRoomModel flag

* Remove accidental hard coding of src/main/java source folder

* Push changed generated sample files

* Move and rename IStorable inside the volley library

* Inject retry policy into API definition, re-run sample and doc scripts

* Add generic post processors

* Update samples after generator changes

* Fix some compile errors with the pet store sample

* Fix duplicate auth companion object and import generation

* Reinstate query and form parameter code generation

* Add check for unsupported serialization libraries

* Fix broken unit tests

* Regenerate samples

* AN-233 Update request factory to allow custom gsonadapters

* update `GsonRequest.mustache` and `RequestFactoy.mustache` to use `Map<Type, Any>` instead of `Map<Type, Object>` to better fit kotlin conventions

* Update readme with better examples and design notes

* Update readme with info about gson serializers and adapters for polymorphic types

* Updated samples

* Merge from upstream

* Address review comments

* Update samples

* Samples

* Update docs

* Remove DateAdapter generated file, template and it's inclusion as a supporting file in favour of localDateTime

* Review comment cleanup for initial PR #10253 - cleaner auth key in parameter string handling

* Review comment - add a kotlin version parameter to the build scripts

* Updated samples

* Missing changes from build.mustache

* Regenerate samples for build.gradle changes

* Merge from master and generate samples

* Remove serializer as a supporting file from jvm-volley - it's serialisation is not a singleton and configured differently via gson request and dependency injection

* Remove singleton serializer from jvm-volley generation as it's not used

Co-authored-by: Alister Shipman <alister.shipman@greater.com.au>
Co-authored-by: Steve Telford <steven.telford@greater.com.au>
Co-authored-by: Leigh Cooper <leigh.cooper@greater.com.au>
Co-authored-by: Michael Hewett <y2trooper@gmail.com>
2021-12-20 14:59:11 +08:00
William Cheng
b72eba90cd
[java][okhttp-gson-nextgen] better oneOf implementation (#11146)
* add validJsonObject method

* add check for null

* fix list model generation

* fix optional fields validation

* add tests

* fix variable naming

* update tests

* add fromJson in oneOf, add tests

* convert JSON to static

* remove trailing space

* add fromString methods to all models

* add toJson, fix anyOf template

* remove workarounds

* undo changes to tests

* skip file schema test

* add new file
2021-12-18 23:22:55 +08:00
Josh Burton
6f6d4f8c02
[dart-dio-next] Removes dioLibrary option (#10931)
As there is no longer a fork of the dio library this option can be removed
2021-12-17 10:36:42 +08:00
Mostafa Moradian
fedc54af9a
[K6 Generator] various enhancements (request body example data extraction, support for generating scenario tests and load tests out of the box, and much more) (#11106)
* Further K6 OpenAPI generator enhancements

 * request body example data extraction
 * request grouping and ordering
 * response visibility
 * request data extraction for chaining requests

Signed-off-by: Michael H. Siemaszko <mhs@into.software>

* Further K6 OpenAPI generator enhancements

 - regenerated samples

Signed-off-by: Michael H. Siemaszko <mhs@into.software>

* Fix suggested changes by linter

* Fix extra spaces in the template

* Log exception

* Rename function signature to camelCase

* Address comments on Big-O

* Move declaration of variable near the usage

* Add config file for generating k6 script

* Regenerate k6 script

* Regenerate samples

* Fix predicate

* Fix missing import

Co-authored-by: Michael H. Siemaszko <mhs@into.software>
2021-12-17 10:18:10 +08:00
Bruno Coelho
eb224db540
[kotlin][client] remove old Date usage (#11082)
* [kotlin][client] remove old Date usage

* [kotlin][client] remove old Date usage
2021-12-14 16:03:12 +08:00
William Cheng
e00efe7c8d Merge remote-tracking branch 'origin/5.4.x' into 6.0.x 2021-12-07 00:12:13 +08:00
William Cheng
95377f68bf
[C#][functions] minor improvements. (#11034)
* better code format

* mark generator as beta

* update readme

* minor code format change

* remove docs

* add Docs

* remove docs

* add back docs

* mv yaml
2021-12-06 23:18:48 +08:00
Jarrod Parkes
15f45711a8
add swift5 option for generating frozen enums (#11013)
* add swift5 option for generating frozen enums

* use case unknownDefault to avoid conflicts

* update comments to reflect unknownDefault case

* set default values for unknown case to avoid conflict

* dont need vendor extensions to detect enum raw data type

* move CaseIterableDefaultsLast into models mustache template

* comment catch all case and add support for other types

* add frozen enums to ci pipeline

* remove extraneous edit to extensions template

* remove left over protocols files

* small comment and case adjustments
2021-12-04 13:05:51 +08:00
cghislai
b915ad99a8
typescript-angular: Add supports for v13 (#10877) 2021-12-03 09:10:40 +01:00
William Cheng
b061bd2146
[Java][Okhttp] Add oneOf support (#10875)
* add custom gson deserializer

* add check for additional fields, required fields

* add tests for custom deserializer

* add custom adapter

* add custom adapter

* register type adapter factory

* comment out custom deserializer and use adapter instead

* add okhttp-gson-nextgen

* add new files

* restore okhttp-gson

* switch to adapter

* remove custom de/serializer

* add comment

* update tests

* test nextgen in ci

* update doc

* use full model name in JSON.java

* undo changes

* add oneof discriminator support

* fix anyOf

* remove mappings

* add more tests

* fix oneof deserialization, add more tests

* add error body and type to api exception class

* JSON to use instance variables/methods

* Revert "add error body and type to api exception class"

This reverts commit 07f34e2c450ad9f808b728173018b1e4d8fed458.
2021-11-30 15:33:42 +08:00
WILLIAM CHENG
eb75515715 Merge branch '5.4.x' into 6.0.x 2021-11-21 09:50:47 +08:00
malesh
b0b09b030f
Fix #10802 csharp client multifile compile error (#10803)
* [csharp] add multifile upload sample

* [csharp] fix #10802: compile error with multi-file upload
2021-11-11 13:33:35 +08:00
WILLIAM CHENG
4f2b5ee36d Merge remote-tracking branch 'origin/5.4.x' into 6.0.x 2021-11-01 00:54:44 +08:00
Sergii Baitala
bf77570934
[cpprestsdk] CMake build system improvements (#10660)
* cmake install support

* fix option overriding issue

* fix alignment
2021-10-29 09:58:29 +08:00
Maximilian Zellhofer
6bbafdfa30
Allow specification of configkey for microprofile clients (#10693) 2021-10-27 14:28:17 +08:00
WILLIAM CHENG
3594b3452d Merge remote-tracking branch 'origin/5.4.x' into 6.0.x 2021-10-25 13:31:12 +08:00
William Cheng
602cffbb13
[java][okhttp] Add CI tests for streaming (#10678)
* add ci tests for streaming

* use spaces instead of tabs

* update samples
2021-10-24 18:59:15 +08:00
William Cheng
730636ad31 Merge remote-tracking branch 'origin' into 6.0.x 2021-10-19 12:55:59 +08:00
Eric Durand-Tremblay
11bfc66782
Issue #10591 kotlin enum defaultValue (#10592)
* Issue #10591 kotlin enum defaultValue

* Updated sample

* Register sample

Co-authored-by: Eric Durand-Tremblay <etremblay@kronostechnologies.com>
2021-10-16 13:47:31 +08:00
Dennis Melzer
12d80bfbb5
Fix import for new spring boot version (#9144)
* Fix import for new spring boot version

#8561

* Add new versions

* Fix samples

* Remove unused dependencies

* Revert "Remove unused dependencies"

This reverts commit bdac08b80a64b74affec2cea71b524fcd87a4c1b.

* Add version

* Fix version

* Add hystrix note this depcreated

* Migrate to Junit5

* Trigger build

* Add junit5

* Upgrade to new hystrix starter

* Try to enable hystrix

* Remove hystrix and upgrade to boot 2.5.5

* Remove hystrix

* Revert yaml

* Remove hysterix

* Trigger build

* Update docu

* use 4-space instead of tabs

* remove HystrixCommand

* add back spring-cloud test with oas 3.0 spec

* update samples

Co-authored-by: William Cheng <wing328hk@gmail.com>
2021-10-13 15:29:14 +08:00
agilob
77b72bd0ee
Dart json_serializable: remove experimental generator (#10532) 2021-10-12 16:07:23 +08:00
agilob
c2186a0b0d
Flash: remove (#10535) 2021-10-09 15:51:45 +08:00
William Cheng
96c65fea61
[Java] add an option to customize gradle.properties (#10540)
* add an option to customize gradle properties

* add more info to gradle.properties
2021-10-08 11:20:50 +08:00
Josh Burton
f5e8f54b21
[dart-dio-next] Adds an option for using the dio_http package (#10497)
* [dart-dio] Adds an option for using the dio_http package

Relates to #10305

* [dart-dio-next] Generates new dio_http sample

* [dart-dio-next] renames dio_http sample, adds pom.xml

* [dart-dio-next] Removes executions not required
2021-10-05 14:03:48 +08:00
Heikki Haapala
755359c031
[typescript-axios] Fix model property naming (#10447)
* fix: typescript-axios property names

Disables MODEL_PROPERTY_NAMING for typescript-axios generator as this
was never supported (templates have no mapping between original property
names and formatted names). Wraps all properties in model interfaces
with '' to support most characters except ' for now. Also fixes missing
options typing that was any before.

* chore: add new sample, generate samples

* chore: update generator docs
2021-10-02 08:06:29 +02:00
Bruno Coelho
7c133be617
[swift5][client] add support for async await (#10442)
* [swift5][client] add support for async await

* [swift5][client] disable CI for the async await sample project temporarily
2021-09-23 10:53:57 +08:00
Jon Schoning
1247e77453
[haskell-http-client] add ability to choose additional characters in querystring which should not be encoded (e.g. "+" or ":") (fixes #3459) (#10424) 2021-09-19 02:02:22 -05:00
Bruno Coelho
27727acf52
[swift5][client] Fix issue 9953 (#10387)
* [swift5][client] Fix issue 9953

* [swift5][client] update docs
2021-09-14 11:39:32 +08:00
andrew-matteson
bc3ee32498
Angular 12 Support: Typescript upgrade + HttpContext (#10336)
* Basic Angular 12 support.

* Make samples

* Pass HTTP Context for Angular client

* Generate samples for Angular-v12

* Add all samples
2021-09-07 08:23:52 +02:00
William Cheng
7bdbfed467
Remove skipReadonlyPropertiesInInit option (#10269)
* remove skipReadonlyPropertiesInInit option

* fix removal

* more removal

* fix again
2021-08-28 22:43:53 +08:00
Aanisha Mishra
67fbb1081e
Skip setting readOnly properties with default values in model constructors (#10196)
* skipReadonlyPropertiesInInt flag to go SDK

* minor amendments

* update docs for go
2021-08-25 10:21:02 +08:00
William Cheng
3de5483aa0
[JAVA] Add apache httpclient library to java clients (#10218)
* Add apache java client option

* Add sample apache client config

* Switch serialization library, use time formatter

* Add pom template for apache dependencies

* Add initial implementation of ApiClient using apache

* Add apache api template

Plus switch to TypeReference to handle generic types

* Add support for sending json data

* Generate test stubs with @Ignore

* Add accept header

* Remove unnecessary builder assignments

* Set responseHeaders instance variable

* Switch to general serialize / deserialize functions

* Handle sending url encoded form data

* Split response processing into new method

* Allow requests without body

* Use general HttpResponse interface

If the method doesn't need to close it

* Use clients connection timeout

* Add constructor accepting custom client

* Handle multipart and direct file uploads

* Support file downloading

Based on the implementation in the jersey client

* Handle missing content disposition

* Raise error if body given for an unexpected method

* Use try with resources for response handling

* Remove unused url parameter encode method

* Handle content type parse exception

* Improve response content type handling

Would have had issues with content type headers containing a charset

* Make all set methods return client

* Add basic readme

* Send content type with files

* Set domain and path on cookies

Otherwise they will be excluded from the request

* Use consistent quoting in error messages

* Add generated apache sample

* Add generated docs changes

* update samples

* rename library, update samples, docs

* update readme

Co-authored-by: Harry White <hwhite@atlassian.com>
2021-08-22 11:17:31 +08:00
Kenzo Yotsuya
4e3a98cee4
New server generator for Haskell/Yesod (#10193)
* Add a new server generator for Haskell/Yesod

* Fix missing locale
2021-08-21 23:57:18 +08:00
William Cheng
67cba32d3a
update cpp-ue4 samples (#10194) 2021-08-19 12:24:54 +08:00
William Cheng
87554ecb2d
[java][micronaut] minor improvements (#10158)
* mark java micronaut generator as beta

* update doc
2021-08-16 12:04:42 +08:00
Andriy Dmytruk
09aa7bfd0a
Add support for Micronaut Client (#10063)
* Create initial version of openapi micronaut generator

* Update validation, authorization, query parameters and time format

* Move micronaut to its own generator

* Add micronaut documentation

* Refactor and add tests to JavaMicronautClientGenerator

* Refactor model mustache for micronaut client

* Refactor model enum and pojo mustache files for micronaut client

* Move micronaut client generation to micronaut 3.0.0-M5 version

* Generate samples for micronaut client

* Add hidden files of generated samples for micronaut client

* Add and configure micronaut tests as maven profile

* Add option to choose between junit and spock for micronaut client generator

* Add tests for micronaut 'build' and 'test' options; regenerate micronaut samples
2021-08-15 22:36:45 +08:00
Arthur Mogliev
2210c9f016
[PHP] New client generator php-dt (#10041)
* - new PHP client generator php-dt

* - samples regen after rebase

* - README update

* - fix missing options for php-dt-modern config

* - use another workaround to prevent special treatment of form media types in DefaultGenerator - GlobalSettings usage mangled behaviour of other generators
- fix of missing spaces in generated docs

* - samples update after rebase
2021-08-15 22:15:44 +08:00
NouemanKHAL
74e28a7709
[typescript] FIX: Generate documentation and examples #9413 (#9857)
* generate docs for typescript

* commit changed files

* Fix NullPointerException on ComposedSchema

* Fix merge issues
2021-08-07 23:27:13 +02:00
Ween Jiann
11d29eb22b
[go-server] Feat: add required assertions to models (#10068)
* Add RequiredError

* Add IsZeroValue helper

* Add AssertRequired method to all models

* Add AssertRequired call for body param

* Regenerate files

* Add DisallowUnknownFields

* Regenerate samples

* Use hasRequired in model to remove unnecessary code

* Revert disallowUnknownFields

* Use isAdditionalPropertiesTrue for disallowing unknown fields

* Updated samples

* Fix indent

* Add require checks for nested slices

* Add new tests

* Regenerate samples

* Regenerate samples after merging
2021-08-07 21:29:14 +08:00
Ween Jiann
bea17c9d68
[typescript] Fix: any type (8 liner PR) (#10080)
* [typescript] Fix: any type (1 liner PR)

* Add toAllOfName override

* Add tests

* Add line at EOF
2021-08-03 16:48:20 +08:00
Nathan Baulch
6686048b0e
Specify templateDir in all sample configs (#10062) 2021-07-31 18:45:35 +08:00
Oleh Kurpiak
aa4018d09b
[Java] fix nullable arrays when JsonNullable is used (#10012) 2021-07-27 13:57:07 +08:00
Richard Moorhead
ddd23ab197
fix java8 datetime jaxrs-resteasy (#10014) 2021-07-27 13:51:31 +08:00
William Cheng
38a2fac37e
migrate rust client samples to 3.0 spec (#9999) 2021-07-23 11:22:20 +08:00
Oleh Kurpiak
9e314d165b
[Java][Server] remove snapshot dependency (#9997) 2021-07-21 22:53:23 +08:00
William Cheng
e263e6acc0
[Java] update test samples (#9972)
* remove new java samples

* java feign, webclient use fake petstore for tests

* update samples
2021-07-19 11:08:44 +08:00
Jon Jensen
bd070308d9
[Java][*] Annotate deprecated operations and schemas (#9478)
Refs #3358

Ensure `deprecated` operations are annotated/documented as such on the
generated methods. Libraries updated:
  * [feign]
  * [google-api-client]
  * [microprofile]
  * [okhttp-gson]
  * [resttemplate]
  * [retrofit]
  * [retrofit/play*]
  * [webclient]
  * [vertx]

Ensure `deprecated` schemas are annotated/documented as such on the
generated classes/fields. Libraries updated:
  * [feign]
  * [google-api-client]
  * [jersey2]
  * [microprofile]
  * [native]
  * [okhttp-gson]
  * [rest-assured]
  * [resteasy]
  * [resttemplate]
  * [retrofit*]
  * [webclient]
  * [vertx]

Also fix two minor bugs to get the java sample tests working:

* Fix an invalid jackson-datatype-threetenbp version number in vertx/pom.mustache
* Fix a bad return type in webclient/api_test.mustache when uniqueItems=true

Since this commit updates petstore-with-fake-endpoints-models-for-testing.yaml,
several other samples were updated, but it's just new files to reflect the
deprecated schemas, so there should be no consequential differences.

Relevant bits of the spec:

* https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#user-content-operationdeprecated
* https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#user-content-schemadeprecated
2021-07-19 10:27:03 +08:00
Florian Kamella
c42e03e251
Support openApiNullable in jaxrs-cxf-client generator (#8863)
* Introduce jaxrs-cxf-client-jackson-nullable sample

Generated using: ./bin/generate-samples.sh bin/configs/other/openapi3/jaxrs-cxf-client-jackson-nullable.yaml

* Add support for openApiNullable to JavaCXFClientCodegen

Add import mapping for JsonNullable to AbstractJavaCodegen

* Deduplicate string "jackson" in generators extending AbstractJavaCodegen

* Adjust nullable fields

* Adjust standard getters for nullable fields

add @JsonIgnore to standard getters

* Adjust standard setters for nullable fields

* Adjust fluent setter for nullable fields

* Introduce distinct getter and setter for nullable fields

* Adjust add method for nullable lists

* Adjust put method for nullable maps

* Cleanup JavaJaxRS/cxf/pojo.mustache

* Further cleanup JavaJaxRS/cxf/pojo.mustache

* Adjust inner enum getters
2021-07-19 10:22:52 +08:00
Ghufran Zahidi
90233d6653
conditional serialization add only those property which user wants to… (#9807)
* conditional serialization add only those property which user wants to configure.

* fixed the samples

* fixed the sample String to string issue.

* fixed the sample String to string issue.

* updated the sample

* Added unit test for conditional serialization

* update samples

* remove trailing spaces, update samples

* remove files

* add back files

* build the project in the ci

Co-authored-by: William Cheng <wing328hk@gmail.com>
2021-06-29 20:28:47 +08:00
William Cheng
919945b65b
ensure haskell, erlang server samles up-to-date (#9851) 2021-06-26 18:53:07 +08:00