diff options
-rw-r--r-- | rust/redoc/index.html | 24 | ||||
-rw-r--r-- | rust/src/bin/fatcatd.rs | 11 |
2 files changed, 34 insertions, 1 deletions
diff --git a/rust/redoc/index.html b/rust/redoc/index.html new file mode 100644 index 00000000..ac75c306 --- /dev/null +++ b/rust/redoc/index.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> + <head> + <title>ReDoc</title> + <!-- needed for adaptive design --> + <meta charset="utf-8"/> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700" rel="stylesheet"> + + <!-- + ReDoc doesn't change outer page styles + --> + <style> + body { + margin: 0; + padding: 0; + } + </style> + </head> + <body> + <redoc spec-url='/v0/openapi2.yml'></redoc> + <script src="https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js"> </script> + </body> +</html> diff --git a/rust/src/bin/fatcatd.rs b/rust/src/bin/fatcatd.rs index 67ec3123..4d1f1a88 100644 --- a/rust/src/bin/fatcatd.rs +++ b/rust/src/bin/fatcatd.rs @@ -107,13 +107,22 @@ fn main() -> Result<()> { let mut router = fatcat_openapi::router(server); router.get("/", root_handler, "root-redirect"); + router.get("/redoc", redoc_handler, "redoc-html"); router.get("/swagger-ui", swaggerui_handler, "swagger-ui-html"); router.get("/v0/openapi2.yml", yaml_handler, "openapi2-spec-yaml"); fn root_handler(_: &mut Request) -> IronResult<Response> { Ok(Response::with(( status::Found, - RedirectRaw("/swagger-ui".to_string()), + RedirectRaw("/redoc".to_string()), + ))) + } + fn redoc_handler(_: &mut Request) -> IronResult<Response> { + let html_type = "text/html".parse::<iron::mime::Mime>().unwrap(); + Ok(Response::with(( + html_type, + status::Ok, + include_str!("../../redoc/index.html"), ))) } fn swaggerui_handler(_: &mut Request) -> IronResult<Response> { |