Skip to main content
Glama
routes.rs1.71 kB
use axum::{ Router, response::{ IntoResponse, Json, Response, }, routing::{ get, post, put, }, }; use hyper::StatusCode; use serde_json::{ Value, json, }; use si_data_ssm::ParameterStoreClientError; use thiserror::Error; mod clear_cache; mod create_parameter; mod get_parameter; mod list_parameters; use super::{ app_state::AppState, server::ServerError, }; use crate::api_error::ApiError; pub fn public_routes(state: AppState) -> Router { Router::new() .route("/", get(system_status_route)) .with_state(state) } pub fn protected_routes(state: AppState) -> Router { Router::new() .route("/cache/clear", post(clear_cache::clear_cache_route)) .route("/parameter/*path", get(get_parameter::get_parameter_route)) .route( "/parameter/*path", put(create_parameter::create_parameter_route), ) .route( "/parameters/*path", get(list_parameters::list_parameters_route), ) .with_state(state) } async fn system_status_route() -> Json<Value> { Json(json!({ "ok": true })) } #[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