Packages

trait Urls extends algebra.Urls

Interpreter for algebra.Urls

Source
Urls.scala
Type Hierarchy
Ordering
  1. Grouped
  2. Alphabetic
  3. By Inheritance
Inherited
  1. Urls
  2. Urls
  3. PartialInvariantFunctorSyntax
  4. InvariantFunctorSyntax
  5. AnyRef
  6. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. implicit class InvariantFunctorSyntax[A, F[_]] extends AnyRef

    Extension methods for values of type F[A] for which there is an implicit InvariantFunctor[F] instance.

    Extension methods for values of type F[A] for which there is an implicit InvariantFunctor[F] instance.

    Definition Classes
    InvariantFunctorSyntax
  2. implicit class PartialInvariantFunctorSyntax[A, F[_]] extends AnyRef
  3. implicit class PathOps[A] extends AnyRef

    Convenient methods for Paths.

    Convenient methods for Paths.

    Definition Classes
    Urls
  4. implicit class QueryStringSyntax[A] extends AnyRef

    Extension methods on QueryString.

    Extension methods on QueryString.

    Definition Classes
    Urls
  5. case class DocumentedParameter(name: String, required: Boolean, description: Option[String], schema: Schema) extends Product with Serializable

    name

    Name of the parameter

    required

    Whether this parameter is required or not (MUST be true for path parameters)

  6. case class DocumentedQueryString(parameters: List[DocumentedParameter]) extends Product with Serializable

    parameters

    List of query string parameters

  7. case class DocumentedQueryStringParam[A](schema: Schema, isRequired: Boolean, encoder: Encoder[A, Option[Value]]) extends Product with Serializable

    A query string parameter documentation description for type A

    A query string parameter documentation description for type A

    schema

    Schema that corresponds to type A

    isRequired

    Whether the query string parameter is required

    encoder

    JSON encoder for query string parameter value, primarily used for encoding of the parameter's default value. Result of the encoding is optional since the empty value of optional query string parameter should result in the empty encoded value.

  8. case class DocumentedUrl(path: List[Either[String, DocumentedParameter]], queryParameters: List[DocumentedParameter]) extends Product with Serializable

    path

    List of path segments. Left is a static segment, right is a path parameter

    queryParameters

    Query string parameters

  9. type Path[A] = DocumentedUrl

    An URL path carrying an A information

    An URL path carrying an A information

    Values of type Path[A] can be constructed by the operations path, segment, and remainingSegments.

    path / "user" / segment[UUID]("id")
    • Server interpreters raise an error if they can’t parse the incoming request path as a value of type A. By default, they produce a Bad Request (400) response with a list of error messages in a JSON array. Refer to the documentation of your server interpreter to customize this behavior.
    Definition Classes
    UrlsUrls
    Note

    This type has implicit methods provided by the PathOps, InvariantFunctorSyntax, and the PartialInvariantFunctorSyntax classes.

  10. type QueryString[A] = DocumentedQueryString

    A query string carrying an A information

    A query string carrying an A information

    QueryString values can be created with the qs operation, and can be combined with the & operation:

    val queryPageAndLang: QueryString[(Int, Option[String])] =
      qs[Int]("page") & qs[Option[String]]("lang")
    • Server interpreters raise an error if they can’t parse the incoming request query string parameters as a value of type A. By default, they produce a Bad Request (400) response with a list of error messages in a JSON array. Refer to the documentation of your server interpreter to customize this behavior.
    Definition Classes
    UrlsUrls
    Note

    This type has implicit methods provided by the QueryStringSyntax, InvariantFunctorSyntax, and the PartialInvariantFunctorSyntax classes.

  11. type QueryStringParam[A] = DocumentedQueryStringParam[A]

    A query string parameter codec for type A.

    A query string parameter codec for type A.

    The trait Urls provides implicit instances of type QueryStringParam[A] for basic types (e.g., Int, String, etc.). You can create additional instances by transforming or refining the existing instances with xmap and xmapPartial.

    Definition Classes
    UrlsUrls
    Note

    This type has implicit methods provided by the PartialInvariantFunctorSyntax and the InvariantFunctorSyntax classes.

  12. type Segment[A] = Schema

    An URL path segment codec for type A.

    An URL path segment codec for type A.

    The trait Urls provides implicit instances of Segment[A] for basic types (e.g., Int, String, etc.). You can create additional instances by transforming or refining the existing instances with xmap and xmapPartial.

    Definition Classes
    UrlsUrls
    Note

    This type has implicit methods provided by the PartialInvariantFunctorSyntax and the InvariantFunctorSyntax classes.

  13. type Url[A] = DocumentedUrl

    An URL carrying an A information

    An URL carrying an A information

    Values of type URL[A] are typically constructed by first using the path constructor and then chaining it with segments and query parameters.

    path / "users" / segment[UUID]("id") /? qs[String]("apiKey")
    • Server interpreters raise an error if they can’t parse the incoming request URL as a value of type A. By default, they produce a Bad Request (400) response with a list of error messages in a JSON array. Refer to the documentation of your server interpreter to customize this behavior.
    Definition Classes
    UrlsUrls
    Note

    This type has implicit methods provided by the PartialInvariantFunctorSyntax and InvariantFunctorSyntax classes.

  14. type WithDefault[A] = A

    This type is necessary to express different perspectives of servers and clients on optional query string parameters with default value:

    This type is necessary to express different perspectives of servers and clients on optional query string parameters with default value:

    • Client interpreters should define it as Option[A] and omit query string parameters with default value that are empty
    • Server interpreters should define it as A and accept incoming requests whose query string parameters with default value are missing, while providing the defined default value
    • Documentation interpreters should mark the parameter as optional and document the provided default value
    Definition Classes
    UrlsUrls

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from Urls toany2stringadd[Urls] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (Urls, B)
    Implicit
    This member is added by an implicit conversion from Urls toArrowAssoc[Urls] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def booleanQueryString: QueryStringParam[Boolean]

    Query string parameter containing a Boolean value

    Query string parameter containing a Boolean value

    Definition Classes
    UrlsUrls
  8. def chainPaths[A, B](first: Path[A], second: Path[B])(implicit tupler: Tupler[A, B]): Path[Out]

    Chains the two paths

    Chains the two paths

    Definition Classes
    UrlsUrls
  9. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
  10. def combineQueryStrings[A, B](first: QueryString[A], second: QueryString[B])(implicit tupler: Tupler[A, B]): QueryString[Out]

    Concatenates two QueryStrings

    Concatenates two QueryStrings

    Definition Classes
    UrlsUrls
  11. def doubleQueryString: QueryStringParam[Double]

    Codec for query string parameters of type Double

    Codec for query string parameters of type Double

    Definition Classes
    UrlsUrls
  12. def doubleSegment: Segment[Double]

    Path segment codec for type Double

    Path segment codec for type Double

    Definition Classes
    UrlsUrls
  13. def ensuring(cond: (Urls) => Boolean, msg: => Any): Urls
    Implicit
    This member is added by an implicit conversion from Urls toEnsuring[Urls] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  14. def ensuring(cond: (Urls) => Boolean): Urls
    Implicit
    This member is added by an implicit conversion from Urls toEnsuring[Urls] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  15. def ensuring(cond: Boolean, msg: => Any): Urls
    Implicit
    This member is added by an implicit conversion from Urls toEnsuring[Urls] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  16. def ensuring(cond: Boolean): Urls
    Implicit
    This member is added by an implicit conversion from Urls toEnsuring[Urls] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  17. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  19. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  20. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  21. def intQueryString: QueryStringParam[Int]

    Ability to define Int query string parameters

    Ability to define Int query string parameters

    Definition Classes
    UrlsUrls
  22. def intSegment: Segment[Int]

    Path segment codec for type Int

    Path segment codec for type Int

    Definition Classes
    UrlsUrls
  23. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  24. def longQueryString: QueryStringParam[Long]

    Query string parameter containing a Long value

    Query string parameter containing a Long value

    Definition Classes
    UrlsUrls
  25. def longSegment: Segment[Long]

    Path segment codec for type Long

    Path segment codec for type Long

    Definition Classes
    UrlsUrls
  26. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  27. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  28. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  29. def optQsWithDefault[A](name: String, default: A, docs: Documentation = None)(implicit value: QueryStringParam[A]): QueryString[WithDefault[A]]

    Builds a QueryString with one optional parameter, which has a default value.

    Builds a QueryString with one optional parameter, which has a default value.

    Examples:

    optQsWithDefault[Int]("page", 1) // optional `page` parameter, with default value 1
    A

    Type of the value carried by the parameter

    name

    Parameter’s name

    Definition Classes
    UrlsUrls
  30. implicit def optionalQueryStringParam[A](implicit param: QueryStringParam[A]): QueryStringParam[Option[A]]

    Make a query string parameter optional:

    Make a query string parameter optional:

    path / "articles" /? qs[Option[Int]]("page")
    • Client interpreters must omit optional query string parameters that are empty.
    • Server interpreters must accept incoming requests whose optional query string parameters are missing, and they must report a failure for incoming requests whose optional query string parameters are present, but malformed,
    • Documentation interpreters should mark the parameter as optional.
    Definition Classes
    UrlsUrls
  31. val path: Path[Unit]

    An empty path.

    An empty path.

    Useful to begin a path definition:

    path / "foo" / segment[Int] /? qs[String]("bar")
    Definition Classes
    Urls
  32. implicit lazy val pathPartialInvariantFunctor: PartialInvariantFunctor[Path]

    Provides xmap and xmapPartial operations.

    Provides xmap and xmapPartial operations.

    Definition Classes
    UrlsUrls
    See also

    PartialInvariantFunctorSyntax and InvariantFunctorSyntax

  33. def qs[A](name: String, docs: Documentation)(implicit value: QueryStringParam[A]): QueryString[A]

    Builds a QueryString with one parameter.

    Builds a QueryString with one parameter.

    Examples:

    qs[Int]("page")            // mandatory `page` parameter
    qs[Option[String]]("lang") // optional `lang` parameter
    qs[List[Long]]("id")       // repeated `id` parameter
    A

    Type of the value carried by the parameter

    name

    Parameter’s name

    Definition Classes
    UrlsUrls
  34. implicit lazy val queryStringParamPartialInvariantFunctor: PartialInvariantFunctor[QueryStringParam]

    Provides xmap and xmapPartial operations.

    Provides xmap and xmapPartial operations.

    Definition Classes
    UrlsUrls
    See also

    PartialInvariantFunctorSyntax and InvariantFunctorSyntax

  35. implicit lazy val queryStringPartialInvariantFunctor: PartialInvariantFunctor[QueryString]

    Provides xmap and xmapPartial operations.

    Provides xmap and xmapPartial operations.

    Definition Classes
    UrlsUrls
    See also

    PartialInvariantFunctorSyntax and InvariantFunctorSyntax

  36. def remainingSegments(name: String, docs: Documentation): Path[String]

    The remaining segments of the path.

    The remaining segments of the path. The String value carried by this Path is still URL-encoded.

    Definition Classes
    UrlsUrls
  37. implicit def repeatedQueryStringParam[A, CC[X] <: Iterable[X]](implicit param: QueryStringParam[A], factory: Factory[A, CC[A]]): QueryStringParam[CC[A]]

    Support query string parameters with multiple values:

    Support query string parameters with multiple values:

    path / "articles" /? qs[List[Long]]("id")
    • Server interpreters must accept incoming requests where such parameters are missing (in such a case, its value is an empty collection), and report a failure if at least one value is malformed.
    Definition Classes
    UrlsUrls
  38. def segment[A](name: String, docs: Documentation)(implicit A: Segment[A]): Path[A]

    A path segment carrying an A information

    A path segment carrying an A information

    Definition Classes
    UrlsUrls
  39. implicit lazy val segmentPartialInvariantFunctor: PartialInvariantFunctor[Segment]

    Provides xmap and xmapPartial operations.

    Provides xmap and xmapPartial operations.

    Definition Classes
    UrlsUrls
    See also

    PartialInvariantFunctorSyntax and InvariantFunctorSyntax

  40. def staticPathSegment(segment: String): Path[Unit]

    A path segment whose value is the given segment

    A path segment whose value is the given segment

    Definition Classes
    UrlsUrls
  41. def stringQueryString: QueryStringParam[String]

    Ability to define String query string parameters

    Ability to define String query string parameters

    Definition Classes
    UrlsUrls
  42. def stringSegment: Segment[String]

    Path segment codec for type String

    Path segment codec for type String

    • Server interpreters should return an URL-decoded string value,
    • Client interpreters should take an URL-decoded string value.
    Definition Classes
    UrlsUrls
  43. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  44. def toString(): String
    Definition Classes
    AnyRef → Any
  45. implicit lazy val urlPartialInvariantFunctor: PartialInvariantFunctor[Url]

    Provides xmap and xmapPartial operations

    Provides xmap and xmapPartial operations

    Definition Classes
    UrlsUrls
    See also

    PartialInvariantFunctorSyntax and InvariantFunctorSyntax

  46. 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
    UrlsUrls
  47. def uuidQueryString: QueryStringParam[UUID]

    Ability to define UUID query string parameters

    Ability to define UUID query string parameters

    Definition Classes
    UrlsUrls
  48. def uuidSegment: Segment[UUID]

    Path segment codec for type UUID

    Path segment codec for type UUID

    Definition Classes
    UrlsUrls
  49. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  50. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  51. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

  2. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from Urls toStringFormat[Urls] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @deprecated @inline()
    Deprecated

    (Since version 2.12.16) Use formatString.format(value) instead of value.formatted(formatString), or use the f"" string interpolator. In Java 15 and later, formatted resolves to the new method in String which has reversed parameters.

  3. def [B](y: B): (Urls, B)
    Implicit
    This member is added by an implicit conversion from Urls toArrowAssoc[Urls] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use -> instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.

Inherited from algebra.Urls

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd fromUrls to any2stringadd[Urls]

Inherited by implicit conversion StringFormat fromUrls to StringFormat[Urls]

Inherited by implicit conversion Ensuring fromUrls to Ensuring[Urls]

Inherited by implicit conversion ArrowAssoc fromUrls to ArrowAssoc[Urls]

Types

Types introduced by the algebra

Operations

Operations creating and transforming values

Ungrouped