29 lines
569 B
V
29 lines
569 B
V
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() ?
|
|
}
|