package resto

  1. Overview
  2. Docs

Module Resto.MakeServiceSource

Services.

Parameters

Signature

Sourcetype (+'meth, 'prefix, 'params, 'query, 'input, 'output, 'error) t constraint 'meth = [< meth ]
Sourcetype (+'meth, 'prefix, 'params, 'query, 'input, 'output, 'error) service = ('meth, 'prefix, 'params, 'query, 'input, 'output, 'error) t
Sourceval meth : ('meth, 'prefix, 'params, 'query, 'input, 'output, 'error) service -> 'meth
Sourceval query : ('meth, 'prefix, 'params, 'query, 'input, 'output, 'error) service -> 'query Query.t
Sourcetype _ input =
  1. | No_input : unit input
  2. | Input : 'input Encoding.t -> 'input input
Sourceval input_encoding : ('meth, 'prefix, 'params, 'query, 'input, 'output, 'error) service -> 'input input
Sourceval output_encoding : ('meth, 'prefix, 'params, 'query, 'input, 'output, 'error) service -> 'output Encoding.t
Sourceval error_encoding : ('meth, 'prefix, 'params, 'query, 'input, 'output, 'error) service -> 'error Encoding.t
Sourceval get_service : ?description:string -> query:'query Query.t -> output:'output Encoding.t -> error:'error Encoding.t -> ('prefix, 'params) Path.t -> ([ `GET ], 'prefix, 'params, 'query, unit, 'output, 'error) service

get_service ?description ~query ~output ~error path is a GET service that is intended to seat at the URI described by path and receive the additional parameters described by query. The value output (resp. error) describe the representation of the successful (resp. failed) returned value for the service.

Note that, whilst get_service declares a service, the resulting service is not registered yet. This is handled in Resto_directory.

post_service, delete_service, put_service, and patch_service are similar to get_service but for the other HTTP methods.

Note that some of these functions take an additional input argument. This is only for the services with methods that expect additional parameters. It is used internally to encode/decode additional parameters passed in a dedicated payload rather than in the path/query parameters.

Sourceval post_service : ?description:string -> query:'query Query.t -> input:'input Encoding.t -> output:'output Encoding.t -> error:'error Encoding.t -> ('prefix, 'params) Path.t -> ([ `POST ], 'prefix, 'params, 'query, 'input, 'output, 'error) service
Sourceval delete_service : ?description:string -> query:'query Query.t -> output:'output Encoding.t -> error:'error Encoding.t -> ('prefix, 'params) Path.t -> ([ `DELETE ], 'prefix, 'params, 'query, unit, 'output, 'error) service
Sourceval patch_service : ?description:string -> query:'query Query.t -> input:'input Encoding.t -> output:'output Encoding.t -> error:'error Encoding.t -> ('prefix, 'params) Path.t -> ([ `PATCH ], 'prefix, 'params, 'query, 'input, 'output, 'error) service
Sourceval put_service : ?description:string -> query:'query Query.t -> input:'input Encoding.t -> output:'output Encoding.t -> error:'error Encoding.t -> ('prefix, 'params) Path.t -> ([ `PUT ], 'prefix, 'params, 'query, 'input, 'output, 'error) service
Sourceval prefix : ('prefix, 'inner_prefix) Path.t -> ('meth, 'inner_prefix, 'params, 'query, 'input, 'output, 'error) service -> ('meth, 'prefix, 'params, 'query, 'input, 'output, 'error) service
Sourceval subst0 : ([< meth ] as 'm, 'p, 'p, 'q, 'i, 'o, 'e) service -> ('m, 'p2, 'p2, 'q, 'i, 'o, 'e) service
Sourceval subst1 : ([< meth ] as 'm, 'p, 'p * 'a, 'q, 'i, 'o, 'e) service -> ('m, 'p2, 'p2 * 'a, 'q, 'i, 'o, 'e) service
Sourceval subst2 : ([< meth ] as 'm, 'p, ('p * 'a) * 'b, 'q, 'i, 'o, 'e) service -> ('m, 'p2, ('p2 * 'a) * 'b, 'q, 'i, 'o, 'e) service
Sourceval subst3 : ([< meth ] as 'm, 'p, (('p * 'a) * 'b) * 'c, 'q, 'i, 'o, 'e) service -> ('m, 'p2, (('p2 * 'a) * 'b) * 'c, 'q, 'i, 'o, 'e) service
Sourcetype ('prefix, 'params, 'error) description_service = ([ `GET ], 'prefix, 'params * string list, Description.request, unit, Encoding.schema Description.directory, 'error) service
Sourceval description_service : ?description:string -> 'error Encoding.t -> ('prefix, 'params) Path.t -> ('prefix, 'params, 'error) description_service
Sourcetype 'input request = {
  1. meth : meth;
  2. uri : Uri.t;
  3. input : 'input input;
}
Sourceval forge_request : ('meth, unit, 'params, 'query, 'input, 'output, 'error) service -> ?base:Uri.t -> 'params -> 'query -> 'input request
Sourceval forge_partial_request : ('meth, 'prefix, 'params, 'query, 'input, 'output, 'error) service -> ?base:Uri.t -> 'params -> 'query -> 'input request
Sourcemodule Internal : sig ... end
OCaml

Innovation. Community. Security.