HttpRestSchema

smithy4s.http.HttpRestSchema$
See theHttpRestSchema companion trait

Attributes

Companion
trait
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type

Members list

Type members

Classlikes

final case class Empty[A](value: A) extends HttpRestSchema[A]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait HttpRestSchema[A]
class Object
trait Matchable
class Any
Show all
final case class MetadataAndBody[A](metadataSchema: Schema[PartialData[A]], bodySchema: Schema[PartialData[A]]) extends HttpRestSchema[A]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait HttpRestSchema[A]
class Object
trait Matchable
class Any
Show all
final case class OnlyBody[A](schema: Schema[A]) extends HttpRestSchema[A]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait HttpRestSchema[A]
class Object
trait Matchable
class Any
Show all
final case class OnlyMetadata[A](schema: Schema[A]) extends HttpRestSchema[A]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait HttpRestSchema[A]
class Object
trait Matchable
class Any
Show all

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Attributes

Inherited from:
Mirror

The name of the type

The name of the type

Attributes

Inherited from:
Mirror

Value members

Concrete methods

def apply[A](fullSchema: Schema[A]): HttpRestSchema[A]
def combineReaderCompilers[F[_] : Zipper, Message](metadataDecoderCompiler: CachedSchemaCompiler[[_] =>> Reader[F, Message, _$5]], bodyDecoderCompiler: CachedSchemaCompiler[[_] =>> Reader[F, Message, _$6]], drainBody: Message => F[Unit]): CachedSchemaCompiler[[_] =>> Reader[F, Message, _$7]]

A compiler for Reader that abides by REST-semantics : fields that are annotated with httpLabel, httpHeader, httpQuery, httpStatusCode ... are decoded from the corresponding metadata.

A compiler for Reader that abides by REST-semantics : fields that are annotated with httpLabel, httpHeader, httpQuery, httpStatusCode ... are decoded from the corresponding metadata.

The rest is decoded from the body.

Attributes

def combineWriterCompilers[Message](metadataEncoderCompiler: CachedCompiler[Message, Message], bodyEncoderCompiler: CachedCompiler[Message, Message], writeEmptyStructs: Schema[_] => Boolean): CachedCompiler[Message, Message]

Combines separate compilers :

Combines separate compilers :

  • one specific to http metadata
  • one specific to http bodies

the result is a compiler that knows how to split schemas so that upon encoding a piece of data, the relevant subset of the data is encoded as http metadata (headers, query parameters, etc) and the relevant subset of the data is encoded as http body.

Attributes