diff --git a/src/api/api.rs b/src/api/api.rs new file mode 100644 index 0000000..1709874 --- /dev/null +++ b/src/api/api.rs @@ -0,0 +1,14 @@ +use actix_web::{HttpResponse, get, web}; + +use crate::version::info::Version; + +#[get("/supported_versions")] +pub async fn versions() -> HttpResponse { + let version = Version::get(); + HttpResponse::Ok().json(&version.supported_api_versions) +} + +pub fn configure(cfg: &mut web::ServiceConfig) { + cfg.service(versions); + // Register other version 1 handlers here... +} \ No newline at end of file diff --git a/src/api/mod.rs b/src/api/mod.rs index 960c300..e02bcc6 100644 --- a/src/api/mod.rs +++ b/src/api/mod.rs @@ -1,2 +1,3 @@ pub mod server; -mod endpoints_v1; \ No newline at end of file +mod endpoints_v1; +mod api; \ No newline at end of file diff --git a/src/api/server.rs b/src/api/server.rs index 79f8486..d9233f5 100644 --- a/src/api/server.rs +++ b/src/api/server.rs @@ -1,6 +1,7 @@ use actix_web::{HttpServer, web}; use crate::api::endpoints_v1; +use crate::api::api; #[allow(dead_code)] pub async fn stop_actix_web(server: actix_web::dev::Server) -> std::io::Result<()> { @@ -17,6 +18,7 @@ pub fn start_actix_web(port: u16) -> std::io::Result { let logger = actix_web::middleware::Logger::default(); actix_web::App::new() .wrap(logger) + .service(web::scope("/api").configure(api::configure)) .service(web::scope("/v1").configure(endpoints_v1::configure)) }) .bind(("127.0.0.1", port))?