rybalkinsd / kohttp

Kotlin DSL http client
https://kohttp.gitbook.io
Apache License 2.0
478 stars 42 forks source link

kohttp multi module #128

Closed rybalkinsd closed 5 years ago

rybalkinsd commented 5 years ago

Here is a current runtimeClasspath

+--- com.squareup.okhttp3:okhttp:3.14.2
|    \--- com.squareup.okio:okio:1.17.2
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.40
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.40
|    |    +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.40
|    |    \--- org.jetbrains:annotations:13.0
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.40
|         \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.40 (*)
+--- org.jetbrains.kotlin:kotlin-reflect:1.3.40
|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.40 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.2.1
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.30 -> 1.3.40 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.30 -> 1.3.40
+--- com.fasterxml.jackson.core:jackson-databind:2.9.9
|    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.0
|    \--- com.fasterxml.jackson.core:jackson-core:2.9.9
+--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.9
|    +--- org.yaml:snakeyaml:1.23
|    \--- com.fasterxml.jackson.core:jackson-core:2.9.9
\--- com.fasterxml.jackson.module:jackson-module-kotlin:2.9.9
     +--- com.fasterxml.jackson.core:jackson-databind:2.9.9 (*)
     +--- com.fasterxml.jackson.core:jackson-annotations:2.9.0
     \--- org.jetbrains.kotlin:kotlin-reflect:1.3.10 -> 1.3.40 (*)

It would be nice to optimize our dependencies for actual use-cases.

  1. Move serialization fo/from json to a separate artifact. Provide at least asJson ext function for ResponseBody

    • kohttp-jackson (must have)
    • kohttp-moshi (optional)
  2. Move configuration to the spring boot starter, implementing #115

    • configuration using yaml is now mostly used with SB.

As a result, the core module runtimeClasspath should be:

+--- com.squareup.okhttp3:okhttp:3.14.2
|    \--- com.squareup.okio:okio:1.17.2
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.40
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.40
|    |    +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.40
|    |    \--- org.jetbrains:annotations:13.0
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.40
|         \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.40 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.2.1
     +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.30 -> 1.3.40 (*)
     \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.30 -> 1.3.40