How agussuroyo/wp-api-swaggerui works
WP API SwaggerUI is a WordPress plugin that exposes an interactive Swagger UI for registered REST API routes. Admins choose the API namespace, auth schemes, specification version, and contact-email visibility; visitors open the docs, fetch the generated schema, and can try supported REST methods. The documented schema pipeline converts WordPress route metadata to Swagger 2.0 and optionally OpenAPI 3.0.3, while docs assets support plain-permalink request rewriting. Authentication integrates with WordPress and WooCommerce; bearer-token validation is delegated to an optional token plugin. The main plugin and formatter excerpts are partial, so undocumented wiring is omitted.
Main entry points: wp-api-swaggerui.php Plugin controller · swaggerauth.php Auth handler · app.js Swagger UI client · swaggersetting.php Settings handler
Components 19
Admin settings
- Settings handler
swaggersetting.php - Settings form
template/setting.php - WordPress options
Schema generation
- Plugin controller
wp-api-swaggerui.php - Route metadata
- Schema builder
wp-api-swaggerui.php - Spec formatter
swaggeropenapi.php - Schema endpoint
wp-api-swaggerui.php
Docs experience
- Docs template hooks
swaggertemplate.php - Docs page
template/single.php - Swagger UI client
resources/js/app.js
Authentication
- Auth handler
swaggerauth.php - Request data bag
swaggerbag.php - WooCommerce keys
- WordPress Basic auth
Other components
- Administrator
- API docs user
- WordPress REST API
- Token plugin
Connections 25
- Administrator → Settings form: edits settings
- Settings form → Settings handler: submits form
- Settings handler → WordPress options: saves options
- Settings handler → WordPress REST API: reads namespaces
- API docs user → Plugin controller: requests docs
- Plugin controller → Schema endpoint: registers endpoint
- Plugin controller → WordPress REST API: reads routes
- WordPress REST API → Route metadata: provides routes
- Schema builder → Route metadata: converts metadata
- Plugin controller → Schema builder: builds schema
- Plugin controller → Spec formatter: formats schema
- Spec formatter → Schema endpoint: returns spec
- Plugin controller → WordPress options: reads configuration
- Plugin controller → Docs template hooks: serves docs hooks
- Docs template hooks → Docs page: selects template
- Docs template hooks → Swagger UI client: enqueues client
- API docs user → Swagger UI client: uses docs UI
- Swagger UI client → Schema endpoint: fetches schema
- Swagger UI client → WordPress REST API: sends REST requests
- Swagger UI client → Token plugin: delegates token validation
- Auth handler → Request data bag: reads headers
- Auth handler → WooCommerce keys: checks consumer keys
- Auth handler → WordPress Basic auth: delegates Basic auth
- Auth handler → WordPress options: reads auth schemes
- Auth handler → Spec formatter: adds security definitions