From 6cbf85034084e2096b331352f222411201697951 Mon Sep 17 00:00:00 2001 From: Calascibetta Romain Date: Fri, 21 Feb 2025 10:33:20 +0100 Subject: [PATCH] Fix examples --- README.md | 29 +++++++++++++++++++++++------ examples/01-hello/main.ml | 8 +++++--- examples/02-counter/main.ml | 2 +- examples/03-fail/main.ml | 2 +- examples/04-device/main.ml | 2 +- examples/06-caqti/foo.sqlite | Bin 8192 -> 0 bytes examples/06-caqti/main.ml | 2 +- examples/07-deflate/main.ml | 2 +- examples/08-digest/main.ml | 2 +- examples/09-jwt/cookie.txt | 5 ----- examples/09-jwt/foo.json | 2 -- examples/10-route/main.ml | 2 +- examples/11-stream/main.ml | 2 +- examples/12-static/main.ml | 2 +- 14 files changed, 37 insertions(+), 25 deletions(-) delete mode 100644 examples/06-caqti/foo.sqlite delete mode 100644 examples/09-jwt/cookie.txt delete mode 100644 examples/09-jwt/foo.json diff --git a/README.md b/README.md index 1614a01..d300e0d 100644 --- a/README.md +++ b/README.md @@ -9,21 +9,31 @@ However, we do not recommend using this project in production. Vif is a small program that runs an OCaml script and launches a Web server from it. The main idea is to be able to set up a typed Web server as quickly as possible (note that we use [hurl][hurl], an HTTP client in OCaml) -```ocaml +```shell $ opam pin add -y https://github.com/robur-coop/vif $ opam pin add -y https://github.com/robur-coop/hurl $ opam install vif hurl $ cat >main.ml < default ] + let () = Miou_unix.run @@ fun () -> - Vif.run ~default [] () + Vif.run routes () ;; EOF $ vif --pid vif.pid main.ml & @@ -31,7 +41,7 @@ $ hurl http://localhost:8080/ HTTP/1.1 200 OK connection: close -content-length: 13 +content-length: 12 content-type: text/html Hello World! @@ -39,4 +49,11 @@ Hello World! $ kill -SIGINT $(cat vid.pid) ``` +### Examples + +The [examples][./examples] folder contains several examples of the use of `vif`. +It shows the management of more complex requests (json, multipart-form, etc.) as +well as the use of an SQL database with [caqti][caqti]. + [hurl]: https://github.com/robur-coop/hurl +[caqti]: https://github.com/paurkedal/ocaml-caqti/ diff --git a/examples/01-hello/main.ml b/examples/01-hello/main.ml index 3225ae0..d11b2e9 100644 --- a/examples/01-hello/main.ml +++ b/examples/01-hello/main.ml @@ -3,16 +3,18 @@ open Vif ;; let default req _server () = - let* () = Response.with_string req "Hello World!\n" in + let str = "Hello World!\n" in + let* () = Response.with_string req str in Response.respond `OK ;; let routes = let open Vif.U in let open Vif.R in - let open Vif.Content_type in + let open Vif.T in [ get (rel /?? nil) --> default ] ;; let () = Miou_unix.run @@ fun () -> - Vif.run routes () ;; + Vif.run routes () +;; diff --git a/examples/02-counter/main.ml b/examples/02-counter/main.ml index e2996e3..4db5acb 100644 --- a/examples/02-counter/main.ml +++ b/examples/02-counter/main.ml @@ -15,7 +15,7 @@ let default req _server () = let routes = let open Vif.U in let open Vif.R in - let open Vif.Content_type in + let open Vif.T in [ get (rel /?? nil) --> default ] let () = Miou_unix.run @@ fun () -> diff --git a/examples/03-fail/main.ml b/examples/03-fail/main.ml index 5b103e8..540910e 100644 --- a/examples/03-fail/main.ml +++ b/examples/03-fail/main.ml @@ -11,7 +11,7 @@ let default req server () = raise Foo ;; let routes = let open Vif.U in let open Vif.R in - let open Vif.Content_type in + let open Vif.T in [ get (rel /?? nil) --> default ] ;; diff --git a/examples/04-device/main.ml b/examples/04-device/main.ml index a0d322b..847f0e3 100644 --- a/examples/04-device/main.ml +++ b/examples/04-device/main.ml @@ -18,7 +18,7 @@ let default req server () = let routes = let open Vif.U in let open Vif.R in - let open Vif.Content_type in + let open Vif.T in [ get (rel /?? nil) --> default ] let () = diff --git a/examples/06-caqti/foo.sqlite b/examples/06-caqti/foo.sqlite deleted file mode 100644 index c0386610ccc17309ce6115e7a723efa8c63bdcbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmeI#uL=S|5C-s>-SaNVSj4(uISm#Oi@{T_S=4)h6Yk)^KOp-IzNF1!u~;k?=fY)+ zMfg5;*!f`7ukCids(j(f)A^8lH>M6T)7&{Cigb)l6V@eYir#hqmWW1|xUH{PuA~Qn z00bZa0SG_<0uX=z1Rwwb2teSs0(}m9B0Tl^ZeMtBmYX!mQkNx*RqA|Py6Wf$_1`>{ z8_8Q<@|1_%wIC3H00bZa0SG_<0uX=z1Rwwb2>h9V4Gqt1%W!4`!(D3)53Mmgv8>w% D$_pB7 diff --git a/examples/06-caqti/main.ml b/examples/06-caqti/main.ml index 8fed15c..9c96b06 100644 --- a/examples/06-caqti/main.ml +++ b/examples/06-caqti/main.ml @@ -56,7 +56,7 @@ let list req server _cfg = let routes = let open Vif.U in let open Vif.R in - let open Vif.Content_type in + let open Vif.T in [ post any (rel / "add" /% Tyre.int /?? nil) --> add ; get (rel /?? nil) --> list ] diff --git a/examples/07-deflate/main.ml b/examples/07-deflate/main.ml index e3ccb64..4e505da 100644 --- a/examples/07-deflate/main.ml +++ b/examples/07-deflate/main.ml @@ -12,7 +12,7 @@ let default req server () = let routes = let open Vif.U in let open Vif.R in - let open Vif.Content_type in + let open Vif.T in [ get (rel /?? nil) --> default ] let () = Miou_unix.run @@ fun () -> diff --git a/examples/08-digest/main.ml b/examples/08-digest/main.ml index 86029da..34ec7d6 100644 --- a/examples/08-digest/main.ml +++ b/examples/08-digest/main.ml @@ -24,7 +24,7 @@ let default req server () = let routes = let open Vif.U in let open Vif.R in - let open Vif.Content_type in + let open Vif.T in [ post any (rel /?? nil) --> default ] let () = Miou_unix.run @@ fun () -> diff --git a/examples/09-jwt/cookie.txt b/examples/09-jwt/cookie.txt deleted file mode 100644 index 005fc86..0000000 --- a/examples/09-jwt/cookie.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Netscape HTTP Cookie File -# https://curl.se/docs/http-cookies.html -# This file was generated by libcurl! Edit at your own risk. - -#HttpOnly_localhost FALSE / TRUE 0 __Host-vif-token AIT3qkbKq7NBg7ePl7Xbs9ikzUNdcxLuKYbinTM3KQdTVm2jAHY36a8c9mOFSf5opEudhbozpU2oXxt_bfCkR9YlqAlzjK8OYcLwgBVMLZaJBiontKM9BdS70yUDdPawY4h883n9P0A9lEUhMNMQr7-NVieuIgZTGbtTV-B7Xrcf9pipVYOIiyiPcILaoDwa-ycs-_b9yqlyzDYfMPOwsWphSPR0Ji9lVg diff --git a/examples/09-jwt/foo.json b/examples/09-jwt/foo.json deleted file mode 100644 index 80af158..0000000 --- a/examples/09-jwt/foo.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "username": "dinosaure", - "password": "foo" } diff --git a/examples/10-route/main.ml b/examples/10-route/main.ml index d1eaa9c..7e51e30 100644 --- a/examples/10-route/main.ml +++ b/examples/10-route/main.ml @@ -21,7 +21,7 @@ let default req server _cfg = let routes = let open Vif.U in let open Vif.R in - let open Vif.Content_type in + let open Vif.T in [ get (rel / "echo" /% string /?? nil) --> hello ; get (rel /?? nil) --> default ] ;; diff --git a/examples/11-stream/main.ml b/examples/11-stream/main.ml index 0a97579..15abf32 100644 --- a/examples/11-stream/main.ml +++ b/examples/11-stream/main.ml @@ -13,7 +13,7 @@ let cat req server _ = let routes = let open Vif.U in let open Vif.R in - let open Vif.Content_type in + let open Vif.T in [ post any (rel /?? nil) --> cat ] ;; diff --git a/examples/12-static/main.ml b/examples/12-static/main.ml index e01545d..2b62b5b 100644 --- a/examples/12-static/main.ml +++ b/examples/12-static/main.ml @@ -9,7 +9,7 @@ let default req server _ = let routes = let open Vif.U in let open Vif.R in - let open Vif.Content_type in + let open Vif.T in [ get (rel /?? nil) --> default ] ;;