Skip to content

Commit

Permalink
Release 1.2.8
Browse files Browse the repository at this point in the history
  • Loading branch information
adamw committed Feb 7, 2023
1 parent c222bc2 commit 7fa6d4a
Show file tree
Hide file tree
Showing 25 changed files with 77 additions and 75 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.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-core" % "1.2.8"
```

Then, import:
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.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-http4s-client" % "1.2.8"
```

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.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-play-client" % "1.2.8"
```

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.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-sttp-client" % "1.2.8"
```

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.2.7"
"com.softwaremill.sttp.tapir" %%% "tapir-sttp-client" % "1.2.8"
"io.github.cquiroz" %%% "scala-java-time" % "2.2.0" // implementations of java.time classes for Scala.JS
```

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,7 +3,7 @@
To use, add the following dependencies:

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

Expand Down Expand Up @@ -32,7 +32,7 @@ val docs: AsyncAPI = AsyncAPIInterpreter().toAsyncAPI(echoWS, "Echo web socket",
Such a model can then be refined, by adding details which are not auto-generated. Working with a deeply nested case
class structure such as the `AsyncAPI` 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
The documentation is generated in a large part basing on [schemas](../endpoint/codecs.html#schemas). Schemas can be
[automatically derived and customised](../endpoint/schemas.md).

Quite often, you'll need to define the servers, through which the API can be reached. Any servers provided to the
Expand Down
12 changes: 6 additions & 6 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.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-bundle" % "1.2.8"
```

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.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-redoc-bundle" % "1.2.8"
```

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.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-openapi-docs" % "1.2.8"
"com.softwaremill.sttp.apispec" %% "openapi-circe-yaml" % "..." // see https://github.com/softwaremill/sttp-apispec
```

Expand Down Expand Up @@ -133,7 +133,7 @@ For example, generating the OpenAPI 3.1.0 YAML string can be achieved by perform

Firstly add dependencies:
```scala
"com.softwaremill.sttp.tapir" %% "tapir-openapi-docs" % "1.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-openapi-docs" % "1.2.8"
"com.softwaremill.sttp.apispec" %% "openapi-circe-yaml" % "..." // see https://github.com/softwaremill/sttp-apispec
```

Expand Down Expand Up @@ -164,12 +164,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.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui" % "1.2.8"
```

or `tapir-redoc`:
```scala
"com.softwaremill.sttp.tapir" %% "tapir-redoc" % "1.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-redoc" % "1.2.8"
```

Then, you'll need to pass the server endpoints to your server interpreter. For example, using akka-http:
Expand Down
14 changes: 7 additions & 7 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.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-cats" % "1.2.8"
```

- `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.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-refined" % "1.2.8"
```

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.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-enumeratum" % "1.2.8"
```

Then, `import sttp.tapir.codec.enumeratum._`, or extends the `sttp.tapir.codec.enumeratum.TapirCodecEnumeratum` trait.
Expand All @@ -60,7 +60,7 @@ If you use [scala-newtype](https://github.com/estatico/scala-newtype), the `tapi
schemas for 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.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-newtype" % "1.2.8"
```

Then, `import sttp.tapir.codec.newtype._`, or extend the `sttp.tapir.codec.newtype.TapirCodecNewType` trait to bring the implicit values into scope.
Expand All @@ -71,7 +71,7 @@ If you use [monix newtypes](https://github.com/monix/newtypes), the `tapir-monix
schemas for types which extend `NewtypeWrapped` and `NewsubtypeWrapped` annotations as long as a codec and schema for its underlying value already exists:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-monix-newtype" % "1.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-monix-newtype" % "1.2.8"
```

Then, `import sttp.tapir.codec.monix.newtype._`, or extend the `sttp.tapir.codec.monix.newtype.TapirCodecMonixNewType` trait to bring the implicit values into scope.
Expand All @@ -82,7 +82,7 @@ If you use [ZIO Prelude Newtypes](https://zio.github.io/zio-prelude/docs/newtype
schemas for types defined using `Newtype` and `Subtype` as long as a codec and a schema for the underlying type already exists:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-zio-prelude" % "1.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-zio-prelude" % "1.2.8"
```

Then, mix in `sttp.tapir.codec.zio.prelude.newtype.TapirNewtypeSupport` into your newtype to bring the implicit values into scope:
Expand Down Expand Up @@ -121,7 +121,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.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-derevo" % "1.2.8"
```

Then you can derive schema for your ADT along with other typeclasses besides ADT declaration itself:
Expand Down
16 changes: 8 additions & 8 deletions generated-doc/out/endpoint/json.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ stringJsonBody.schema(implicitly[Schema[MyBody]].as[String])
To use [Circe](https://github.com/circe/circe), add the following dependency to your project:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-json-circe" % "1.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-json-circe" % "1.2.8"
```

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

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

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

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

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

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

