Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
include module type of struct include Resto.Path end
Parametrized path to services.
type ('prefix, 'params) t = ('prefix, 'params) Resto.Path.t
The type of a path. Here "path" is to be taken in the sense of a slash-separated sequence of segments of a URI/URL.
type ('prefix, 'params) path = ('prefix, 'params) t
type 'prefix context = ('prefix, 'prefix) path
val root : unit context
root
is the basis to build paths upon. It is the "Nil
" of path construction.
val open_root : 'a context
add_suffix p s
is a path in which s
has been appended to the sequence of segments described by p
.
(/)
is an infix operator for add_suffix
.
val add_arg :
('prefix, 'params) path ->
'a Resto.Arg.t ->
('prefix, 'params * 'a) path
add_arg p a
is a path in which a segment representing a value of type a
has been appended to the sequence of segments described by p
.
This is intended for use by services. Specifically, a service that is parameterized over a value of type ty
is attached to a path that includes an argument for a value of type ty
. When the service is called, Resto decodes the argument and passes its value to the service.
val (/:) :
('prefix, 'params) path ->
'a Resto.Arg.t ->
('prefix, 'params * 'a) path
(/:)
is an infix operator for add_arg
.
val add_final_args :
('prefix, 'params) path ->
'a Resto.Arg.t ->
('prefix, 'params * 'a list) path
add_final_args p a
is a path in which an arbitrary sequence of segments representing values of type a
has been appended to the sequence of segments described by p
.
A similar use to the add_arg
is intended, but for a list of values rather than a single value.
Note that, as the name suggests, add_final_args
is final: you cannot add further suffixes or arguments to the resulting path. Attempting to do so raises Invalid_arg
. Similarly, using the resulting path as a prefix
(see below) raises the same exception. This is because paths built with add_final_args
consume all the suffix as an unterminated list of arguments, there cannot be further suffixes or arguments.
val (/:*) :
('prefix, 'params) path ->
'a Resto.Arg.t ->
('prefix, 'params * 'a list) path
( /:* )
is an infix operator for add_final_args
.
prefix p q
is a path in which the sequence of segments of p
is followed by the sequence of segments of q
.