package cohttp-lwt

  1. Overview
  2. Docs

Module Server.MakeSource

Parameters

module IO : S.IO

Signature

Sourcemodule IO = IO
include Cohttp.Generic.Server.S with type body = Body.t and module IO := IO and type response = Http.Response.t * Body.t
Sourcetype body = Body.t
Sourcetype response = Http.Response.t * Body.t
Sourcetype response_action = [
  1. | `Expert of Http.Response.t * (IO.ic -> IO.oc -> unit IO.t)
  2. | `Response of response
]

A request handler can respond in two ways:

  • Using `Response, with a Response.t and a body.
  • Using `Expert, with a Response.t and an IO function that is expected to write the response body. The IO function has access to the underlying IO.ic and IO.oc, which allows writing a response body more efficiently, stream a response or to switch protocols entirely (e.g. websockets). Processing of pipelined requests continue after the unit IO.t is resolved. The connection can be closed by closing the IO.ic.
Sourcetype t
Sourceval make_response_action : ?conn_closed:(conn -> unit) -> callback:(conn -> Http.Request.t -> body -> response_action IO.t) -> unit -> t
Sourceval make_expert : ?conn_closed:(conn -> unit) -> callback: (conn -> Http.Request.t -> body -> (Http.Response.t * (IO.ic -> IO.oc -> unit IO.t)) IO.t) -> unit -> t
Sourceval make : ?conn_closed:(conn -> unit) -> callback:(conn -> Http.Request.t -> body -> response IO.t) -> unit -> t
Sourceval respond : ?headers:Http.Header.t -> status:Http.Status.t -> body:body -> unit -> response IO.t

respond ?headers ~status ~body will respond to an HTTP request with the given status code and response body. The transfer encoding will be detected from the body value and set to chunked encoding if it cannot be determined immediately. You can override the encoding by supplying an appropriate Content-length or Transfer-encoding in the headers parameter.

Sourceval respond_string : ?headers:Http.Header.t -> status:Http.Status.t -> body:string -> unit -> response IO.t
Sourceval callback : t -> IO.conn -> IO.ic -> IO.oc -> unit IO.t
Sourceval resolve_local_file : docroot:string -> uri:Uri.t -> string

Resolve a URI and a docroot into a concrete local filename.

  • deprecated Please use Cohttp.Path.resolve_local_file.
Sourceval respond_error : ?headers:Http.Header.t -> ?status:Http.Status.t -> body:string -> unit -> (Http.Response.t * body) IO.t
Sourceval respond_redirect : ?headers:Http.Header.t -> uri:Uri.t -> unit -> (Http.Response.t * body) IO.t
Sourceval respond_need_auth : ?headers:Http.Header.t -> auth:Cohttp.Auth.challenge -> unit -> (Http.Response.t * body) IO.t
Sourceval respond_not_found : ?uri:Uri.t -> unit -> (Http.Response.t * body) IO.t
OCaml

Innovation. Community. Security.