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.zigwith 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 codegento 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 viareq.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