New API

Scaffold a new merjs API route. Use when the user wants to create a new API endpoint.

justrach 3ca76bc 1.1 KB Updated

File contents

Create a new merjs API route

Scaffold a new API route at api/$ARGUMENTS.zig.

Steps

  1. 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",
    });
}
  1. Adapt the Response struct fields based on what the user described
  2. Run zig build codegen to regenerate routes
  3. 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

justrach/merjs/tree/main/.claude/skills/new-api commit 3ca76bca3c

Frequently asked questions

npx skillmds@latest add justrach/new-api