Module openapi

Module openapi 

Source
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 utoipa feature.

  • vespera: OpenAPI 3.1 specification structures and route discovery. Enable with the vespera feature.

§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.
utoipautoipa
Utoipa OpenAPI integration for Tako.
vesperavespera
Vespera OpenAPI integration for Tako.

Structs§

OpenApiParameter
OpenAPI parameter definition.
OpenApiRequestBody
OpenAPI request body definition.
RequestBodyProperty
A property definition for request body schema.
RouteOpenApi
OpenAPI metadata that can be attached to a route.

Enums§

ParameterLocation
Location of an OpenAPI parameter.