| name | new-api |
| description | Scaffold a new merjs API route. Use when the user wants to create a new API endpoint. |
| argument-hint | [route-name] |
| disable-model-invocation | true |
Create a new merjs API route
Scaffold a new API route at api/$ARGUMENTS.zig.
Steps
- Create
api/$ARGUMENTS.zig with this template:
const mer = @import("mer");
const Response = struct {
// Define your response fields here
message: []const u8,
};
pub fn render(req: mer.Request) mer.Response {
return mer.typedJson(req.allocator, Response{
.message = "hello",
});
}
- Adapt the Response struct fields based on what the user described
- Run
zig build codegen to regenerate routes
- Confirm the route appears at
/api/$ARGUMENTS
Conventions
- API routes live in
api/ and map to /api/...
- Use
mer.typedJson(allocator, value) to return typed JSON responses
- Use
mer.json(string) for raw JSON strings
- Access request body via
req.body, method via req.method
- Access query string via
req.query_string
- Access cookies via
req.cookie("name")
- For validation, use dhi:
const dhi = @import("dhi_validator");
- API routes do NOT need
pub const meta