add custom middleware - count requests

This commit is contained in:
Kaustubh Maske Patil 2025-05-07 13:31:37 +05:30
parent bee1e363df
commit 73f68e201f

View File

@ -1,11 +1,23 @@
let count = ref 0
(* middleware *)
let count_requests inner_handler request =
count := !count + 1;
inner_handler request
let () = let () =
Dream.run Dream.run
@@ Dream.logger @@ Dream.logger
@@ count_requests
@@ Dream.router [ @@ Dream.router [
Dream.get "/" Dream.get "/"
(fun _ -> (fun _ ->
Dream.html "Hello, world!"); Dream.html "Hello, world!");
Dream.get "/count"
(fun _ ->
Dream.html (Printf.sprintf "Saw %i requests" !count));
Dream.get "/echo/:word" Dream.get "/echo/:word"
(fun request -> (fun request ->
Dream.html (Dream.param request "word")); Dream.html (Dream.param request "word"));