Hello World
Hello World example
Basic example of the Vovk.ts controller with no validation.
Result
Code
1import { get, post, prefix, openapi, type VovkRequest } from 'vovk';
2
3@prefix('hello-world')
4export default class HelloWorldController {
5 @openapi({
6 summary: 'Get a greeting',
7 description: 'Get a greeting from the server',
8 })
9 @get('greeting')
10 static getHello() {
11 return { greeting: 'Hello world!' };
12 }
13
14 @openapi({
15 summary: 'Post a greeting',
16 description: 'Post a greeting to the server',
17 })
18 @post('greeting')
19 static async postHello(req: VovkRequest<{ greeting: string }>) {
20 const { greeting } = await req.json();
21 return { greeting };
22 }
23}
1import { get, post, prefix, openapi, type VovkRequest } from 'vovk';
2
3@prefix('hello-world')
4export default class HelloWorldController {
5 @openapi({
6 summary: 'Get a greeting',
7 description: 'Get a greeting from the server',
8 })
9 @get('greeting')
10 static getHello() {
11 return { greeting: 'Hello world!' };
12 }
13
14 @openapi({
15 summary: 'Post a greeting',
16 description: 'Post a greeting to the server',
17 })
18 @post('greeting')
19 static async postHello(req: VovkRequest<{ greeting: string }>) {
20 const { greeting } = await req.json();
21 return { greeting };
22 }
23}
1import { get, post, prefix, openapi, type VovkRequest } from 'vovk';
2
3@prefix('hello-world')
4export default class HelloWorldController {
5 @openapi({
6 summary: 'Get a greeting',
7 description: 'Get a greeting from the server',
8 })
9 @get('greeting')
10 static getHello() {
11 return { greeting: 'Hello world!' };
12 }
13
14 @openapi({
15 summary: 'Post a greeting',
16 description: 'Post a greeting to the server',
17 })
18 @post('greeting')
19 static async postHello(req: VovkRequest<{ greeting: string }>) {
20 const { greeting } = await req.json();
21 return { greeting };
22 }
23}
1import { get, post, prefix, openapi, type VovkRequest } from 'vovk';
2
3@prefix('hello-world')
4export default class HelloWorldController {
5 @openapi({
6 summary: 'Get a greeting',
7 description: 'Get a greeting from the server',
8 })
9 @get('greeting')
10 static getHello() {
11 return { greeting: 'Hello world!' };
12 }
13
14 @openapi({
15 summary: 'Post a greeting',
16 description: 'Post a greeting to the server',
17 })
18 @post('greeting')
19 static async postHello(req: VovkRequest<{ greeting: string }>) {
20 const { greeting } = await req.json();
21 return { greeting };
22 }
23}
1'use client';
2import { useState } from 'react';
3import { HelloWorldRPC } from 'vovk-client';
4import type { VovkReturnType } from 'vovk';
5
6export default function HelloWorldExample() {
7 const [serverResponse, setServerResponse] = useState<VovkReturnType<typeof HelloWorldRPC.getHello>>();
8
9 return (
10 <>
11 <button
12 onClick={async () => {
13 setServerResponse(await HelloWorldRPC.getHello());
14 }}
15 >
16 Get a greeting from the server
17 </button>
18 <div>{serverResponse?.greeting}</div>
19 </>
20 );
21}
1'use client';
2import { useState } from 'react';
3import { HelloWorldRPC } from 'vovk-client';
4import type { VovkReturnType } from 'vovk';
5
6export default function HelloWorldExample() {
7 const [serverResponse, setServerResponse] = useState<VovkReturnType<typeof HelloWorldRPC.getHello>>();
8
9 return (
10 <>
11 <button
12 onClick={async () => {
13 setServerResponse(await HelloWorldRPC.getHello());
14 }}
15 >
16 Get a greeting from the server
17 </button>
18 <div>{serverResponse?.greeting}</div>
19 </>
20 );
21}
1'use client';
2import { useState } from 'react';
3import { HelloWorldRPC } from 'vovk-client';
4import type { VovkReturnType } from 'vovk';
5
6export default function HelloWorldExample() {
7 const [serverResponse, setServerResponse] = useState<VovkReturnType<typeof HelloWorldRPC.getHello>>();
8
9 return (
10 <>
11 <button
12 onClick={async () => {
13 setServerResponse(await HelloWorldRPC.getHello());
14 }}
15 >
16 Get a greeting from the server
17 </button>
18 <div>{serverResponse?.greeting}</div>
19 </>
20 );
21}
1'use client';
2import { useState } from 'react';
3import { HelloWorldRPC } from 'vovk-client';
4import type { VovkReturnType } from 'vovk';
5
6export default function HelloWorldExample() {
7 const [serverResponse, setServerResponse] = useState<VovkReturnType<typeof HelloWorldRPC.getHello>>();
8
9 return (
10 <>
11 <button
12 onClick={async () => {
13 setServerResponse(await HelloWorldRPC.getHello());
14 }}
15 >
16 Get a greeting from the server
17 </button>
18 <div>{serverResponse?.greeting}</div>
19 </>
20 );
21}
Last updated on