Module EzAPIServer

include module type of struct include EzServer end
val server : ?catch:(string -> exn -> string EzAPIServerUtils.Answer.t Lwt.t) -> ?allow_origin:EzAPIServerUtils.Cors.allow_kind -> ?footer:string -> ?addr:string -> (int * EzAPIServerUtils.server_kind) list -> unit Lwt.t
val shutdown : unit -> unit Lwt.t
val set_debug : unit -> unit
include module type of struct include EzAPIServerUtils end
module Timings = EzAPIServerUtils.Timings
module Directory = EzAPIServerUtils.Directory
module Answer = EzAPIServerUtils.Answer
module GMTime = EzAPIServerUtils.GMTime
module Cors = EzAPIServerUtils.Cors

Server

type server_kind = EzAPIServerUtils.server_kind =
  1. | API of Directory.t
  2. | Root of string * string option
type server = EzAPIServerUtils.server = {
  1. server_port : int;
  2. server_kind : server_kind;
}

Utils

val return : ?code:int -> ?headers:(string * string) list -> 'a -> 'a Answer.t Lwt.t
val return_ok : ?code:int -> ?headers:(string * string) list -> 'a -> ('a, 'b) Stdlib.result Answer.t Lwt.t
val return_error : ?content:'a -> ?headers:(string * string) list -> int -> ('b, 'a option) Stdlib.result Answer.t Lwt.t

Register Handler

val empty : 'a Directory.directory
val register_res : ('a, 'b, 'c, 'd, [< EzAPI.Security.scheme ] as 'e) EzAPI.service -> ('a -> 'e list -> 'b -> ('c, 'd) Stdlib.result Answer.t Lwt.t) -> Directory.t -> (Directory.t, Dir_types.Step.t list * Dir_types.conflict) Stdlib.result
val register_ws_res : ('a, 'b, 'c, 'd, [< EzAPI.Security.scheme ] as 'e) EzAPI.service -> react:('a -> 'e list -> 'b -> ('c, 'd) Stdlib.result Lwt.t) -> bg:('a -> 'e list -> (('c, 'd) Stdlib.result -> unit) -> unit Lwt.t) -> ?onclose:('a -> unit Lwt.t) -> ?step:float -> Directory.t -> (Directory.t, Dir_types.Step.t list * Dir_types.conflict) Stdlib.result
exception Conflict of Dir_types.Step.t list * Dir_types.conflict
val register : ('a, 'b, 'c, 'd, [< EzAPI.Security.scheme ] as 'e) EzAPI.service -> ('a -> 'e list -> 'b -> ('c, 'd) Stdlib.result Answer.t Lwt.t) -> Directory.t -> Directory.t
val register_ws : ('a, 'b, 'c, 'd, [< EzAPI.Security.scheme ] as 'e) EzAPI.service -> ?onclose:('a -> unit Lwt.t) -> ?step:float -> react:('a -> 'e list -> 'b -> ('c, 'd) Stdlib.result Lwt.t) -> bg:('a -> 'e list -> (('c, 'd) Stdlib.result -> unit) -> unit Lwt.t) -> Directory.t -> Directory.t
module Legacy = EzAPIServerUtils.Legacy
val handle : ?meth:([< `DELETE | `GET | `HEAD | `OPTIONS | `PATCH | `POST | `PUT ] as 'a) -> ?content_type:string -> ?ws: (?onclose:(unit -> unit Lwt.t) -> ?step:float -> ?body:string -> react: (string -> (Directory.ws_frame, Directory.handler_error) Stdlib.result Lwt.t) -> bg: (((Directory.ws_frame, Directory.handler_error) Stdlib.result -> unit) -> unit Lwt.t) -> Uuidm.t -> 'b Lwt.t) -> ?allow_origin: [< `all | `custom of string list | `default | `none | `origin default origin ] -> file: (?meth:'a -> ?default:string -> string -> string list -> string Answer.t Lwt.t) -> server_kind -> Req.t -> string list -> string -> [> `http of string Answer.t | `ws of 'b ] Lwt.t