aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/examples/http_server.v
diff options
context:
space:
mode:
Diffstat (limited to 'v_windows/v/examples/http_server.v')
-rw-r--r--v_windows/v/examples/http_server.v28
1 files changed, 28 insertions, 0 deletions
diff --git a/v_windows/v/examples/http_server.v b/v_windows/v/examples/http_server.v
new file mode 100644
index 0000000..ffcc299
--- /dev/null
+++ b/v_windows/v/examples/http_server.v
@@ -0,0 +1,28 @@
+module main
+
+import net.http { CommonHeader, Request, Response, Server }
+
+struct ExampleHandler {}
+
+fn (h ExampleHandler) handle(req Request) Response {
+ mut res := Response{
+ header: http.new_header_from_map({
+ CommonHeader.content_type: 'text/plain'
+ })
+ }
+ res.text = match req.url {
+ '/foo' { 'bar\n' }
+ '/hello' { 'world\n' }
+ '/' { 'foo\nhello\n' }
+ else { 'Not found\n' }
+ }
+ res.status_code = if res.text == 'Not found' { 404 } else { 200 }
+ return res
+}
+
+fn main() {
+ mut server := Server{
+ handler: ExampleHandler{}
+ }
+ server.listen_and_serve() ?
+}