Обновить

Комментарии 4

Фокусы МВД. Подтверждение ИНН (от ФНС) через СМЭВ как работало, так и работает. Та сбоев не было.

Здорово что вы умеете отличать 403 от 503. Ну и что?

            } else if status.as_u16() == 403
                || status.as_u16() == 423
                || status.as_u16() == 429
                || status.as_u16() == 503
            {
                let reason_kind = UnavailableReason::from_http_status(
                    status.as_u16(),
                    res.headers().contains_key(reqwest::header::RETRY_AFTER),
                );  // ок, вызывается описанная в статье функция
                // ...
                return Err(SmevError::Unavailable {
                    // и форматируется в строку, упс
                    reason: format!("{reason_kind:?} ({status})"),
                });

Дублирующие запросы при любой тарификации выливаются в дополнительные расходы. request_fingerprint в крейте даёт детерминированный BLAKE3-хеш от входящих байтов. Один и тот же запрос, один и тот же хеш.

Можно использовать как ключ кеша:

Логика простая: один реальный запрос при первичной проверке, повторные сессии берутся из кеша. Это быстро окупится, когда появится тариф.

Желание сэкономить, организовав у себя кэш ответов на запросы, индексированный хэшем данных запроса, вполне понятно.

Непонятно, кто будет отвечать, если кэш ответов вернёт старый статус некоего паспорта как валидного, в то время как МВД его у себя уже заблокировало, и это всплывёт, например, в суде. У СМЭВ ведь нет функционала оповещения о невалидности Вашего локального кэша.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации