github softwaremill/tapir v1.9.0

latest releases: v1.11.4, v1.11.3, v1.11.2...
10 months ago

New Loom-based backends

Backends based on Loom (Java virtual threads) have been migrated from the tapir-loom project, and are now a part of the main distribution. They require JDK 21. Read more:

Breaking changes

DecodeFailureHandler

DecodeFailureHandler has become DecodeFailureHandler[F] to allow effectful error handling. If you're using custom handlers, update them to the new apply signature:

trait DecodeFailureHandler[F[_]] {
  def apply(ctx: DecodeFailureContext)(implicit monad: MonadError[F]): F[Option[ValuedEndpointOutput[_]]]
}

RejectHandler

RejectHandler.apply no longer takes a Failure, but a RejectContext, which encapsulates the failure, and the ServerRequest as well, allowing using more information for your rejection handling.

trait RejectHandler[F[_]] {
  def apply(ctx: RejectContext)(implicit monad: MonadError[F]): F[Option[ValuedEndpointOutput[_]]]
}

Full changelog

Dependency updates

Don't miss a new tapir release

NewReleases is sending notifications on new releases.