The tapir-cats
module contains schema, validator and codec instances for some cats
datatypes:
"com.softwaremill.sttp.tapir" %% "tapir-cats" % "0.12.27"
See the sttp.tapir.codec.cats.TapirCodecCats
trait or import sttp.tapir.codec.cats._
to bring the implicit values
into scope.
If you use refined, the tapir-refined
module will provide implicit codecs and
validators for T Refined P
as long as a codec for T
already exists:
"com.softwaremill.sttp.tapir" %% "tapir-refined" % "0.12.27"
You'll need to extend the sttp.tapir.codec.refined.TapirCodecRefined
trait or import sttp.tapir.codec.refined._
to bring the implicit values into scope.
The refined codecs contain a validator which wrap/unwrap the value from/to its refined equivalent.
Some predicates will bind correctly to the vanilla tapir Validator, while others will bind to a custom validator that
might not be very clear when reading the generated documentation. Correctly bound predicates can be found in
integration/refined/src/main/scala/sttp/tapir/codec/refined/TapirCodecRefined.scala
.
If you are not satisfied with the validator generated by tapir-refined
, you can provide an implicit
ValidatorForPredicate[T, P]
in scope using `ValidatorForPredicate.fromPrimitiveValidator' to build it (do not
hesitate to contribute your work!).
The tapir-enumartum
module provides schemas, validators and codecs for Enumeratum
enumerations. To use, add the following dependency:
"com.softwaremill.sttp.tapir" %% "tapir-enumeratum" % "0.12.27"
Then, import sttp.tapir.codec.enumeratum
, or extends the sttp.tapir.codec.enumeratum.TapirCodecEnumeratum
trait.
This will bring into scope implicit values for values extending *EnumEntry
.