Skip to main content
Glama
routes.rs1.75 kB
use axum::{ Router, response::{ IntoResponse, Json, Response, }, routing::{ get, post, }, }; use hyper::StatusCode; use serde_json::{ Value, json, }; use si_data_ssm::ParameterStoreClientError; use thiserror::Error; use super::{ app_state::AppState, server::ServerError, }; use crate::api_error::ApiError; pub mod prepare; pub mod profiles; pub mod publish; pub mod record; pub mod tests; use crate::routes::{ prepare::prepare_route, profiles::profiles_route, publish::publish_route, record::{ start_recording_route, stop_recording_route, }, tests::execute_tests_route, }; async fn system_status_route() -> Json<Value> { Json(json!({ "ok": true })) } pub fn public_routes(state: AppState) -> Router { Router::new() .route("/", get(system_status_route)) .route("/profiles", get(profiles_route)) .route("/tests", post(execute_tests_route)) .route("/prepare", post(prepare_route)) .route("/start", post(start_recording_route)) .route("/stop", post(stop_recording_route)) .route("/publish", post(publish_route)) .with_state(state) } #[allow(clippy::large_enum_variant)] #[remain::sorted] #[derive(Debug, Error)] pub enum AppError { #[error("parameter store client error: {0}")] ParameterStoreClient(#[from] ParameterStoreClientError), #[error("server error: {0}")] Server(#[from] ServerError), } impl IntoResponse for AppError { fn into_response(self) -> Response { let (status_code, error_message) = (StatusCode::INTERNAL_SERVER_ERROR, self.to_string()); ApiError::new(status_code, error_message).into_response() } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/systeminit/si'

If you have feedback or need assistance with the MCP directory API, please join our Discord server