a0fea6edb4
* Migrate nym-api HTTP server from rocket to axum (#4698) Migrate endpoints to Axum * Squashed after PR review Initial WIP - bootstrap axum server with same data as rocket - start axum server alongside rocket - add routes for circulating-supply, contract-cache, network - write simple bash validation that migrated APIs return 200 - mark rocket parts of code as deprecated - start more complicated routes: WIP Init storage always Add coconut routes Add api-status routes Expand tests WIP Migrate unstable APIs with query params Update bash tests Add node-status routes Redirect / to /swagger Update API tests Implement graceful shutdown rustfmt Fix clippy * Add ecash routes after rebase * PR feedback - add CORS layer - move logger to common crate - remove global log filters for nym-api and axum * Serve OpenAPI for all endpoints (#4761) * Playing around with swagger * Generate OpenAPI for /status routes * Phase out static_routes as strings - also nest routers in a clearer way * Generate OpenAPI for /network routes * Generate OpenAPI for /api-status routes * Generate OpenAPI for "nym nodes" routes * Fix some network-monitor routes * Generate OpenAPI for /ecash routes * Add utoipa feature to /common mods * Add OpenAPI for unstable routes * Fix MixNodeDetails field in models * Introduce axum feature flag (#4775) * Add Axum bind_address to config * Introduce axum feature flag * Add comment to template.rs * Add Github action to build wtih `axum` feature * Refactor server start & shutdown (#4777) * Clippy: don't forget axum feature * Refactor router so it's safer * Implement graceful shutdown * Nicer pattern matching * Better Result syntax
38 lines
1.2 KiB
Rust
38 lines
1.2 KiB
Rust
// Copyright 2023 - Nym Technologies SA <contact@nymtech.net>
|
|
// SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
use okapi::openapi3::OpenApi;
|
|
use rocket::Route;
|
|
use rocket_okapi::openapi_get_routes_spec;
|
|
use rocket_okapi::settings::OpenApiSettings;
|
|
|
|
#[cfg(feature = "axum")]
|
|
pub(crate) mod handlers;
|
|
#[cfg(feature = "axum")]
|
|
pub(crate) mod handlers_unstable;
|
|
|
|
pub(crate) mod routes;
|
|
mod unstable_routes;
|
|
|
|
/// Merges the routes with http information and returns it to Rocket for serving
|
|
pub(crate) fn nym_node_routes_deprecated(settings: &OpenApiSettings) -> (Vec<Route>, OpenApi) {
|
|
openapi_get_routes_spec![
|
|
settings: routes::get_gateways_described, routes::get_mixnodes_described
|
|
]
|
|
}
|
|
|
|
pub(crate) fn nym_node_routes_next(settings: &OpenApiSettings) -> (Vec<Route>, OpenApi) {
|
|
openapi_get_routes_spec![
|
|
settings:
|
|
unstable_routes::nodes_basic,
|
|
unstable_routes::nodes_expanded,
|
|
unstable_routes::nodes_detailed,
|
|
unstable_routes::gateways_basic,
|
|
unstable_routes::gateways_expanded,
|
|
unstable_routes::gateways_detailed,
|
|
unstable_routes::mixnodes_basic,
|
|
unstable_routes::mixnodes_expanded,
|
|
unstable_routes::mixnodes_detailed,
|
|
]
|
|
}
|