refactor: move rate limiter into http layer
This commit is contained in:
@@ -1,9 +1,10 @@
|
|||||||
mod handlers;
|
mod handlers;
|
||||||
mod middleware;
|
mod middleware;
|
||||||
|
mod rate_limit;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
config::AppConfig, error::AppError, pokemon::PokeApiClient, rate_limit::RateLimiter,
|
config::AppConfig, error::AppError, pokemon::PokeApiClient, service::PokedexService,
|
||||||
service::PokedexService, telemetry::Telemetry, translation::TranslationClient,
|
telemetry::Telemetry, translation::TranslationClient,
|
||||||
};
|
};
|
||||||
use axum::{Router, extract::Request, middleware as axum_middleware, routing::get};
|
use axum::{Router, extract::Request, middleware as axum_middleware, routing::get};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
@@ -14,6 +15,8 @@ use tower_http::{
|
|||||||
trace::{DefaultOnResponse, TraceLayer},
|
trace::{DefaultOnResponse, TraceLayer},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pub use rate_limit::RateLimiter;
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct AppState {
|
pub struct AppState {
|
||||||
pub(super) service: Arc<PokedexService>,
|
pub(super) service: Arc<PokedexService>,
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ pub mod domain;
|
|||||||
pub mod error;
|
pub mod error;
|
||||||
pub mod http;
|
pub mod http;
|
||||||
pub mod pokemon;
|
pub mod pokemon;
|
||||||
pub mod rate_limit;
|
|
||||||
pub mod service;
|
pub mod service;
|
||||||
pub mod telemetry;
|
pub mod telemetry;
|
||||||
pub mod translation;
|
pub mod translation;
|
||||||
|
|||||||
@@ -3,9 +3,8 @@ use axum::{
|
|||||||
http::{Request, StatusCode, header::HeaderName},
|
http::{Request, StatusCode, header::HeaderName},
|
||||||
};
|
};
|
||||||
use pokedex_api::{
|
use pokedex_api::{
|
||||||
http::{AppState, create_app},
|
http::{AppState, RateLimiter, create_app},
|
||||||
pokemon::PokeApiClient,
|
pokemon::PokeApiClient,
|
||||||
rate_limit::RateLimiter,
|
|
||||||
service::PokedexService,
|
service::PokedexService,
|
||||||
telemetry::Telemetry,
|
telemetry::Telemetry,
|
||||||
translation::TranslationClient,
|
translation::TranslationClient,
|
||||||
|
|||||||
Reference in New Issue
Block a user