trait EndpointsWithCustomErrors extends algebra.EndpointsWithCustomErrors with Requests with Responses
- Alphabetic
- By Inheritance
- EndpointsWithCustomErrors
- Responses
- StatusCodes
- Requests
- Urls
- Methods
- EndpointsWithCustomErrors
- Errors
- Responses
- StatusCodes
- Requests
- SemigroupalSyntax
- Methods
- Urls
- PartialInvariantFunctorSyntax
- InvariantFunctorSyntax
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- case class CallbackDocs extends Product with Serializable
- Definition Classes
- EndpointsWithCustomErrors
- type CallbacksDocs = Map[String, CallbackDocs]
- Definition Classes
- EndpointsWithCustomErrors
- abstract type ClientErrors
- Definition Classes
- Errors
- case class Endpoint[A, B](request: EndpointsWithCustomErrors.Request[A], response: EndpointsWithCustomErrors.Response[B]) extends Product with Serializable
- case class EndpointDocs extends Product with Serializable
- Definition Classes
- EndpointsWithCustomErrors
- implicit class InvariantFunctorSyntax[A, F[_]] extends AnyRef
- Definition Classes
- InvariantFunctorSyntax
- type Method = uzhttp.Request.Method
- Definition Classes
- Methods → Methods
- type Params = Map[String, Seq[String]]
- Definition Classes
- Urls
- implicit class PartialInvariantFunctorSyntax[A, F[_]] extends AnyRef
- Definition Classes
- PartialInvariantFunctorSyntax
- implicit class PathOps[A] extends AnyRef
- Definition Classes
- Urls
- type QueryString[A] = (Params) => Validated[A]
- Definition Classes
- Urls → Urls
- implicit class QueryStringSyntax[A] extends AnyRef
- Definition Classes
- Urls
- type Request[A] = (uzhttp.Request) => Option[UIO[Validated[A]]]
An HTTP request.
An HTTP request.
It receives uzhttp.Request and returns: -
None
if request url cannot be matched - Some(Valid(a)) ifA
can be extracted from request - Invalid ifA
cannot be extracted from requestHas an instance of
InvariantFunctor
.- Definition Classes
- Requests → Requests
- type RequestEntity[A] = (uzhttp.Request) => UIO[Validated[A]]
Information carried by request entity.
Information carried by request entity. It is modeled as
UIO[Validate[A]]
because it is result of collecting data from stream chunk. If any error happens during collecting data or collected data cannot be transformed to wanted information we store error inInvalid
data structure which is later transformed toBad Request
response.- Definition Classes
- Requests → Requests
- type RequestHeaders[A] = (Map[String, String]) => Validated[A]
An attempt to extract an
A
from a request headers.An attempt to extract an
A
from a request headers.Models failure by returning a
Left(result)
. That makes it possible to early return an HTTP response if a header is wrong (e.g. if an authentication information is missing)- Definition Classes
- Requests → Requests
- type Response[A] = (A) => RIO[Blocking, uzhttp.Response]
An HTTP response (status, headers, and entity) carrying an information of type A
An HTTP response (status, headers, and entity) carrying an information of type A
- Definition Classes
- Responses → Responses
- Note
This type has implicit methods provided by the InvariantFunctorSyntax and ResponseSyntax class
- type ResponseEntity[A] = (A) => (Array[Byte], String)
An HTTP response entity carrying an information of type A It is modeled as function that receives
A
and returns it value serialized to byte array together with content type.An HTTP response entity carrying an information of type A It is modeled as function that receives
A
and returns it value serialized to byte array together with content type.- Definition Classes
- Responses → Responses
- type ResponseHeaders[A] = (A) => List[(String, String)]
Information carried by responses’ headers.
Information carried by responses’ headers.
You can construct values of type
ResponseHeaders
by using the operations responseHeader, optResponseHeader, or emptyResponseHeaders.- Definition Classes
- Responses → Responses
- Note
This type has implicit methods provided by the SemigroupalSyntax and PartialInvariantFunctorSyntax classes.
- implicit class ResponseSyntax[A] extends AnyRef
- Definition Classes
- Responses
- implicit class SemigroupalSyntax[A, F[_]] extends AnyRef
- Definition Classes
- SemigroupalSyntax
- abstract type ServerError
- Definition Classes
- Errors
- type StatusCode = Status
- Definition Classes
- StatusCodes → StatusCodes
- trait Path[A] extends Url[A]
- Definition Classes
- Urls
- trait QueryStringParam[A] extends AnyRef
- Definition Classes
- Urls
- trait Segment[A] extends AnyRef
- Definition Classes
- Urls
- trait Url[A] extends AnyRef
- Definition Classes
- Urls
Abstract Value Members
- abstract def clientErrorsResponseEntity: ResponseEntity[ClientErrors]
- Definition Classes
- Errors
- abstract def clientErrorsToInvalid(clientErrors: ClientErrors): Invalid
- Definition Classes
- Errors
- abstract def invalidToClientErrors(invalid: Invalid): ClientErrors
- Definition Classes
- Errors
- abstract def serverErrorResponseEntity: ResponseEntity[ServerError]
- Definition Classes
- Errors
- abstract def serverErrorToThrowable(serverError: ServerError): Throwable
- Definition Classes
- Errors
- abstract def throwableToServerError(throwable: Throwable): ServerError
- Definition Classes
- Errors
Concrete 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 Accepted: uzhttp.Status.Accepted
- Definition Classes
- StatusCodes → StatusCodes
- def BadRequest: Status
- Definition Classes
- StatusCodes → StatusCodes
- def Created: uzhttp.Status.Created
- Definition Classes
- StatusCodes → StatusCodes
- def Delete: Method
- Definition Classes
- Methods → Methods
- def Forbidden: Status
- Definition Classes
- StatusCodes → StatusCodes
- def Get: Method
- Definition Classes
- Methods → Methods
- def InternalServerError: Status
- Definition Classes
- StatusCodes → StatusCodes
- def NoContent: Status
- Definition Classes
- StatusCodes → StatusCodes
- def NotFound: Status
- Definition Classes
- StatusCodes → StatusCodes
- def NotImplemented: Status
- Definition Classes
- StatusCodes → StatusCodes
- def OK: Ok
- Definition Classes
- StatusCodes → StatusCodes
- def Options: Method
- Definition Classes
- Methods → Methods
- def Patch: Method
- Definition Classes
- Methods → Methods
- def Post: Method
- Definition Classes
- Methods → Methods
- def Put: Method
- Definition Classes
- Methods → Methods
- def Unauthorized: Status
- Definition Classes
- StatusCodes → StatusCodes
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- final def badRequest[A, R](docs: Documentation, headers: ResponseHeaders[A])(implicit tupler: Tupler.Aux[ClientErrors, A, R]): Response[R]
- Definition Classes
- Responses
- implicit def booleanQueryString: QueryStringParam[Boolean]
- Definition Classes
- Urls
- def chainPaths[A, B](first: Path[A], second: Path[B])(implicit tupler: Tupler[A, B]): Path[Out]
- Definition Classes
- Urls → Urls
- def choiceResponse[A, B](responseA: Response[A], responseB: Response[B]): Response[Either[A, B]]
- Definition Classes
- Responses → Responses
- lazy val clientErrorsResponse: Response[ClientErrors]
- Definition Classes
- Errors
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def combineQueryStrings[A, B](first: QueryString[A], second: QueryString[B])(implicit tupler: Tupler[A, B]): QueryString[Out]
Concatenates two
QueryString
sConcatenates two
QueryString
s- Definition Classes
- Urls → Urls
- final def delete[UrlP, HeadersP, Out](url: Url[UrlP], docs: Documentation, headers: RequestHeaders[HeadersP])(implicit tuplerUH: Tupler.Aux[UrlP, HeadersP, Out]): Request[Out]
- Definition Classes
- Requests
- implicit def doubleQueryString: QueryStringParam[Double]
- Definition Classes
- Urls
- implicit def doubleSegment: Segment[Double]
- Definition Classes
- Urls
- def emptyRequest: RequestEntity[Unit]
- Definition Classes
- Requests → Requests
- def emptyRequestHeaders: RequestHeaders[Unit]
Always succeeds in extracting no information from the headers
Always succeeds in extracting no information from the headers
- Definition Classes
- Requests → Requests
- def emptyResponse: ResponseEntity[Unit]
- Definition Classes
- Responses → Responses
- def emptyResponseHeaders: ResponseHeaders[Unit]
- Definition Classes
- Responses → Responses
- def endpoint[A, B](request: Request[A], response: Response[B], docs: EndpointDocs): Endpoint[A, B]
- Definition Classes
- EndpointsWithCustomErrors → EndpointsWithCustomErrors
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def get[UrlP, HeadersP, Out](url: Url[UrlP], docs: Documentation, headers: RequestHeaders[HeadersP])(implicit tuplerUH: Tupler.Aux[UrlP, HeadersP, Out]): Request[Out]
- Definition Classes
- Requests
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def handleClientErrors(invalid: Invalid): RIO[Blocking, uzhttp.Response]
This method is called by endpoints when decoding a request failed.
This method is called by endpoints when decoding a request failed.
The provided implementation calls
clientErrorsResponse
to construct a response containing the errors.This method can be overridden to customize the error reporting logic.
- def handleServerError(throwable: Throwable): RIO[Blocking, uzhttp.Response]
This method is called by endpoints when an exception is thrown during request processing.
This method is called by endpoints when an exception is thrown during request processing.
The provided implementation calls serverErrorResponse to construct a response containing the error message.
This method can be overridden to customize the error reporting logic.
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- implicit def intQueryString: QueryStringParam[Int]
- Definition Classes
- Urls
- implicit def intSegment: Segment[Int]
- Definition Classes
- Urls
- final def internalServerError[A, R](docs: Documentation, headers: ResponseHeaders[A])(implicit tupler: Tupler.Aux[ServerError, A, R]): Response[R]
- Definition Classes
- Responses
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- implicit def longQueryString: QueryStringParam[Long]
- Definition Classes
- Urls
- implicit def longSegment: Segment[Long]
- Definition Classes
- Urls
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def ok[A, B, R](entity: ResponseEntity[A], docs: Documentation, headers: ResponseHeaders[B])(implicit tupler: Tupler.Aux[A, B, R]): Response[R]
- Definition Classes
- Responses
- def optRequestHeader(name: String, docs: Documentation = None): RequestHeaders[Option[String]]
- Definition Classes
- Requests → Requests
- def optResponseHeader(name: String, docs: Documentation = None): ResponseHeaders[Option[String]]
Response headers optionally containing a header with the given
name
.Response headers optionally containing a header with the given
name
. Client interpreters should model the header value asSome[String]
, orNone
if the response header is missing. Server interpreters should produce such a response header. Documentation interpreters should document this header.- Definition Classes
- Responses → Responses
- implicit def optionalQueryStringParam[A](implicit param: QueryStringParam[A]): QueryStringParam[Option[A]]
- Definition Classes
- Urls → Urls
- final def patch[UrlP, BodyP, HeadersP, UrlAndBodyPTupled, Out](url: Url[UrlP], entity: RequestEntity[BodyP], docs: Documentation, headers: RequestHeaders[HeadersP])(implicit tuplerUB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerUBH: Tupler.Aux[UrlAndBodyPTupled, HeadersP, Out]): Request[Out]
- Definition Classes
- Requests
- val path: Path[Unit]
- Definition Classes
- Urls
- implicit def pathPartialInvariantFunctor: PartialInvariantFunctor[Path]
- Definition Classes
- Urls → Urls
- final def post[UrlP, BodyP, HeadersP, UrlAndBodyPTupled, Out](url: Url[UrlP], entity: RequestEntity[BodyP], docs: Documentation, headers: RequestHeaders[HeadersP])(implicit tuplerUB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerUBH: Tupler.Aux[UrlAndBodyPTupled, HeadersP, Out]): Request[Out]
- Definition Classes
- Requests
- final def put[UrlP, BodyP, HeadersP, UrlAndBodyPTupled, Out](url: Url[UrlP], entity: RequestEntity[BodyP], docs: Documentation, headers: RequestHeaders[HeadersP])(implicit tuplerUB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerUBH: Tupler.Aux[UrlAndBodyPTupled, HeadersP, Out]): Request[Out]
- Definition Classes
- Requests
- def qs[A](name: String, docs: Documentation)(implicit value: QueryStringParam[A]): (Params) => Validated[A]
- Definition Classes
- Urls → Urls
- implicit lazy val queryStringParamPartialInvariantFunctor: PartialInvariantFunctor[QueryStringParam]
- Definition Classes
- Urls → Urls
- implicit def queryStringPartialInvariantFunctor: PartialInvariantFunctor[QueryString]
- Definition Classes
- Urls → Urls
- def remainingSegments(name: String = "", docs: Documentation = None): Path[String]
- Definition Classes
- Urls → Urls
- implicit def repeatedQueryStringParam[A, CC[X] <: Iterable[X]](implicit param: QueryStringParam[A], factory: Factory[A, CC[A]]): QueryStringParam[CC[A]]
- Definition Classes
- Urls → Urls
- def request[UrlP, BodyP, HeadersP, UrlAndBodyPTupled, Out](method: Method, url: Url[UrlP], entity: RequestEntity[BodyP] = emptyRequest, docs: Documentation = None, headers: RequestHeaders[HeadersP] = emptyRequestHeaders)(implicit tuplerUB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerUBH: Tupler.Aux[UrlAndBodyPTupled, HeadersP, Out]): Request[Out]
- Definition Classes
- Requests → Requests
- implicit def requestEntityPartialInvariantFunctor: PartialInvariantFunctor[RequestEntity]
- Definition Classes
- Requests → Requests
- def requestHeader(name: String, docs: Documentation = None): RequestHeaders[String]
- Definition Classes
- Requests → Requests
- implicit lazy val requestHeadersPartialInvariantFunctor: PartialInvariantFunctor[RequestHeaders]
- Definition Classes
- Requests → Requests
- implicit lazy val requestHeadersSemigroupal: Semigroupal[RequestHeaders]
- Definition Classes
- Requests → Requests
- implicit def requestPartialInvariantFunctor: PartialInvariantFunctor[Request]
- Definition Classes
- Requests → Requests
- def response[A, B, R](statusCode: StatusCode, entity: ResponseEntity[A], docs: Documentation, headers: ResponseHeaders[B])(implicit tupler: Tupler.Aux[A, B, R]): Response[R]
Server interpreters construct a response with the given status and entity.
Server interpreters construct a response with the given status and entity. Client interpreters accept a response only if it has a corresponding status code.
- statusCode
Response status code
- entity
Response entity
- docs
Response documentation
- headers
Response headers
- Definition Classes
- Responses → Responses
- implicit lazy val responseEntityInvariantFunctor: InvariantFunctor[ResponseEntity]
- Definition Classes
- Responses → Responses
- def responseHeader(name: String, docs: Documentation = None): ResponseHeaders[String]
Response headers containing a header with the given
name
.Response headers containing a header with the given
name
. Client interpreters should model the header value asString
, or fail if the response header is missing. Server interpreters should produce such a response header. Documentation interpreters should document this header.Example:
val versionedResource: Endpoint[Unit, (SomeResource, String)] = endpoint( get(path / "versioned-resource"), ok( jsonResponse[SomeResource], headers = responseHeader("ETag") ) )
- Definition Classes
- Responses → Responses
- implicit lazy val responseHeadersInvariantFunctor: PartialInvariantFunctor[ResponseHeaders]
- Definition Classes
- Responses → Responses
- implicit lazy val responseHeadersSemigroupal: Semigroupal[ResponseHeaders]
- Definition Classes
- Responses → Responses
- implicit lazy val responseInvariantFunctor: InvariantFunctor[Response]
- Definition Classes
- Responses → Responses
- def segment[A](name: String = "", docs: Documentation = None)(implicit A: Segment[A]): Path[A]
- Definition Classes
- Urls → Urls
- implicit lazy val segmentPartialInvariantFunctor: PartialInvariantFunctor[Segment]
- Definition Classes
- Urls → Urls
- lazy val serverErrorResponse: Response[ServerError]
- Definition Classes
- Errors
- def staticPathSegment(segment: String): Path[Unit]
- Definition Classes
- Urls → Urls
- implicit def stringQueryString: QueryStringParam[String]
- Definition Classes
- Urls → Urls
- implicit val stringSegment: Segment[String]
- Definition Classes
- Urls → Urls
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def textRequest: RequestEntity[String]
- Definition Classes
- Requests → Requests
- def textResponse: ResponseEntity[String]
- Definition Classes
- Responses → Responses
- def toString(): String
- Definition Classes
- AnyRef → Any
- implicit def urlPartialInvariantFunctor: PartialInvariantFunctor[Url]
- Definition Classes
- Urls → Urls
- def urlWithQueryString[A, B](path: Path[A], qs: QueryString[B])(implicit tupler: Tupler[A, B]): Url[Out]
Builds an URL from the given path and query string
Builds an URL from the given path and query string
- Definition Classes
- Urls → Urls
- val utf8Name: String
- Definition Classes
- Urls
- implicit def uuidQueryString: QueryStringParam[UUID]
- Definition Classes
- Urls
- implicit def uuidSegment: Segment[UUID]
- Definition Classes
- Urls
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- 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 wheneverFound[A](responseA: Response[A], notFoundDocs: Documentation): Response[Option[A]]
- Definition Classes
- Responses