diff --git a/README.md b/README.md index a9ddf616bf..423c7d723e 100644 --- a/README.md +++ b/README.md @@ -91,7 +91,7 @@ tapir documentation is available at [tapir.softwaremill.com](http://tapir.softwa Add the following dependency: ```sbt -"com.softwaremill.sttp.tapir" %% "tapir-core" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-core" % "0.18.0-M4" ``` You'll need partial unification enabled in the compiler (alternatively, you'll need to manually provide type arguments in some cases): diff --git a/generated-doc/out/client/http4s.md b/generated-doc/out/client/http4s.md index 458bad5e11..aa377becf7 100644 --- a/generated-doc/out/client/http4s.md +++ b/generated-doc/out/client/http4s.md @@ -3,7 +3,7 @@ Add the dependency: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-http4s-client" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-http4s-client" % "0.18.0-M4" ``` To interpret an endpoint definition as an `org.http4s.Request[F]`, import: diff --git a/generated-doc/out/client/play.md b/generated-doc/out/client/play.md index cc7caa17f1..dc31f455b3 100644 --- a/generated-doc/out/client/play.md +++ b/generated-doc/out/client/play.md @@ -3,7 +3,7 @@ Add the dependency: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-play-client" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-play-client" % "0.18.0-M4" ``` To make requests using an endpoint definition using the [play client](https://github.com/playframework/play-ws), import: diff --git a/generated-doc/out/client/sttp.md b/generated-doc/out/client/sttp.md index 864722ebb8..50c29100ca 100644 --- a/generated-doc/out/client/sttp.md +++ b/generated-doc/out/client/sttp.md @@ -3,7 +3,7 @@ Add the dependency: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-sttp-client" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-sttp-client" % "0.18.0-M4" ``` To make requests using an endpoint definition using the [sttp client](https://github.com/softwaremill/sttp), import: @@ -57,7 +57,7 @@ In this case add the following dependencies (note the [`%%%`](https://www.scala- instead of the usual `%%`): ```scala -"com.softwaremill.sttp.tapir" %%% "tapir-sttp-client" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %%% "tapir-sttp-client" % "0.18.0-M4" "io.github.cquiroz" %%% "scala-java-time" % "2.2.0" // implementations of java.time classes for Scala.JS ``` diff --git a/generated-doc/out/docs/asyncapi.md b/generated-doc/out/docs/asyncapi.md index 22884bf69e..927962d6ae 100644 --- a/generated-doc/out/docs/asyncapi.md +++ b/generated-doc/out/docs/asyncapi.md @@ -3,8 +3,8 @@ To use, add the following dependencies: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-asyncapi-docs" % "0.18.0-M3" -"com.softwaremill.sttp.tapir" %% "tapir-asyncapi-circe-yaml" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-asyncapi-docs" % "0.18.0-M4" +"com.softwaremill.sttp.tapir" %% "tapir-asyncapi-circe-yaml" % "0.18.0-M4" ``` Tapir contains a case class-based model of the asyncapi data structures in the `asyncapi/asyncapi-model` subproject (the diff --git a/generated-doc/out/docs/openapi.md b/generated-doc/out/docs/openapi.md index 5f4926f91f..b06e3efba3 100644 --- a/generated-doc/out/docs/openapi.md +++ b/generated-doc/out/docs/openapi.md @@ -4,8 +4,8 @@ To use, add the following dependencies: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-openapi-docs" % "0.18.0-M3" -"com.softwaremill.sttp.tapir" %% "tapir-openapi-circe-yaml" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-openapi-docs" % "0.18.0-M4" +"com.softwaremill.sttp.tapir" %% "tapir-openapi-circe-yaml" % "0.18.0-M4" ``` Tapir contains a case class-based model of the openapi data structures in the `openapi/openapi-model` subproject (the @@ -28,7 +28,7 @@ Such a model can then be refined, by adding details which are not auto-generated class structure such as the `OpenAPI` one can be made easier by using a lens library, e.g. [Quicklens](https://github.com/adamw/quicklens). The documentation is generated in a large part basing on [schemas](endpoint/codecs.md#schemas). Schemas can be -[automatically derived and customised](endpoint/customtypes.md#schema-derivation). +[automatically derived and customised](endpoint/schemas.md). Quite often, you'll need to define the servers, through which the API can be reached. To do this, you can modify the returned `OpenAPI` case class either directly or by using a helper method: @@ -85,29 +85,29 @@ akka-http/http4s routes for exposing documentation using [Swagger UI](https://sw ```scala // Akka HTTP -"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-akka-http" % "0.18.0-M3" -"com.softwaremill.sttp.tapir" %% "tapir-redoc-akka-http" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-akka-http" % "0.18.0-M4" +"com.softwaremill.sttp.tapir" %% "tapir-redoc-akka-http" % "0.18.0-M4" // Finatra -"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-finatra" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-finatra" % "0.18.0-M4" // HTTP4S -"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-http4s" % "0.18.0-M3" -"com.softwaremill.sttp.tapir" %% "tapir-redoc-http4s" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-http4s" % "0.18.0-M4" +"com.softwaremill.sttp.tapir" %% "tapir-redoc-http4s" % "0.18.0-M4" // Play -"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-play" % "0.18.0-M3" -"com.softwaremill.sttp.tapir" %% "tapir-redoc-play" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-play" % "0.18.0-M4" +"com.softwaremill.sttp.tapir" %% "tapir-redoc-play" % "0.18.0-M4" // Vert.x -"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-vertx" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-vertx" % "0.18.0-M4" ``` Note: `tapir-swagger-ui-akka-http` transitively pulls some Akka modules in version 2.6. If you want to force your own Akka version (for example 2.5), use sbt exclusion. Mind the Scala version in artifact name: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-akka-http" % "0.18.0-M3" exclude("com.typesafe.akka", "akka-stream_2.12") +"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-akka-http" % "0.18.0-M4" exclude("com.typesafe.akka", "akka-stream_2.12") ``` Usage example for akka-http: diff --git a/generated-doc/out/endpoint/integrations.md b/generated-doc/out/endpoint/integrations.md index e9472c4f12..ad064f449c 100644 --- a/generated-doc/out/endpoint/integrations.md +++ b/generated-doc/out/endpoint/integrations.md @@ -6,7 +6,7 @@ The `tapir-cats` module contains additional instances for some [cats](https://ty datatypes as well as additional syntax: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-cats" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-cats" % "0.18.0-M4" ``` - `import sttp.tapir.integ.cats.codec._` - brings schema, validator and codec instances @@ -19,7 +19,7 @@ If you use [refined](https://github.com/fthomas/refined), the `tapir-refined` mo validators for `T Refined P` as long as a codec for `T` already exists: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-refined" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-refined" % "0.18.0-M4" ``` You'll need to extend the `sttp.tapir.codec.refined.TapirCodecRefined` @@ -40,7 +40,7 @@ The `tapir-enumeratum` module provides schemas, validators and codecs for [Enume enumerations. To use, add the following dependency: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-enumeratum" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-enumeratum" % "0.18.0-M4" ``` Then, `import sttp.tapir.codec.enumeratum`, or extends the `sttp.tapir.codec.enumeratum.TapirCodecEnumeratum` trait. @@ -78,7 +78,7 @@ If you use [scala-newtype](https://github.com/estatico/scala-newtype), the `tapi schemas for a types with a `@newtype` and `@newsubtype` annotations as long as a codec and schema for its underlying value already exists: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-newtype" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-newtype" % "0.18.0-M4" ``` Then, `import sttp.tapir.codec.newtype._`, or extend the `sttp.tapir.codec.enumeratum.TapirCodecNewType` trait to bring the implicit values into scope. @@ -90,7 +90,7 @@ For details refer to [derevo documentation](https://github.com/tofu-tf/derevo#in To use, add the following dependency: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-derevo" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-derevo" % "0.18.0-M4" ``` Then you can derive schema for your ADT along with other typeclasses besides ADT declaration itself: diff --git a/generated-doc/out/endpoint/json.md b/generated-doc/out/endpoint/json.md index 632c9f9ab1..1872aa2d94 100644 --- a/generated-doc/out/endpoint/json.md +++ b/generated-doc/out/endpoint/json.md @@ -19,7 +19,7 @@ the json codec that is in scope. To use Circe, add the following dependency to your project: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-json-circe" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-json-circe" % "0.18.0-M4" ``` Next, import the package (or extend the `TapirJsonCirce` trait, see [MyTapir](../mytapir.md)): @@ -93,7 +93,7 @@ Now the above JSON object will render as To use µPickle add the following dependency to your project: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-json-upickle" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-json-upickle" % "0.18.0-M4" ``` Next, import the package (or extend the `TapirJsonuPickle` trait, see [MyTapir](../mytapir.md) and add `TapirJsonuPickle` not `TapirCirceJson`): @@ -128,7 +128,7 @@ For more examples, including making a custom encoder/decoder, see [TapirJsonuPic To use Play JSON add the following dependency to your project: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-json-play" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-json-play" % "0.18.0-M4" ``` Next, import the package (or extend the `TapirJsonPlay` trait, see [MyTapir](../mytapir.md) and add `TapirJsonPlay` not `TapirCirceJson`): @@ -144,7 +144,7 @@ Play JSON requires `Reads` and `Writes` implicit values in scope for each type y To use Spray JSON add the following dependency to your project: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-json-spray" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-json-spray" % "0.18.0-M4" ``` Next, import the package (or extend the `TapirJsonSpray` trait, see [MyTapir](../mytapir.md) and add `TapirJsonSpray` not `TapirCirceJson`): @@ -160,7 +160,7 @@ Spray JSON requires a `JsonFormat` implicit value in scope for each type you wan To use Tethys JSON add the following dependency to your project: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-json-tethys" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-json-tethys" % "0.18.0-M4" ``` Next, import the package (or extend the `TapirJsonTethys` trait, see [MyTapir](../mytapir.md) and add `TapirJsonTethys` not `TapirCirceJson`): @@ -176,7 +176,7 @@ Tethys JSON requires `JsonReader` and `JsonWriter` implicit values in scope for To use [Jsoniter-scala](https://github.com/plokhotnyuk/jsoniter-scala) add the following dependency to your project: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-jsoniter-scala" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-jsoniter-scala" % "0.18.0-M4" ``` Next, import the package (or extend the `TapirJsonJsoniter` trait, see [MyTapir](../mytapir.md) and add `TapirJsonJsoniter` not `TapirCirceJson`): @@ -193,7 +193,7 @@ Jsoniter Scala requires `JsonValueCodec` implicit value in scope for each type y To use [json4s](https://github.com/json4s/json4s) add the following dependencies to your project: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-json4s" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-json4s" % "0.18.0-M4" ``` And one of the implementations: diff --git a/generated-doc/out/endpoint/zio.md b/generated-doc/out/endpoint/zio.md index a9a4d46dd3..98a21b2c36 100644 --- a/generated-doc/out/endpoint/zio.md +++ b/generated-doc/out/endpoint/zio.md @@ -7,8 +7,8 @@ exposing the endpoints using the [http4s](https://http4s.org) server. You'll need the following dependencies: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-zio" % "0.18.0-M3" -"com.softwaremill.sttp.tapir" %% "tapir-zio-http4s-server" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-zio" % "0.18.0-M4" +"com.softwaremill.sttp.tapir" %% "tapir-zio-http4s-server" % "0.18.0-M4" ``` Next, instead of the usual `import sttp.tapir._`, you should import: diff --git a/generated-doc/out/generator/sbt-openapi-codegen.md b/generated-doc/out/generator/sbt-openapi-codegen.md index ea66370ac0..af446189b4 100644 --- a/generated-doc/out/generator/sbt-openapi-codegen.md +++ b/generated-doc/out/generator/sbt-openapi-codegen.md @@ -11,7 +11,7 @@ Add the sbt plugin to the `project/plugins.sbt`: ```scala -addSbtPlugin("com.softwaremill.sttp.tapir" % "sbt-openapi-codegen" % "0.18.0-M3") +addSbtPlugin("com.softwaremill.sttp.tapir" % "sbt-openapi-codegen" % "0.18.0-M4") ``` Enable the plugin for your project in the `build.sbt`: diff --git a/generated-doc/out/quickstart.md b/generated-doc/out/quickstart.md index 0a5ba41c24..3eefdebddb 100644 --- a/generated-doc/out/quickstart.md +++ b/generated-doc/out/quickstart.md @@ -3,7 +3,7 @@ To use tapir, add the following dependency to your project: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-core" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-core" % "0.18.0-M4" ``` This will import only the core classes needed to create endpoint descriptions. To generate a server or a client, you diff --git a/generated-doc/out/server/akkahttp.md b/generated-doc/out/server/akkahttp.md index fd2dea4f89..80d8946c43 100644 --- a/generated-doc/out/server/akkahttp.md +++ b/generated-doc/out/server/akkahttp.md @@ -4,14 +4,14 @@ To expose an endpoint as an [akka-http](https://doc.akka.io/docs/akka-http/curre dependency: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-akka-http-server" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-akka-http-server" % "0.18.0-M4" ``` This will transitively pull some Akka modules in version 2.6. If you want to force your own Akka version (for example 2.5), use sbt exclusion. Mind the Scala version in artifact name: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-akka-http-server" % "0.18.0-M3" exclude("com.typesafe.akka", "akka-stream_2.12") +"com.softwaremill.sttp.tapir" %% "tapir-akka-http-server" % "0.18.0-M4" exclude("com.typesafe.akka", "akka-stream_2.12") ``` Now import the object: diff --git a/generated-doc/out/server/finatra.md b/generated-doc/out/server/finatra.md index e1648fbdde..e834766b65 100644 --- a/generated-doc/out/server/finatra.md +++ b/generated-doc/out/server/finatra.md @@ -4,7 +4,7 @@ To expose an endpoint as an [finatra](https://twitter.github.io/finatra/) server dependency: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-finatra-server" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-finatra-server" % "0.18.0-M4" ``` and import the object: @@ -16,7 +16,7 @@ import sttp.tapir.server.finatra.FinatraServerInterpreter or if you would like to use cats-effect project, you can add the following dependency: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-finatra-server-cats" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-finatra-server-cats" % "0.18.0-M4" ``` and import the object: diff --git a/generated-doc/out/server/http4s.md b/generated-doc/out/server/http4s.md index 890fe8cd69..fa1fe5dc37 100644 --- a/generated-doc/out/server/http4s.md +++ b/generated-doc/out/server/http4s.md @@ -4,7 +4,7 @@ To expose an endpoint as an [http4s](https://http4s.org) server, first add the f dependency: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-http4s-server" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-http4s-server" % "0.18.0-M4" ``` and import the object: diff --git a/generated-doc/out/server/play.md b/generated-doc/out/server/play.md index 9e879451b3..1e22d22ef7 100644 --- a/generated-doc/out/server/play.md +++ b/generated-doc/out/server/play.md @@ -3,7 +3,7 @@ To expose endpoint as a [play-server](https://www.playframework.com/) first add the following dependencies: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-play-server" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-play-server" % "0.18.0-M4" ``` and (if you don't already depend on Play) diff --git a/generated-doc/out/server/vertx.md b/generated-doc/out/server/vertx.md index ff1a7a5897..2c2c4f523d 100644 --- a/generated-doc/out/server/vertx.md +++ b/generated-doc/out/server/vertx.md @@ -8,7 +8,7 @@ Vert.x interpreter can be used with different effect systems (cats-effect, ZIO) Add the following dependency ```scala -"com.softwaremill.sttp.tapir" %% "tapir-vertx-server" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-vertx-server" % "0.18.0-M4" ``` to use this interpreter with `Future`. @@ -80,7 +80,7 @@ It's also possible to define an endpoint together with the server logic in a sin Add the following dependency ```scala -"com.softwaremill.sttp.tapir" %% "tapir-vertx-server" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-vertx-server" % "0.18.0-M4" "com.softwaremill.sttp.shared" %% "fs2" % "LatestVersion" ``` to use this interpreter with Cats Effect typeclasses. @@ -155,7 +155,7 @@ val attach = route(streamedResponse) { key => Add the following dependency ```scala -"com.softwaremill.sttp.tapir" %% "tapir-vertx-server" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-vertx-server" % "0.18.0-M4" "com.softwaremill.sttp.shared" %% "zio" % "LatestVersion" ``` to use this interpreter with ZIO. diff --git a/generated-doc/out/testing.md b/generated-doc/out/testing.md index 3fce552b34..c83dec5367 100644 --- a/generated-doc/out/testing.md +++ b/generated-doc/out/testing.md @@ -12,7 +12,7 @@ details on how the stub works). Add the dependency: ```scala -"com.softwaremill.sttp.tapir" %% "tapir-sttp-stub-server" % "0.18.0-M3" +"com.softwaremill.sttp.tapir" %% "tapir-sttp-stub-server" % "0.18.0-M4" ``` And the following imports: