Umbral
Back to plugin directory
UO

Umbral OpenAPI

Official by Umbral contributors

OpenAPI schema, Swagger UI, auth metadata, playground feed

official beta

About

An API nobody can read is an API nobody adopts. Umbral OpenAPI reads your registered REST resources and emits an OpenAPI 3 schema — FK targets, enums, nullable and read-only fields and all — then mounts an interactive explorer so a frontend teammate can try endpoints in the browser instead of guessing from a wiki page. The docs are generated from the resources themselves, so they can't drift from the API.

Install

cargo add umbral-openapi   # depends on umbral-rest

Wire it up

Add it after RestPlugin; it introspects whatever resources REST registered.

use umbral::prelude::*;
use umbral_rest::RestPlugin;
use umbral_openapi::OpenApiPlugin;

let app = App::builder()
    .database("default", pool)
    .plugin(RestPlugin::default().resource(/* ... */))
    .plugin(OpenApiPlugin::new())
    .build()?;

The generated spec is served for tooling, and the Swagger explorer mounts alongside it.

Target: share a live API with a frontend dev

Point them at the explorer — they get every route, its parameters, and a "try it" button, no Postman collection to maintain.

What you get

  • OpenAPI 3 schema generated from registered resources
  • FK targets, enums, and nullable / read-only surfaced in the schema
  • Interactive Swagger UI for click-to-try requests
  • securitySchemes published so the playground can auto-detect auth
  • Pairs with umbral-playground for an in-app request console

Usage

Add `OpenApiPlugin::new()` after `RestPlugin` — it introspects the resources REST already registered, so there's nothing to annotate by hand. The schema and Swagger UI update themselves as you add resources.

plugin setup
cargo add umbral-openapi

Feature tracker

Per-feature shipping status, recorded in the directory.

7 of 7 shipped
OpenAPI 3 schema generation shipped Beta

Auto-generated spec from registered resources.

Swagger UI shipped Beta

Interactive browser documentation for the generated schema.

Playground UI shipped Beta

Mini-Postman request/response surface (umbral-playground).

Vendor extensions shipped Beta

FK targets, enums, nullable/readOnly fields surfaced in the schema.

securitySchemes publishing shipped Beta

Auth requirements per endpoint for auto-detect in the playground.

Action schemas shipped Beta

Custom REST actions appear with request and response shapes.

Production gating shipped Beta

Docs UI can stay disabled in production unless explicitly allowed.

Compatibility

Declared support per Umbral version and database backend.

No compatibility rows declared yet.

Community notes

1 note in the discussion thread.

AN
Anonymous
usage note · Jul 9, 2026
usage

Swagger UI mounts cleanly at /openapi/ — handy for sharing the API.

Reported issues

Bugs and abuse reports filed against this plugin.

Report an issue

No open issues

No issues have been reported against this plugin. Track upstream bugs on the maintainer's tracker, or report a directory problem to the Umbral team.