Skip to content

Commit

Permalink
Release 0.17.10
Browse files Browse the repository at this point in the history
  • Loading branch information
adamw committed Feb 11, 2021
1 parent 8e5aa1d commit d4a7b46
Show file tree
Hide file tree
Showing 18 changed files with 60 additions and 49 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ tapir documentation is available at [tapir.softwaremill.com](http://tapir.softwa
Add the following dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-core" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-core" % "0.17.10"
```

You'll need partial unification enabled in the compiler (alternatively, you'll need to manually provide type arguments in some cases):
Expand Down
2 changes: 1 addition & 1 deletion generated-doc/out/client/play.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Add the dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-play-client" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-play-client" % "0.17.10"
```

To make requests using an endpoint definition using the [play client](https://github.com/playframework/play-ws), import:
Expand Down
2 changes: 1 addition & 1 deletion generated-doc/out/client/sttp.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Add the dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-sttp-client" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-sttp-client" % "0.17.10"
```

To make requests using an endpoint definition using the [sttp client](https://github.com/softwaremill/sttp), import:
Expand Down
4 changes: 2 additions & 2 deletions generated-doc/out/docs/asyncapi.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
To use, add the following dependencies:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-asyncapi-docs" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-asyncapi-circe-yaml" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-asyncapi-docs" % "0.17.10"
"com.softwaremill.sttp.tapir" %% "tapir-asyncapi-circe-yaml" % "0.17.10"
```

Tapir contains a case class-based model of the asyncapi data structures in the `asyncapi/asyncapi-model` subproject (the
Expand Down
35 changes: 23 additions & 12 deletions generated-doc/out/docs/openapi.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@

# Generating OpenAPI documentation

To use, add the following dependencies:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-openapi-docs" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-openapi-circe-yaml" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-openapi-docs" % "0.17.10"
"com.softwaremill.sttp.tapir" %% "tapir-openapi-circe-yaml" % "0.17.10"
```

Tapir contains a case class-based model of the openapi data structures in the `openapi/openapi-model` subproject (the
Expand Down Expand Up @@ -46,14 +47,24 @@ Multiple endpoints can be converted to an `OpenAPI` instance by calling the meth
OpenAPIDocsInterpreter.toOpenAPI(List(addBook, booksListing, booksListingByGenre), "My Bookshop", "1.0")
```

The openapi case classes can then be serialised, either to JSON or YAML using [Circe](https://circe.github.io/circe/):
The openapi case classes can then be serialised to YAML using [Circe](https://circe.github.io/circe/):

```scala
import sttp.tapir.openapi.circe.yaml._

println(docs.toYaml)
```

Or to JSON:

```scala
import io.circe.Printer
import io.circe.syntax._
import sttp.tapir.openapi.circe._

println(Printer.spaces2.print(docs.asJson))
```

## Options

Options can be customised by providing an implicit instance of `OpenAPIDocsOptions`, when calling `.toOpenAPI`.
Expand All @@ -70,29 +81,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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-redoc-akka-http" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-akka-http" % "0.17.10"
"com.softwaremill.sttp.tapir" %% "tapir-redoc-akka-http" % "0.17.10"

// Finatra
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-finatra" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-finatra" % "0.17.10"

// HTTP4S
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-http4s" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-redoc-http4s" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-http4s" % "0.17.10"
"com.softwaremill.sttp.tapir" %% "tapir-redoc-http4s" % "0.17.10"

// Play
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-play" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-redoc-play" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-play" % "0.17.10"
"com.softwaremill.sttp.tapir" %% "tapir-redoc-play" % "0.17.10"

// Vert.x
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-vertx" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-vertx" % "0.17.10"
```

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.17.9" exclude("com.typesafe.akka", "akka-stream_2.12")
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-akka-http" % "0.17.10" exclude("com.typesafe.akka", "akka-stream_2.12")
```

Usage example for akka-http:
Expand Down
1 change: 1 addition & 0 deletions generated-doc/out/endpoint/customtypes.md
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,7 @@ field of a case class. One way the automatic derivation can be customised is usi
* `@encodedName` sets name for case class's field which is used in the encoded form (and also in documentation)
* `@description` sets description for the whole case class or its field
* `@default` sets default value for a case class field
* `@encodedExample` sets example value for a case class field which is used in the documentation in the encoded form
* `@format` sets the format for a case class field
* `@deprecated` marks a case class's field as deprecated

Expand Down
12 changes: 5 additions & 7 deletions generated-doc/out/endpoint/integrations.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-cats" % "0.17.10"
```

- `import sttp.tapir.integ.cats.codec._` - brings schema, validator and codec instances
Expand All @@ -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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-refined" % "0.17.10"
```

You'll need to extend the `sttp.tapir.codec.refined.TapirCodecRefined`
Expand All @@ -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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-enumeratum" % "0.17.10"
```

Then, `import sttp.tapir.codec.enumeratum`, or extends the `sttp.tapir.codec.enumeratum.TapirCodecEnumeratum` trait.
Expand All @@ -55,17 +55,15 @@ The example code below will generate [enums](https://swagger.io/docs/specificati

```scala
import sttp.tapir._
import sttp.tapir.codec.enumeratum._
import enumeratum._

trait EnumHelper { e: Enumeration =>
import io.circe._

implicit val enumDecoder: Decoder[e.Value] = Decoder.decodeEnumeration(e)
implicit val enumEncoder: Encoder[e.Value] = Encoder.encodeEnumeration(e)

implicit val schemaForEnum: Schema[e.Value] = Schema.string
implicit def validatorForEnum: Validator[e.Value] = Validator.`enum`(e.values.toList, v => Option(v))
// needs to be a def or lazy val so that the enumeration values are available!
implicit def schemaForEnum: Schema[e.Value] = Schema.string.validate(Validator.enum(e.values.toList, v => Option(v)))
}
object Color extends Enumeration with EnumHelper {
type Color = Value
Expand Down
14 changes: 7 additions & 7 deletions generated-doc/out/endpoint/json.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-json-circe" % "0.17.10"
```

Next, import the package (or extend the `TapirJsonCirce` trait, see [MyTapir](../mytapir.md)):
Expand Down Expand Up @@ -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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-json-upickle" % "0.17.10"
```

Next, import the package (or extend the `TapirJsonuPickle` trait, see [MyTapir](../mytapir.md) and add `TapirJsonuPickle` not `TapirCirceJson`):
Expand Down Expand Up @@ -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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-json-play" % "0.17.10"
```

Next, import the package (or extend the `TapirJsonPlay` trait, see [MyTapir](../mytapir.md) and add `TapirJsonPlay` not `TapirCirceJson`):
Expand All @@ -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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-json-spray" % "0.17.10"
```

Next, import the package (or extend the `TapirJsonSpray` trait, see [MyTapir](../mytapir.md) and add `TapirJsonSpray` not `TapirCirceJson`):
Expand All @@ -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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-json-tethys" % "0.17.10"
```

Next, import the package (or extend the `TapirJsonTethys` trait, see [MyTapir](../mytapir.md) and add `TapirJsonTethys` not `TapirCirceJson`):
Expand All @@ -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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-jsoniter-scala" % "0.17.10"
```

Next, import the package (or extend the `TapirJsonJsoniter` trait, see [MyTapir](../mytapir.md) and add `TapirJsonJsoniter` not `TapirCirceJson`):
Expand All @@ -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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-json4s" % "0.17.10"
```

And one of the implementations:
Expand Down
9 changes: 5 additions & 4 deletions generated-doc/out/endpoint/validation.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@ dedicated error output (the `E` in `Endpoint[I, E, O, S]`) to report errors.

## Single type validation

Validation rules are part of the [codec](codecs.md) for a given type. They can be specified when creating the codec
(using the `Codec.validate()` method):
Validation rules are part of the [`Schema`](codecs.md#schemas) for a given type, and can be added either directly
to the schema, or via the `Codec` or `EndpointInput`/`EndpointOutput`. For example, when defining a codec for a type,
we have the `.validate()` method:

```scala
import sttp.tapir._
Expand Down Expand Up @@ -35,9 +36,9 @@ Validation rules added using the built-in validators are translated to [OpenAPI]

## Validation rules and automatic codec derivation

Validator are parts of schemas, validators are looked up as part of the with implicit `Schema[T]` values.
As validators are parts of schemas, they are looked up as part of the with implicit `Schema[T]` values.

While they can be manually defined, Tapir provides tools to derive automatically schemas for custom types
While they can be manually defined, tapir provides tools to derive automatically schemas for custom types
(traits and case classes).

## Custom type validation
Expand Down
4 changes: 2 additions & 2 deletions generated-doc/out/endpoint/zio.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-zio-http4s-server" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-zio" % "0.17.10"
"com.softwaremill.sttp.tapir" %% "tapir-zio-http4s-server" % "0.17.10"
```

Next, instead of the usual `import sttp.tapir._`, you should import:
Expand Down
2 changes: 1 addition & 1 deletion generated-doc/out/generator/sbt-openapi-codegen.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
Add the sbt plugin to the `project/plugins.sbt`:

```scala
addSbtPlugin("com.softwaremill.sttp.tapir" % "sbt-openapi-codegen" % "0.17.9")
addSbtPlugin("com.softwaremill.sttp.tapir" % "sbt-openapi-codegen" % "0.17.10")
```

Enable the plugin for your project in the `build.sbt`:
Expand Down
2 changes: 1 addition & 1 deletion generated-doc/out/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
To use tapir, add the following dependency to your project:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-core" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-core" % "0.17.10"
```

This will import only the core classes needed to create endpoint descriptions. To generate a server or a client, you
Expand Down
4 changes: 2 additions & 2 deletions generated-doc/out/server/akkahttp.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-akka-http-server" % "0.17.10"
```

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.17.9" exclude("com.typesafe.akka", "akka-stream_2.12")
"com.softwaremill.sttp.tapir" %% "tapir-akka-http-server" % "0.17.10" exclude("com.typesafe.akka", "akka-stream_2.12")
```

Now import the object:
Expand Down
4 changes: 2 additions & 2 deletions generated-doc/out/server/finatra.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-finatra-server" % "0.17.10"
```

and import the object:
Expand All @@ -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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-finatra-server-cats" % "0.17.10"
```

and import the object:
Expand Down
2 changes: 1 addition & 1 deletion generated-doc/out/server/http4s.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-http4s-server" % "0.17.10"
```

and import the object:
Expand Down
2 changes: 1 addition & 1 deletion generated-doc/out/server/play.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-play-server" % "0.17.10"
```

and (if you don't already depend on Play)
Expand Down
6 changes: 3 additions & 3 deletions generated-doc/out/server/vertx.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-vertx-server" % "0.17.10"
```
to use this interpreter with `Future`.

Expand Down Expand Up @@ -83,7 +83,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.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-vertx-server" % "0.17.10"
"com.softwaremill.sttp.shared" %% "fs2" % "LatestVersion"
```
to use this interpreter with Cats Effect typeclasses.
Expand Down Expand Up @@ -164,7 +164,7 @@ val attach = route(streamedResponse) { key =>

Add the following dependency
```scala
"com.softwaremill.sttp.tapir" %% "tapir-vertx-server" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-vertx-server" % "0.17.10"
"com.softwaremill.sttp.shared" %% "zio" % "LatestVersion"
```
to use this interpreter with ZIO.
Expand Down
2 changes: 1 addition & 1 deletion generated-doc/out/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ details on how the stub works).
Add the dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-sttp-stub-server" % "0.17.9"
"com.softwaremill.sttp.tapir" %% "tapir-sttp-stub-server" % "0.17.10"
```

And the following imports:
Expand Down

0 comments on commit d4a7b46

Please sign in to comment.