tsk-56: API documentation (#57)
All checks were successful
Rust Build / Rustfmt (push) Successful in 41s
Rust Build / Check (push) Successful in 43s
Rust Build / Clippy (push) Successful in 42s
Rust Build / build (push) Successful in 1m2s
Rust Build / Test Suite (push) Successful in 2m2s

Closes #56

Reviewed-on: #57
Co-authored-by: phoenix <kundeng00@pm.me>
Co-committed-by: phoenix <kundeng00@pm.me>
This commit was merged in pull request #57.
This commit is contained in:
2025-08-24 23:52:29 +00:00
committed by phoenix
parent a4c943189c
commit 2ba037c393
6 changed files with 320 additions and 19 deletions

View File

@@ -19,8 +19,31 @@ mod init {
Router,
routing::{get, post},
};
use utoipa::OpenApi;
use crate::callers;
use callers::common as common_callers;
use callers::login as login_caller;
use callers::register as register_caller;
use login_caller::endpoint as login_endpoints;
use login_caller::response as login_responses;
use register_caller::response as register_responses;
#[derive(utoipa::OpenApi)]
#[openapi(
paths(
common_callers::endpoint::db_ping, common_callers::endpoint::root,
register_caller::register_user,
login_endpoints::login, login_endpoints::service_login, login_endpoints::refresh_token
),
components(schemas(common_callers::response::TestResult,
register_responses::Response,
login_responses::Response, login_responses::service_login::Response, login_responses::refresh_token::Response)),
tags(
(name = "Icarus Auth API", description = "Auth API for Icarus API")
)
)]
struct ApiDoc;
pub async fn routes() -> Router {
// build our application with a route
@@ -58,7 +81,13 @@ mod init {
icarus_auth::db::migrations(&pool).await;
routes().await.layer(axum::Extension(pool))
routes()
.await
.merge(
utoipa_swagger_ui::SwaggerUi::new("/swagger-ui")
.url("/api-docs/openapi.json", ApiDoc::openapi()),
)
.layer(axum::Extension(pool))
}
}