Skip to content

Commit

Permalink
Release 1.0.6
Browse files Browse the repository at this point in the history
  • Loading branch information
adamw committed Aug 24, 2022
1 parent 2cd77f4 commit 809cb64
Show file tree
Hide file tree
Showing 27 changed files with 145 additions and 88 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ tapir documentation is available at [tapir.softwaremill.com](http://tapir.softwa
Add the following dependency:

```sbt
"com.softwaremill.sttp.tapir" %% "tapir-core" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-core" % "1.0.6"
```

Then, import:
Expand Down
4 changes: 2 additions & 2 deletions doc/docs/openapi.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ these steps can be done separately, giving you complete control over the process
To generate OpenAPI documentation and expose it using the Swagger UI in a single step, first add the dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-bundle" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-bundle" % "1.0.6"
```

Then, you can interpret a list of endpoints using `SwaggerInterpreter`. The result will be a list of file-serving
Expand Down Expand Up @@ -55,7 +55,7 @@ for details.
Similarly as above, you'll need the following dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-redoc-bundle" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-redoc-bundle" % "1.0.6"
```

And the server endpoints can be generated using the `sttp.tapir.redoc.bundle.RedocInterpreter` class.
Expand Down
2 changes: 1 addition & 1 deletion generated-doc/out/client/http4s.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-http4s-client" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-http4s-client" % "1.0.6"
```

To interpret an endpoint definition as an `org.http4s.Request[F]`, import:
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" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-play-client" % "1.0.6"
```

To make requests using an endpoint definition using the [play client](https://github.com/playframework/play-ws), import:
Expand Down
4 changes: 2 additions & 2 deletions 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" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-sttp-client" % "1.0.6"
```

To make requests using an endpoint definition using the [sttp client](https://github.com/softwaremill/sttp), import:
Expand Down Expand Up @@ -102,7 +102,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" % "1.0.5"
"com.softwaremill.sttp.tapir" %%% "tapir-sttp-client" % "1.0.6"
"io.github.cquiroz" %%% "scala-java-time" % "2.2.0" // implementations of java.time classes for Scala.JS
```

Expand Down
2 changes: 1 addition & 1 deletion generated-doc/out/docs/asyncapi.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
To use, add the following dependencies:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-asyncapi-docs" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-asyncapi-docs" % "1.0.6"
"com.softwaremill.sttp.apispec" %% "asyncapi-circe-yaml" % "..." // see https://github.com/softwaremill/sttp-apispec
```

Expand Down
10 changes: 5 additions & 5 deletions generated-doc/out/docs/openapi.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ these steps can be done separately, giving you complete control over the process
To generate OpenAPI documentation and expose it using the Swagger UI in a single step, first add the dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-bundle" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-bundle" % "1.0.6"
```

Then, you can interpret a list of endpoints using `SwaggerInterpreter`. The result will be a list of file-serving
Expand Down Expand Up @@ -55,7 +55,7 @@ for details.
Similarly as above, you'll need the following dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-redoc-bundle" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-redoc-bundle" % "1.0.6"
```

And the server endpoints can be generated using the `sttp.tapir.redoc.bundle.RedocInterpreter` class.
Expand All @@ -65,7 +65,7 @@ And the server endpoints can be generated using the `sttp.tapir.redoc.bundle.Red
To generate the docs in the OpenAPI yaml format, add the following dependencies:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-openapi-docs" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-openapi-docs" % "1.0.6"
"com.softwaremill.sttp.apispec" %% "openapi-circe-yaml" % "..." // see https://github.com/softwaremill/sttp-apispec
```

Expand Down Expand Up @@ -136,12 +136,12 @@ The modules `tapir-swagger-ui` and `tapir-redoc` contain server endpoint definit
yaml format, will expose it using the given context path. To use, add as a dependency either
`tapir-swagger-ui`:
```scala
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui" % "1.0.6"
```

or `tapir-redoc`:
```scala
"com.softwaremill.sttp.tapir" %% "tapir-redoc" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-redoc" % "1.0.6"
```

Then, you'll need to pass the server endpoints to your server interpreter. For example, using akka-http:
Expand Down
10 changes: 5 additions & 5 deletions generated-doc/out/endpoint/integrations.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,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" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-cats" % "1.0.6"
```

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

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

Then, `import sttp.tapir.codec.enumeratum._`, or extends the `sttp.tapir.codec.enumeratum.TapirCodecEnumeratum` trait.
Expand Down Expand Up @@ -87,7 +87,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" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-newtype" % "1.0.6"
```

Then, `import sttp.tapir.codec.newtype._`, or extend the `sttp.tapir.codec.enumeratum.TapirCodecNewType` trait to bring the implicit values into scope.
Expand All @@ -99,7 +99,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" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-derevo" % "1.0.6"
```

Then you can derive schema for your ADT along with other typeclasses besides ADT declaration itself:
Expand Down
2 changes: 1 addition & 1 deletion generated-doc/out/endpoint/ios.md
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ To match only the root path, use an empty string: `endpoint.in("")` will match `
`http://server.com`.

To match a path prefix, first define inputs which match the path prefix, and then capture any remaining part using
`paths`, e.g.: `endpoint.in("api" / "download").in(paths)"`.
`paths`, e.g.: `endpoint.in("api" / "download").in(paths)`.

## Status codes

Expand Down
35 changes: 27 additions & 8 deletions generated-doc/out/endpoint/json.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,31 @@ If you have a custom, implicit `Codec[String, T, Json]` instance, you should use
This description of endpoint input/output, instead of deriving a codec basing on other library-specific implicits, uses
the json codec that is in scope.

## JSON as string

If you'd like to work with JSON bodies in a serialised `String` form, instead of integrating on a higher level using
one of the libraries mentioned below, this is also possible. Note that in this case, the serialising/deserialising
of the body must be part of the [server logic](../server/logic.md).

The `stringBody` body input/output will work, however by default it uses the `text/plain` content type. This can be
customised, by creating a string-based body with the correct codec format (which is a tapir wrapper for media types):

```scala
import sttp.tapir._
stringBodyUtf8AnyFormat(Codec.id(CodecFormat.Json(), Schema.string))

// or, providing a schema:
import sttp.tapir.generic.auto._
case class MyBody(field: Int)
stringBodyUtf8AnyFormat(Codec.id(CodecFormat.Json(), implicitly[Schema[MyBody]].as[String]))
```

## Circe

To use [Circe](https://github.com/circe/circe), add the following dependency to your project:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-json-circe" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-json-circe" % "1.0.6"
```

Next, import the package (or extend the `TapirJsonCirce` trait, see [MyTapir](../mytapir.md)):
Expand Down Expand Up @@ -103,7 +122,7 @@ Now the above JSON object will render as
To use [µPickle](http://www.lihaoyi.com/upickle/) add the following dependency to your project:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-json-upickle" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-json-upickle" % "1.0.6"
```

Next, import the package (or extend the `TapirJsonuPickle` trait, see [MyTapir](../mytapir.md) and add `TapirJsonuPickle` not `TapirCirceJson`):
Expand Down Expand Up @@ -138,7 +157,7 @@ For more examples, including making a custom encoder/decoder, see [TapirJsonuPic
To use [Play JSON](https://github.com/playframework/play-json) add the following dependency to your project:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-json-play" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-json-play" % "1.0.6"
```

Next, import the package (or extend the `TapirJsonPlay` trait, see [MyTapir](../mytapir.md) and add `TapirJsonPlay` not `TapirCirceJson`):
Expand All @@ -154,7 +173,7 @@ Play JSON requires `Reads` and `Writes` implicit values in scope for each type y
To use [Spray JSON](https://github.com/spray/spray-json) add the following dependency to your project:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-json-spray" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-json-spray" % "1.0.6"
```

Next, import the package (or extend the `TapirJsonSpray` trait, see [MyTapir](../mytapir.md) and add `TapirJsonSpray` not `TapirCirceJson`):
Expand All @@ -170,7 +189,7 @@ Spray JSON requires a `JsonFormat` implicit value in scope for each type you wan
To use [Tethys JSON](https://github.com/tethys-json/tethys) add the following dependency to your project:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-json-tethys" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-json-tethys" % "1.0.6"
```

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

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

And one of the implementations:
Expand Down Expand Up @@ -233,7 +252,7 @@ implicit val formats: Formats = org.json4s.jackson.Serialization.formats(NoTypeH
To use [zio-json](https://github.com/zio/zio-json), add the following dependency to your project:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-json-zio" % "1.0.5"
"com.softwaremill.sttp.tapir" %% "tapir-json-zio" % "1.0.6"
```
Next, import the package (or extend the `TapirJsonZio` trait, see [MyTapir](../mytapir.md) and add `TapirJsonZio` instead of `TapirCirceJson`):

Expand Down
6 changes: 6 additions & 0 deletions generated-doc/out/endpoint/schemas.md
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,12 @@ val e: PublicEndpoint[FruitAmount, Unit, Unit, Nothing] =
endpoint.in(jsonBody[FruitAmount])
```

## Enumerations

Currently only schemas for Scala2's `Enumeration#Value` enumerations are automatically derived. For Scala3 `enum`s,
an implicit schema value has to be provided by hand. See the enumeration docs in [validation](validation.md) for
details.

## Next

Read on about [validation](validation.md).
Loading

0 comments on commit 809cb64

Please sign in to comment.