Fix examples

This commit is contained in:
Calascibetta Romain 2025-02-21 10:33:20 +01:00
parent 396555f397
commit 6cbf850340
14 changed files with 37 additions and 25 deletions

View file

@ -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 <<EOF
#require "vif" ;;
let default req target server () =
let headers = [ "content-type", "text/html" ] in
Vif.Response.with_string ~headers server `OK "Hello World!\n"
open Vif ;;
let default req server () =
let field = "content-type" in
let* () = Response.add ~field "text/html; charset=utf-8" in
let* () = Response.with_string req "Hello World!" in
Response.respond `OK
;;
let routes =
let open Vif.U in
let open Vif.R in
let open Vif.T in
[ get (rel /?? nil) --> 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/

View file

@ -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 ()
;;

View file

@ -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 () ->

View file

@ -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 ]
;;

View file

@ -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 () =

Binary file not shown.

View file

@ -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 ]

View file

@ -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 () ->

View file

@ -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 () ->

View file

@ -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

View file

@ -1,2 +0,0 @@
{ "username": "dinosaure",
"password": "foo" }

View file

@ -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 ]
;;

View file

@ -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 ]
;;

View file

@ -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 ]
;;