kabu_rpc_handler/
openapi.rs

1use crate::dto::block::BlockHeader;
2use crate::dto::pool::MarketStats;
3use crate::dto::pool::Pool;
4use crate::dto::pool::PoolClass;
5use crate::dto::pool::PoolDetailsResponse;
6use crate::dto::pool::PoolProtocol;
7use crate::dto::pool::PoolResponse;
8use crate::dto::quote::QuoteRequest;
9use crate::dto::quote::QuoteResponse;
10use crate::handler::blocks::__path_latest_block;
11use crate::handler::pools::__path_market_stats;
12use crate::handler::pools::__path_pool;
13use crate::handler::pools::__path_pool_quote;
14use crate::handler::pools::__path_pools;
15use utoipa::OpenApi;
16
17#[derive(OpenApi)]
18#[openapi(
19    paths(latest_block),
20    tags(
21        (name = "block", description = "Blockchain")
22    ),
23    components(schemas(BlockHeader))
24)]
25pub struct BlockApi;
26
27#[derive(OpenApi)]
28#[openapi(
29    paths(pool, pools, pool_quote, market_stats),
30    tags(
31        (name = "market", description = "Market")
32    ),
33    components(schemas(PoolResponse, PoolDetailsResponse, Pool, PoolClass, PoolProtocol, MarketStats, QuoteRequest, QuoteResponse))
34)]
35pub struct MarketApi;
36
37#[allow(dead_code)]
38#[derive(OpenApi)]
39#[openapi(
40    nest(
41        (path = "/api/v1/block/", api = BlockApi),
42        (path = "/api/v1/markets", api = MarketApi)
43    )
44)]
45pub struct ApiDoc;