Scalar API Reference for Aide

There's a wonderful package to generate OpenAPI files for Rust (called Aide) and it comes with Scalar.

Usage

Set the api_route to use Scalar to get started:

use aide::{  axum::{  routing::{get_with},  ApiRouter, IntoApiResponse,  },  openapi::OpenApi,  scalar::Scalar, };  // …  let router: ApiRouter = ApiRouter::new()  .api_route_with(  "/",  get_with(  Scalar::new("/docs/private/api.json")  .with_title("Aide Axum")  .axum_handler(),  |op| op.description("This documentation page."),  ),  |p| p.security_requirement("ApiKey"),  )  // … 

If you want to use Scalar with Actix or any other web framework, you can do that too with the crate scalar-doc.

To get started with Actix, first install the crate and activate actix feature :

cargo add scalar-doc -F actix 

You can use the following code

use actix_web::{get, App, HttpResponse, HttpServer, Responder}; use scalar_doc::scalar_actix::ActixDocumentation;  #[get("/")] async fn doc() -> impl Responder {  ActixDocumentation::new("Api Documentation title", "/openapi")  .theme(scalar_doc::Theme::Kepler)  .service() }  #[get("/openapi")] async fn openapi() -> impl Responder {  let open = include_str!("openapi.json");  HttpResponse::Ok().body(open) }  #[actix_web::main] async fn main() -> std::io::Result<()> {  HttpServer::new(|| App::new().service(doc).service(openapi))  .bind(("127.0.0.1", 8080))?  .run()  .await }