aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/examples/vweb/vweb_example.v
diff options
context:
space:
mode:
Diffstat (limited to 'v_windows/v/examples/vweb/vweb_example.v')
-rw-r--r--v_windows/v/examples/vweb/vweb_example.v54
1 files changed, 54 insertions, 0 deletions
diff --git a/v_windows/v/examples/vweb/vweb_example.v b/v_windows/v/examples/vweb/vweb_example.v
new file mode 100644
index 0000000..f26726c
--- /dev/null
+++ b/v_windows/v/examples/vweb/vweb_example.v
@@ -0,0 +1,54 @@
+module main
+
+import vweb
+import rand
+
+const (
+ port = 8082
+)
+
+struct App {
+ vweb.Context
+mut:
+ state shared State
+}
+
+struct State {
+mut:
+ cnt int
+}
+
+fn main() {
+ println('vweb example')
+ vweb.run(&App{}, port)
+}
+
+['/users/:user']
+pub fn (mut app App) user_endpoint(user string) vweb.Result {
+ id := rand.intn(100)
+ return app.json('{"$user": $id}')
+}
+
+pub fn (mut app App) index() vweb.Result {
+ lock app.state {
+ app.state.cnt++
+ }
+ show := true
+ hello := 'Hello world from vweb'
+ numbers := [1, 2, 3]
+ return $vweb.html()
+}
+
+pub fn (mut app App) show_text() vweb.Result {
+ return app.text('Hello world from vweb')
+}
+
+pub fn (mut app App) cookie() vweb.Result {
+ app.set_cookie(name: 'cookie', value: 'test')
+ return app.text('Response Headers\n$app.header')
+}
+
+[post]
+pub fn (mut app App) post() vweb.Result {
+ return app.text('Post body: $app.req.data')
+}