package sihl

  1. Overview
  2. Docs
The modular functional web framework

Install

Dune Dependency

Authors

Maintainers

Sources

sihl-queue-0.1.5.tbz
sha256=bfa7bde9af02bb83d5ca39d54797b05b43317f033d93d24ca86ca42ff8ef83a1
sha512=6bb8727f65116e8042aa1fb77b3c14851ce5238f7b412adadf0f8e5b52d5310e8f06056c96bf76a82ffd7096753f49b2b0482f41e18ee1ca94310b874fe81bf9

doc/sihl.server/Server/index.html

Module ServerSource

The web server service contains a HTTP server implementation.

Service Installation

Use the provided Sihl.Web.Server.MakeOpium to create a web server service that uses https://github.com/rgrinberg/opium/. You need to inject a Sihl.Log.Service.Sig.SERVICE and a Sihl.Cmd.Service.Sig.SERVICE. Use the default implementation provided by Sihl:

  module Log = Sihl.Log.Service.Make ()
  module Cmd = Sihl.Cmd.Service.Make ()
  module WebServer = Sihl.Web.Server.Service.Make (Cmd)
Sourcemodule Service : sig ... end

Usage

  let hello_page =
    Sihl.Web.Route.get "/hello/" (fun _ ->
        Sihl.Web.Res.(html |> set_body "Hello!") |> Lwt.return)

  let hello_api =
    Sihl.Web.Route.get "/hello/" (fun _ ->
        Sihl.Web.Res.(json |> set_body {|{"msg":"Hello!"}|}) |> Lwt.return)

  let endpoints = [ ("/page", [ hello_page ], []); ("/api", [ hello_api ], []) ]

  WebServer.register_endpoints endpoints;
  let* () = WebServer.start_server ctx in
  ...
Sourcetype routes = Http.Route.t list
Sourcetype middleware_stack = Middleware.stack
Sourcetype endpoint = string * Http.Route.t list * Middleware.stack
OCaml

Innovation. Community. Security.