trait Tapir extends TapirExtensions with TapirComputedInputs with TapirStaticContentEndpoints with ModifyMacroSupport with TapirMacros
- Alphabetic
- By Inheritance
- Tapir
- TapirMacros
- ModifyMacroSupport
- ModifyMacroFunctorSupport
- TapirStaticContentEndpoints
- TapirComputedInputs
- TapirExtensions
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- type TapirFile = File
- Definition Classes
- TapirExtensions
- final class WebSocketBodyBuilder[REQ, REQ_CF <: CodecFormat, RESP, RESP_CF <: CodecFormat] extends AnyRef
- implicit class ModifyEach[F[_], T] extends AnyRef
- Definition Classes
- ModifyMacroFunctorSupport
- trait ModifyFunctor[F[_], A] extends AnyRef
- Definition Classes
- ModifyMacroFunctorSupport
- implicit class ModifyEachMap[F[_, _], K, T] extends AnyRef
- Definition Classes
- ModifyMacroSupport
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def anyFromStringBody[T, CF <: CodecFormat](codec: Codec[String, T, CF], charset: Charset): Body[String, T]
A body in any format, read using the given
codec
, from a raw string read usingcharset
. - def anyFromUtf8StringBody[T, CF <: CodecFormat](codec: Codec[String, T, CF]): Body[String, T]
A body in any format, read using the given
codec
, from a raw string read using UTF-8. - final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def auth: TapirAuth.type
- def binaryBody[R, T](implicit arg0: Binary[R], arg1: Codec[R, T, OctetStream]): Body[R, T]
- def byteArrayBody: Body[Array[Byte], Array[Byte]]
- def byteBufferBody: Body[ByteBuffer, ByteBuffer]
- def clientIp: EndpointInput[Option[String]]
- Definition Classes
- TapirComputedInputs
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- def cookie[T](name: String)(implicit arg0: Codec[Option[String], T, TextPlain]): Cookie[T]
- def cookies: Header[List[Cookie]]
- def customJsonBody[T](implicit arg0: JsonCodec[T]): Body[String, T]
Requires an implicit Codec.JsonCodec in scope.
Requires an implicit Codec.JsonCodec in scope. Such a codec can be created using Codec.json.
However, json codecs are usually derived from json-library-specific implicits. That's why integrations with various json libraries define
jsonBody
methods, which directly require the library-specific implicits.Unless you have defined a custom json codec, the
jsonBody
methods should be used. - val emptyOutput: Empty[Unit]
An empty output.
An empty output. Useful if one of
oneOf
branches should be mapped to the status code only. - def emptyOutputAs[T](value: T): Basic[T]
An empty output.
An empty output. Useful if one of the oneOf branches of a coproduct type is a case object that should be mapped to an empty body.
- val endpoint: Endpoint[Unit, Unit, Unit, Any]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def extractFromRequest[T](f: (ServerRequest) => T): ExtractFromRequest[T]
Extract a value from a server request.
Extract a value from a server request. This input is only used by server interpreters, it is ignored by documentation interpreters and the provided value is discarded by client interpreters.
- def fileBody: Body[TapirFile, TapirFile]
- def formBody[T](charset: Charset)(implicit arg0: Codec[String, T, XWwwFormUrlencoded]): Body[String, T]
- def formBody[T](implicit arg0: Codec[String, T, XWwwFormUrlencoded]): Body[String, T]
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def header(name: String, value: String): FixedHeader[Unit]
- def header(h: Header): FixedHeader[Unit]
- def header[T](name: String)(implicit arg0: Codec[List[String], T, TextPlain]): Header[T]
- def headers: Headers[List[Header]]
- val htmlBodyUtf8: Body[String, String]
- val infallibleEndpoint: Endpoint[Unit, Nothing, Unit, Any]
- def inputStreamBody: Body[InputStream, InputStream]
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isWebSocket: EndpointInput[Boolean]
- Definition Classes
- TapirComputedInputs
- def multipartBody[T](implicit multipartCodec: MultipartCodec[T]): Body[Seq[RawPart], T]
- val multipartBody: Body[Seq[RawPart], Seq[Part[Array[Byte]]]]
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def oneOf[T](firstCase: OneOfMapping[_ <: T], otherCases: OneOfMapping[_ <: T]*): OneOf[T, T]
Specifies a correspondence between status codes and outputs.
Specifies a correspondence between status codes and outputs.
All outputs must have a common supertype (
T
). Typically, the supertype is a sealed trait, and the mappings are implementing cases classes.A single status code can have multiple mappings (or there can be multiple default mappings), with different body content types. The mapping can then be chosen based on content type negotiation, or the content type header.
Note that exhaustiveness of the mappings is not checked (that all subtypes of
T
are covered). - def oneOfDefaultMapping[T](output: EndpointOutput[T]): OneOfMapping[T]
Create a fallback mapping to be used in oneOf output descriptions.
Create a fallback mapping to be used in oneOf output descriptions. Multiple such mappings can be specified, with different body content types.
- macro def oneOfMapping[T](statusCode: StatusCode, output: EndpointOutput[T])(implicit arg0: ClassTag[T]): OneOfMapping[T]
Create a one-of-mapping which uses
statusCode
andoutput
if the class of the provided value (when interpreting as a server) matches the runtime class ofT
.Create a one-of-mapping which uses
statusCode
andoutput
if the class of the provided value (when interpreting as a server) matches the runtime class ofT
.This will fail at compile-time if the type erasure of
T
is different fromT
, as a runtime check in this situation would give invalid results. In such cases, use oneOfMappingClassMatcher, oneOfMappingValueMatcher or oneOfMappingFromMatchType instead.Should be used in oneOf output descriptions.
- Definition Classes
- TapirMacros
- def oneOfMappingClassMatcher[T](statusCode: StatusCode, output: EndpointOutput[T], runtimeClass: Class[_]): OneOfMapping[T]
Create a one-of-mapping which uses
statusCode
andoutput
if the class of the provided value (when interpreting as a server) matches the givenruntimeClass
.Create a one-of-mapping which uses
statusCode
andoutput
if the class of the provided value (when interpreting as a server) matches the givenruntimeClass
. Note that this does not take into account type erasure.Should be used in oneOf output descriptions.
- def oneOfMappingExactMatcher[T](statusCode: StatusCode, output: EndpointOutput[T])(firstExactValue: T, rest: T*)(implicit arg0: ClassTag[T]): OneOfMapping[T]
Create a one-of-mapping which uses
statusCode
andoutput
if the provided value exactly matches one of the values provided in the second argument list.Create a one-of-mapping which uses
statusCode
andoutput
if the provided value exactly matches one of the values provided in the second argument list.Should be used in oneOf output descriptions.
- def oneOfMappingFromMatchType[T](statusCode: StatusCode, output: EndpointOutput[T])(implicit arg0: MatchType[T]): OneOfMapping[T]
Experimental!
Experimental!
Create a one-of-mapping which uses
statusCode
andoutput
if the provided value matches the target type, as checked by MatchType. Instances of MatchType are automatically derived and recursively check that classes of all fields match, to bypass issues caused by type erasure.Should be used in oneOf output descriptions.
- def oneOfMappingValueMatcher[T](statusCode: StatusCode, output: EndpointOutput[T])(matcher: PartialFunction[Any, Boolean]): OneOfMapping[T]
Create a one-of-mapping which uses
statusCode
andoutput
if the provided value (when interpreting as a server matches thematcher
predicate.Create a one-of-mapping which uses
statusCode
andoutput
if the provided value (when interpreting as a server matches thematcher
predicate.Should be used in oneOf output descriptions.
- implicit def optionModifyFunctor[A]: ModifyFunctor[Option, A]
- Definition Classes
- ModifyMacroFunctorSupport
- def path[T](name: String)(implicit arg0: Codec[String, T, TextPlain]): PathCapture[T]
- def path[T](implicit arg0: Codec[String, T, TextPlain]): PathCapture[T]
- def paths: PathsCapture[List[String]]
- def plainBody[T](charset: Charset)(implicit arg0: Codec[String, T, TextPlain]): Body[String, T]
- def plainBody[T](implicit arg0: Codec[String, T, TextPlain]): Body[String, T]
- def query[T](name: String)(implicit arg0: Codec[List[String], T, TextPlain]): Query[T]
- def queryParams: QueryParams[QueryParams]
- def rawBinaryBody[R](implicit arg0: Binary[R], codec: Codec[R, R, OctetStream]): Body[R, R]
- def setCookie(name: String): Header[CookieValueWithMeta]
- def setCookies: Header[List[CookieWithMeta]]
- def statusCode(statusCode: StatusCode): FixedStatusCode[Unit]
- def statusCode: StatusCode[StatusCode]
- def streamBinaryBody[S](s: Streams[S]): StreamBodyIO[BinaryStream, BinaryStream, S]
Creates a stream body with a binary schema.
Creates a stream body with a binary schema. The
application/octet-stream
media type will be used by default, but can be later overridden by providing a customContent-Type
header value.- s
A supported streams implementation.
- def streamBody[S, T](s: Streams[S])(schema: Schema[T], format: CodecFormat, charset: Option[Charset] = None): StreamBodyIO[BinaryStream, BinaryStream, S]
Creates a stream body with a text schema.
Creates a stream body with a text schema.
- s
A supported streams implementation.
- schema
Schema of the body. This should be a schema for the "deserialized" stream.
- format
The media type to use by default. Can be later overridden by providing a custom
Content-Type
header.- charset
An optional charset of the resulting stream's data, to be used in the content type.
- def streamTextBody[S](s: Streams[S])(format: CodecFormat, charset: Option[Charset] = None): StreamBodyIO[BinaryStream, BinaryStream, S]
Creates a stream body with a text schema.
Creates a stream body with a text schema.
- s
A supported streams implementation.
- format
The media type to use by default. Can be later overridden by providing a custom
Content-Type
header.- charset
An optional charset of the resulting stream's data, to be used in the content type.
- def stringBody(charset: Charset): Body[String, String]
- def stringBody(charset: String): Body[String, String]
- def stringBody: Body[String, String]
- implicit def stringToPath(s: String): FixedPath[Unit]
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- implicit def traversableModifyFunctor[F[_], A](implicit fac: Factory[A, F[A]], ev: (F[A]) => Iterable[A]): ModifyFunctor[F, A]
- Definition Classes
- ModifyMacroSupport
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- def webSocketBody[REQ, REQ_CF <: CodecFormat, RESP, RESP_CF <: CodecFormat]: WebSocketBodyBuilder[REQ, REQ_CF, RESP, RESP_CF]
- REQ
The type of messages that are sent to the server.
- REQ_CF
The codec format (media type) of messages that are sent to the server.
- RESP
The type of messages that are received from the server.
- RESP_CF
The codec format (media type) of messages that are received from the server.
- def webSocketBodyRaw[S](s: Streams[S]): WebSocketBodyOutput[Pipe[WebSocketFrame, WebSocketFrame], WebSocketFrame, WebSocketFrame, Pipe[WebSocketFrame, WebSocketFrame], S]
- def xmlBody[T](implicit arg0: XmlCodec[T]): Body[String, T]
Requires an implicit Codec.XmlCodec in scope.
Requires an implicit Codec.XmlCodec in scope. Such a codec can be created using Codec.xml.
Deprecated Value Members
- def anyJsonBody[T](implicit arg0: JsonCodec[T]): Body[String, T]
- Annotations
- @deprecated
- Deprecated
(Since version 0.18.0) Use customJsonBody
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
- def statusDefaultMapping[T](output: EndpointOutput[T]): OneOfMapping[T]
- Annotations
- @deprecated
- Deprecated
(Since version 0.18) Use oneOfDefaultMapping
- macro def statusMapping[T](statusCode: StatusCode, output: EndpointOutput[T])(implicit arg0: ClassTag[T]): OneOfMapping[T]
- Definition Classes
- TapirMacros
- Annotations
- @deprecated
- Deprecated
(Since version 0.18) Use oneOfMapping
- def statusMappingClassMatcher[T](statusCode: StatusCode, output: EndpointOutput[T], runtimeClass: Class[_]): OneOfMapping[T]
- Annotations
- @deprecated
- Deprecated
(Since version 0.18) Use oneOfMappingClassMatcher
- def statusMappingExactMatcher[T](statusCode: StatusCode, output: EndpointOutput[T])(firstExactValue: T, rest: T*)(implicit arg0: ClassTag[T]): OneOfMapping[T]
- Annotations
- @deprecated
- Deprecated
(Since version 0.18) Use oneOfMappingExactMatcher
- def statusMappingFromMatchType[T](statusCode: StatusCode, output: EndpointOutput[T])(implicit arg0: MatchType[T]): OneOfMapping[T]
- Annotations
- @deprecated
- Deprecated
(Since version 0.18) Use oneOfMappingFromMatchType
- def statusMappingValueMatcher[T](statusCode: StatusCode, output: EndpointOutput[T])(matcher: PartialFunction[Any, Boolean]): OneOfMapping[T]
- Annotations
- @deprecated
- Deprecated
(Since version 0.18) Use oneOfMappingValueMatcher