делать обработку ошибок?
например у меня есть раутер, которому я регистрирую хендлеры.
Например хендлеры возвращают axum::response::Json
а где здесь место для ошибки?
там же небось можно просто резалт из функции вернуть?
если ошибка реализует какой-то специальный магический трейт
Я обычно делаю async fn process_thing() -> Result<Json<T>, ProcessThingError> {} #[derive(Debug)] #[derive(thiserror::Error)] enum ProcessThingError { Storage(…), ThirdPartyService(…), } impl IntoResponse { fn into_response(self) -> Response { let (status_code, details) = match self { … }; let trace_id = /* … */; (status_code, Json(ApiError { details, trace_id })).into_response() } }
Обсуждают сегодня