And one of the implementations:
Expand Down Expand Up @@ -248,7 +248,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.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-json-zio" % "1.2.8"
```
Next, import the package (or extend the `TapirJsonZio` trait, see [MyTapir](../mytapir.md) and add `TapirJsonZio` instead of `TapirCirceJson`):

Expand Down
16 changes: 9 additions & 7 deletions generated-doc/out/endpoint/schemas.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ If you have a case class which contains some non-standard types (other than stri
collections), you only need to provide implicit schemas for them. Using these, the rest will be derived automatically.

Note that when using [datatypes integrations](integrations.md), respective schemas & codecs must also be imported to
enable the derivation, e.g. for [newtype](integrations.md#newtype-integration) you'll have to add
enable the derivation, e.g. for [newtype](integrations.html#newtype-integration) you'll have to add
`import sttp.tapir.codec.newtype._` or extend `TapirCodecNewType`.

## Semi-automatic derivation
Expand All @@ -64,13 +64,15 @@ implicit lazy val sParent: Schema[Parent] = Schema.derived
Note that while schemas for regular types can be safely defined as `val`s, in case of recursive values, the schema
values must be `lazy val`s.

```eval_rst
.. note::
## Debugging schema derivation

When deriving schemas using ``Schema.derived``, the diagnostic information as to schemas for which types is
much richer. Hence, this method may be used when debugging the derivation of a schema which gives compilation errors,
even when otherwise auto derivation is used.
```
When deriving schemas using `Schema.derived[T]`, in case derivation fails, you'll get information for which part of `T`
the schema cannot be found (e.g. a specific field, or a trait subtype). Given this diagnostic information you can drill
down, and try to derive the schema (again using `Schema.derived`) for the problematic part. Eventually, you'll find the
lowest-level type for which the schema cannot be derived. You might need to provide it manually, or use some kind of
integration layer.

This method may be used both with automatic and semi-automatic derivation.

## Derivation for recursive types in Scala3

Expand Down
2 changes: 1 addition & 1 deletion generated-doc/out/endpoint/validation.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ some nested component (such as a field value).

If you are using automatic or semi-automatic schema derivation, validators for such schemas, and their nested
components, including collections and options, can be added as described in
[schema customisation](schemas.md#customising-derived-schemas).
[schema customisation](schemas.html#customising-derived-schemas).

## Adding validators to inputs/outputs

Expand Down
2 changes: 1 addition & 1 deletion generated-doc/out/endpoint/xml.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ object Endpoints {
If the generation of OpenAPI documentation is required, consider adding OpenAPI doc extension on schema providing XML
namespace as described in the "Prefixes and Namespaces" section at [OpenAPI documentation regarding handling XML](https://swagger.io/docs/specification/data-models/representing-xml/).
This would add `xmlns` property to example request/responses at swagger, which is required by scalaxb to properly deserialize XML.
For more information on adding OpenAPI doc extension in tapir refer to [documentation](../docs/openapi.md#openapi-specification-extensions).
For more information on adding OpenAPI doc extension in tapir refer to [documentation](../docs/openapi.html#openapi-specification-extensions).

Adding xml namespace doc extension to `Outer`'s `Schema` example:
```scala
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" % "1.2.7")
addSbtPlugin("com.softwaremill.sttp.tapir" % "sbt-openapi-codegen" % "1.2.8")
```

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" % "1.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-core" % "1.2.8"
```

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" % "1.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-akka-http-server" % "1.2.8"
```

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

Now import the object:
Expand Down
8 changes: 4 additions & 4 deletions generated-doc/out/server/armeria.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Armeria interpreter can be used with different effect systems (cats-effect, ZIO)

Add the following dependency
```scala
"com.softwaremill.sttp.tapir" %% "tapir-armeria-server" % "1.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-armeria-server" % "1.2.8"
```

and import the object:
Expand Down Expand Up @@ -75,7 +75,7 @@ Note that Armeria automatically injects an `ExecutionContext` on top of Armeria'

Add the following dependency
```scala
"com.softwaremill.sttp.tapir" %% "tapir-armeria-server-cats" % "1.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-armeria-server-cats" % "1.2.8"
```
to use this interpreter with Cats Effect typeclasses.

Expand Down Expand Up @@ -155,9 +155,9 @@ Add the following dependency

```scala
// for zio 2:
"com.softwaremill.sttp.tapir" %% "tapir-armeria-server-zio" % "1.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-armeria-server-zio" % "1.2.8"
// for zio 1:
"com.softwaremill.sttp.tapir" %% "tapir-armeria-server-zio1" % "1.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-armeria-server-zio1" % "1.2.8"
```

to use this interpreter with ZIO.
Expand Down
6 changes: 3 additions & 3 deletions generated-doc/out/server/aws.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ To implement the Lambda function, a server interpreter is available, which takes
Currently, only an interpreter integrating with cats-effect is available (`AwsCatsEffectServerInterpreter`). To use, add the following dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-aws-lambda" % "1.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-aws-lambda" % "1.2.8"
```

To configure API Gateway and the Lambda function, you can use:
Expand All @@ -24,8 +24,8 @@ To configure API Gateway and the Lambda function, you can use:
Add one of the following dependencies:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-aws-sam" % "1.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-aws-terraform" % "1.2.7"
"com.softwaremill.sttp.tapir" %% "tapir-aws-sam" % "1.2.8"
"com.softwaremill.sttp.tapir" %% "tapir-aws-terraform" % "1.2.8"
```

## Examples
Expand Down
Loading

0 comments on commit 7fa6d4a

Please sign in to comment.