Available on crate features
utoipa or vespera only.Expand description
OpenAPI documentation generation integrations (utoipa, vespera). OpenAPI documentation generation integrations.
This module provides integrations with popular OpenAPI documentation generators:
-
utoipa: Compile-time OpenAPI documentation generation via derive macros. Enable with the
utoipafeature. -
vespera: OpenAPI 3.1 specification structures and route discovery. Enable with the
vesperafeature.
§Route-Level Integration
Both integrations support route-level OpenAPI metadata:
ⓘ
use tako::{router::Router, Method};
let mut router = Router::new();
router.route(Method::GET, "/users/{id}", get_user)
.summary("Get user by ID")
.description("Retrieves a user by their unique identifier")
.tag("users")
.response(200, "Successful response")
.response(404, "User not found");§Examples
§Using utoipa
ⓘ
use tako::openapi::utoipa::{OpenApi, OpenApiJson, ToSchema};
#[derive(ToSchema)]
struct User {
id: u64,
name: String,
}
#[derive(OpenApi)]
#[openapi(components(schemas(User)))]
struct ApiDoc;
async fn openapi(_req: tako::types::Request) -> OpenApiJson {
OpenApiJson(ApiDoc::openapi())
}§Using vespera
ⓘ
use tako::openapi::vespera::{OpenApi, Info, VesperaOpenApiJson};
async fn openapi(_req: tako::types::Request) -> VesperaOpenApiJson {
let spec = OpenApi {
info: Info {
title: "My API".to_string(),
version: "1.0.0".to_string(),
..Default::default()
},
..Default::default()
};
VesperaOpenApiJson(spec)
}Modules§
- ui
- OpenAPI UI helpers (Swagger UI, Scalar, RapiDoc, Redoc). OpenAPI UI helpers for serving interactive API documentation.
- utoipa
utoipa - Utoipa OpenAPI integration for Tako.
- vespera
vespera - Vespera OpenAPI integration for Tako.
Structs§
- Open
ApiParameter - OpenAPI parameter definition.
- Open
ApiRequest Body - OpenAPI request body definition.
- Request
Body Property - A property definition for request body schema.
- Route
Open Api - OpenAPI metadata that can be attached to a route.
Enums§
- Parameter
Location - Location of an OpenAPI parameter.