Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[kotlin][client] add support for coroutines with OkHttp #6362

Merged
merged 3 commits into from
May 26, 2020

Conversation

4brunu
Copy link
Contributor

@4brunu 4brunu commented May 19, 2020

This PR adds support for coroutines with OkHttp http client.

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project before.
  • Run the shell script(s) under ./bin/ (or Windows batch scripts under.\bin\windows) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the code or mustache templates for a language ({LANG}) (e.g. php, ruby, python, etc).
  • File the PR against the correct branch: master, 4.3.x, 5.0.x. Default: master.
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

@jimschubert (2017/09) ❤️, @dr4ke616 (2018/08) @karismann (2019/03) @Zomzog (2019/04) @andrewemery (2019/10) @4brunu (2019/11) @yutaka0m (2020/03)

@wing328
Copy link
Member

wing328 commented May 23, 2020

I did some tests locally and found the following errors:

Starting a Gradle Daemon (subsequent builds will be faster)

> Task :compileKotlin
e: /Users/williamcheng/Code/openapi-generator/samples/openapi3/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/apis/FakeApi.kt: (504, 183): Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Array<String>?
e: /Users/williamcheng/Code/openapi-generator/samples/openapi3/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/apis/FakeApi.kt: (504, 209): Unresolved reference: collectionDelimiter
e: /Users/williamcheng/Code/openapi-generator/samples/openapi3/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt: (136, 21): Type inference failed: Cannot infer type parameter V in inline operator fun <K, V> MutableMap<K, V>.set(key: K, value: V): Unit
None of the following substitutions
receiver: MutableMap<String, List<String>>  arguments: (String,List<String>)
receiver: MutableMap<String, String>  arguments: (String,String)
can be applied to
receiver: MutableMap<String, List<String>>  arguments: (String,String)

e: /Users/williamcheng/Code/openapi-generator/samples/openapi3/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt: (138, 21): Type inference failed: Cannot infer type parameter V in inline operator fun <K, V> MutableMap<K, V>.set(key: K, value: V): Unit
None of the following substitutions
receiver: MutableMap<String, List<String>>  arguments: (String,List<String>)
receiver: MutableMap<String, String>  arguments: (String,String)
can be applied to
receiver: MutableMap<String, List<String>>  arguments: (String,String)

Does it work for you locally in your machine?

@4brunu
Copy link
Contributor Author

4brunu commented May 23, 2020

You are right, thanks for pointing this!
I submitted a commit and now it's working.
One thing that we could improve in the kotlin generator is to let the CI build the kotlin samples in each PR, like the Swift samples do at the moment.
What do you think on this?

@wing328
Copy link
Member

wing328 commented May 26, 2020

One thing that we could improve in the kotlin generator is to let the CI build the kotlin samples in each PR, like the Swift samples do at the moment.

I prefer to consolidate samples if possible.

Swift also has too many test spec that can be consolidated into 1 or 2. I'll PM later on this.

@4brunu
Copy link
Contributor Author

4brunu commented May 26, 2020

Ok 👍
Could we address those issues in different PRs, to unlock this one?

@wing328
Copy link
Member

wing328 commented May 26, 2020

Yes, let's do that in a separate PR.

Let me test this again and merge if no issue found.

@wing328 wing328 added this to the 5.0.0 milestone May 26, 2020
@wing328 wing328 merged commit fac233b into OpenAPITools:master May 26, 2020
@4brunu 4brunu deleted the feature/kotlin-okhttp-coroutines branch May 26, 2020 15:12
jimschubert added a commit to jimschubert/openapi-generator that referenced this pull request May 27, 2020
* master:
  [kotlin][client] add support for coroutines with OkHttp (OpenAPITools#6362)
  update package-json.lock (OpenAPITools#6430)
  fix hardcoded match type (OpenAPITools#6431)
  java jersey2 enhance anyOf (OpenAPITools#6420)
  [Java][jersey2] minor improvement to jersey2 tests (OpenAPITools#6418)
  ps minor style change (OpenAPITools#6424)
  [JS] mark ES5 as deprecated (OpenAPITools#6408)
  [ci] Execute maven and verify with no-snapshot-updates (OpenAPITools#6415)
  add new file in ts axios samples
  Migrate all scala generators to use OAS3 (OpenAPITools#6407)
  migrate ruby samples to oas3 (OpenAPITools#6414)
  [PS] check if JSON properties is defined (OpenAPITools#6419)
  Add C++ UE4  client generator (OpenAPITools#6399)
  Add a link to the article in dev.to (OpenAPITools#6421)
  typescript-axios anytype is not defined (OpenAPITools#6335)
  [Java][jersey2] Make (de)serialization work for oneOf models, add convenience and comparison methods (OpenAPITools#6323)
  Migrate OCaml petstore to use OAS v3 spec (OpenAPITools#6348)
  [Python-experimental] Fix type error if oneof/anyof child schema is null type (OpenAPITools#6387)
  [Python-server] Fix blueplanet 'file not found' error  (OpenAPITools#6411)
  [nodejs] Fix deprecation notice when running sample nodejs script (OpenAPITools#6412)
jimschubert added a commit that referenced this pull request May 27, 2020
* master:
  [kotlin][client] add support for coroutines with OkHttp (#6362)
  update package-json.lock (#6430)
  fix hardcoded match type (#6431)
  java jersey2 enhance anyOf (#6420)
  [Java][jersey2] minor improvement to jersey2 tests (#6418)
  ps minor style change (#6424)
  [JS] mark ES5 as deprecated (#6408)
  [ci] Execute maven and verify with no-snapshot-updates (#6415)
  add new file in ts axios samples
  Migrate all scala generators to use OAS3 (#6407)
  migrate ruby samples to oas3 (#6414)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants