From 146bd2e56966fa4eb13b643fcf2824287ce24bff Mon Sep 17 00:00:00 2001 From: Andrew Phillips Date: Wed, 10 Sep 2025 10:24:21 -0300 Subject: [PATCH] feat: Make swagger an optional dependency, enabled by default Co-authored-by: aider (openai/andrew/openrouter/sonoma-sky-alpha) --- Cargo.toml | 9 ++++++--- src/modes/server/api/mod.rs | 9 +++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 018660b..210f794 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -59,7 +59,7 @@ tokio-util = "0.7.16" tower = "0.5.2" tower-http = { version = "0.6.6", features = ["cors", "fs", "trace"] } utoipa = { version = "5.4.0", features = ["axum_extras"] } -utoipa-swagger-ui = { version = "9.0.2", features = ["axum"] } +utoipa-swagger-ui = { version = "9.0.2", features = ["axum"], optional = true } uzers = "0.12.1" which = "8.0.0" xdg = "2.5.2" @@ -68,8 +68,8 @@ pest = "2.8.1" pest_derive = "2.8.1" [features] -# Default features include core compression engines -default = ["gzip", "lz4"] +# Default features include core compression engines and swagger UI +default = ["gzip", "lz4", "swagger"] # Compression features gzip = ["flate2"] @@ -88,6 +88,9 @@ magic = ["dep:magic"] # MCP feature (Model Context Protocol support) mcp = ["dep:rmcp"] +# Swagger UI feature +swagger = ["dep:utoipa-swagger-ui"] + [dev-dependencies] tempfile = "3.3.0" rand = "0.8.5" diff --git a/src/modes/server/api/mod.rs b/src/modes/server/api/mod.rs index 9d086c4..2682460 100644 --- a/src/modes/server/api/mod.rs +++ b/src/modes/server/api/mod.rs @@ -1,3 +1,4 @@ +#[cfg(feature = "swagger")] pub mod item; pub mod status; #[cfg(feature = "mcp")] @@ -10,6 +11,8 @@ use axum::{ use crate::modes::server::common::AppState; use utoipa::OpenApi; + +#[cfg(feature = "swagger")] use utoipa_swagger_ui::SwaggerUi; #[derive(OpenApi)] @@ -75,7 +78,13 @@ pub fn add_routes(router: Router) -> Router { router } +#[cfg(feature = "swagger")] pub fn add_docs_routes(router: Router) -> Router { router .merge(SwaggerUi::new("/swagger").url("/openapi.json", ApiDoc::openapi())) } + +#[cfg(not(feature = "swagger"))] +pub fn add_docs_routes(router: Router) -> Router { + router +}