mirror of
https://github.com/zigzap/zap.git
synced 2025-10-20 15:14:08 +00:00
updated README
This commit is contained in:
parent
d95f45ef34
commit
cb2c3ab74b
1 changed files with 13 additions and 8 deletions
21
README.md
21
README.md
|
@ -29,12 +29,13 @@ Here's what works:
|
|||
- **[hello_json](examples/hello_json/hello_json.zig)**: serves you json
|
||||
dependent on HTTP path
|
||||
- **[endpoints](examples/endpoints/)**: a simple JSON REST API example featuring
|
||||
a `/users` endpoint for adding/deleting/displaying/updating users and a
|
||||
`/list` endpoint returning the entire user list.
|
||||
a `/users` endpoint for PUTting/DELETE-ing/GET-ting/POST-ing users and a
|
||||
`/list` endpoint returning the entire user list on GET, together with a static
|
||||
HTML frontend to play around with.
|
||||
|
||||
I'll continue wrapping more of facil.io's functionality and adding stuff to zap
|
||||
to a point where I can use it as the JSON REST API backend for my current
|
||||
research project which is likely to need to go live in the summer of 2023.
|
||||
to a point where I can use it as the JSON REST API backend for real research
|
||||
projects, serving thousands of concurrent clients.
|
||||
|
||||
## Getting started
|
||||
|
||||
|
@ -326,6 +327,10 @@ pub fn main() !void {
|
|||
|
||||
### [endpoints](examples/endpoints/)
|
||||
|
||||
The following only shows the GET functionality implemented on both the `/user/`
|
||||
and the `/list` endpoints. See [endpoints](examples/endpoints/) for a complete
|
||||
example, including a HTML + JavaScript frontend.
|
||||
|
||||
[`main.zig`](examples/endpoints/main.zig):
|
||||
|
||||
```zig
|
||||
|
@ -377,9 +382,9 @@ pub fn main() !void {
|
|||
const std = @import("std");
|
||||
const zap = @import("zap");
|
||||
const Users = @import("users.zig");
|
||||
const User = Users.User;
|
||||
|
||||
// the Endpoints
|
||||
|
||||
pub const Self = @This();
|
||||
|
||||
var alloc: std.mem.Allocator = undefined;
|
||||
|
@ -438,7 +443,7 @@ pub fn getUser(e: *zap.SimpleEndpoint, r: zap.SimpleRequest) void {
|
|||
if (r.path) |path| {
|
||||
if (userIdFromPath(path)) |id| {
|
||||
if (users.get(id)) |user| {
|
||||
if (Users.stringify(user, .{})) |json| {
|
||||
if (zap.stringify(user, .{})) |json| {
|
||||
_ = r.sendJson(json);
|
||||
}
|
||||
}
|
||||
|
@ -448,11 +453,11 @@ pub fn getUser(e: *zap.SimpleEndpoint, r: zap.SimpleRequest) void {
|
|||
|
||||
pub fn listUsers(e: *zap.SimpleEndpoint, r: zap.SimpleRequest) void {
|
||||
_ = e;
|
||||
var l: std.ArrayList(Users.User) = std.ArrayList(Users.User).init(alloc);
|
||||
var l: std.ArrayList(User) = std.ArrayList(User).init(alloc);
|
||||
if (users.list(&l)) {} else |_| {
|
||||
return;
|
||||
}
|
||||
if (Users.stringifyUserList(&l, .{})) |maybe_json| {
|
||||
if (zap.stringifyArrayList(std.ArrayList(User, &l, .{})) |maybe_json| {
|
||||
if (maybe_json) |json| {
|
||||
_ = r.sendJson(json);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue