Skip to content

brokkr-broker::api::v1

Rust

API v1 module for the Brokkr broker.

This module defines the structure and routes for version 1 of the Brokkr API. It includes submodules for various API functionalities and sets up the main router with authentication middleware.

pub

fn routes(
dal: DAL,
cors_config: &Cors,
reloadable_config: Option<ReloadableConfig>,
) -> Router<DAL>

Constructs and returns the main router for API v1.

This function combines all the route handlers from different modules and applies the authentication middleware.

Source
pub fn routes(
dal: DAL,
cors_config: &Cors,
reloadable_config: Option<ReloadableConfig>,
) -> Router<DAL> {
// Configure CORS from settings
let cors = build_cors_layer(cors_config);
let mut api_routes = Router::new()
.merge(agent_events::routes())
.merge(agents::routes())
.merge(auth::routes())
.merge(deployment_objects::routes())
.merge(diagnostics::routes())
.merge(generators::routes())
.merge(health::routes())
.merge(paks::routes())
.merge(stacks::routes())
.merge(templates::routes())
.merge(webhooks::routes())
.merge(work_orders::routes())
.merge(work_orders::agent_routes())
.merge(admin::routes())
.layer(from_fn_with_state(
dal.clone(),
middleware::auth_middleware::<axum::body::Body>,
))
.layer(cors);
// Add ReloadableConfig as an extension if available
if let Some(config) = reloadable_config {
api_routes = api_routes.layer(axum::Extension(config));
}
Router::new()
.nest("/api/v1", api_routes)
.merge(openapi::configure_openapi())
}