REST API Docs

Auto-generated Swagger-like documentation for every route. Try endpoints, see code examples, export OpenAPI.

Swagger-Like Explorer

Interactive documentation generated from your route definitions. Browse, expand, and explore every endpoint.

"Try It" Execution

Execute API calls directly from the docs. Fill in parameters, send the request, and see the response in real time.

Code Examples

Auto-generated code snippets for cURL, JavaScript fetch, and Flutter http — ready to copy.

Guards & Validation

See which guards protect each route and what validation decorators are required on the request body.

How It Works

FLIN reads your route definitions and auto-generates interactive API documentation. No annotations, no config files.

Your Route Definition
route POST /api/users {
    guards { auth: required, csrf: required }
    validate {
        email: text @required @email
        name: text @required @minLength(2)
        role: text @default("user") @one_of("user", "admin")
    }
    user = User { email: body.email, name: body.name, role: body.role }
    save user
    response.created(user)
}
Generated REST API Docs
POST /api/users                          [auth] [csrf]
────────────────────────────────────────────────────────
Request Body:
  email    text    required, email
  name     text    required, minLength(2)
  role     text    default("user"), one_of("user", "admin")

Response: 201 Created
  { id, email, name, role, created_at, updated_at }

Code Examples:
  ▸ cURL     ▸ JavaScript     ▸ Flutter

Capabilities

  • Auto-extracted guard requirements (auth, csrf, custom guards)
  • Validation decorators displayed per field: @required, @email, @minLength, @one_of, etc.
  • Response schema inferred from response.ok(), response.created(), and other helpers
  • Method-specific coloring: green for GET, blue for POST, amber for PUT, red for DELETE
  • "Try It" panel for live endpoint execution with parameter inputs
  • Code snippets auto-generated for cURL, JavaScript, and Flutter

Why This Matters

Swagger / OpenAPI

  • Requires annotations or decorators in your code
  • Separate YAML/JSON config file to maintain
  • Docs can drift from actual implementation
  • Third-party tool setup (Swagger UI, Redoc)

FLIN REST API Docs

  • Generated from route definitions — zero annotations
  • No config files to maintain
  • Always in sync — docs come from the same source as runtime
  • Built into every FLIN app at /_flin/rest-api

One Source of Truth

Because FLIN generates the docs from the same route definitions your server executes, the documentation can never go stale. Change a validation rule, and the docs update on the next request.