1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/examples/pico/pico.v

58 lines
977 B
V
Raw Normal View History

2020-01-23 05:26:30 +03:00
import json
import picoev
import picohttpparser
const (
port = 8089
)
2020-01-23 05:26:30 +03:00
struct Message {
message string
}
[inline]
fn json_response() string {
msg := Message{
message: 'Hello, World!'
}
return json.encode(msg)
}
[inline]
fn hello_response() string {
return 'Hello, World!'
}
2021-04-24 13:21:30 +03:00
fn callback(data voidptr, req picohttpparser.Request, mut res picohttpparser.Response) {
if req.method == 'GET' {
if req.path == '/t' {
res.http_ok()
res.header_server()
res.header_date()
res.plain()
res.body(hello_response())
} else if req.path == '/j' {
res.http_ok()
res.header_server()
res.header_date()
res.json()
res.body(json_response())
} else {
res.http_ok()
res.header_server()
res.header_date()
res.html()
res.body('Hello Picoev!\n')
2020-01-23 05:26:30 +03:00
}
} else {
2020-01-23 05:26:30 +03:00
res.http_405()
}
2021-04-24 13:21:30 +03:00
res.end()
2020-01-23 05:26:30 +03:00
}
2020-04-17 22:41:54 +03:00
fn main() {
println('Starting webserver on http://127.0.0.1:${port}/ ...')
mut server := picoev.new(port: port, cb: callback)
server.serve()
2020-01-23 05:26:30 +03:00
}