Ethereum: вызов конечной точки API по цене 0x и получение ошибки 400 Bad Request
Обработка ошибок с помощью 0x Price API: Руководство
В этой статье мы рассмотрим, как обрабатывать ошибки при обращении к конечной точке API 0x price. В частности, мы рассмотрим проблему, когда мы получаем ответ об ошибке с кодом состояния 400 Bad Request.
Выпуск
При использовании 0x price API вам необходимо сделать POST-запрос к чтобы получить последние цены для заданного адреса Ethereum. Однако нет никакой гарантии, что этот запрос будет успешным, и даже если он будет успешным, вы можете вообще не получить ответа.
Ошибка: 400 Bad Request
Если ваш сервер не выдает сообщение об ошибке при выполнении POST-запроса, но возвращает ответ с кодом состояния 200 OK или другим кодом состояния, отличным от 200. Это может произойти по нескольким причинам:
- Конечная точка API настроена неправильно.
- API достиг предела использования (хотя это маловероятно).
- Сервер выдает внутреннюю ошибку.
Устранение ошибки: Реализация блока try-catch
Для обработки этих ошибок мы будем использовать блок try-catch в нашем внешнем коде. Вот как вы можете изменить свой код:
Ошибка ${response.status}: ${response.statusText}
const ethereumPrice = async () => {
const API_URL = '
const address = '0xYourEthereumAddress'; // Замените на свой Ethereum-адрес
попробуйте {
const response = await fetch(API_URL, {
метод: 'POST',
заголовки: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ amount: 1 }), // Заменить входным значением
});
if (response.ok) {
const data = await response.json();
console.log(data);
} else {
выбросьте новую ошибку(
);
}
} catch (error) {
console.error(error.message); // Выведите сообщение об ошибке в журнал
// Вы также можете вывести сообщение об ошибке для пользователя
alert('Не удалось получить цену. Пожалуйста, повторите попытку позже.');
}
};
Что здесь происходит?
В этом коде:
- Мы определяем функцию ethereumPrice
который выполняет POST-запрос к конечной точке 0x API с указанием входного значения и адреса Ethereum.
- Внутрипопробуйте
в блоке, мы обрабатываем три потенциальные ошибки:
- Если ответ OK (200-299), мы регистрируем данные, возвращенные API, и продолжаем выполнение.
- Если ответ указывает на ошибку (400-499), мы бросаем новый объект ошибки с кодом состояния и сообщением.
- Впоймать
блок, мы обрабатываем все непредвиденные ошибки, возникающие во время запроса или после его выполнения.
попробуйтеблок.
Заключение
Используя блоки try-catch для отлова ошибок при выполнении вызовов 0x Price API, вы можете гарантировать, что ваш внешний код не упадет, если произойдет ошибка. Такой подход обеспечивает чистый и удобный способ обработки ошибок в вашем приложении.
Примечание: В этом примере мы предполагаем, чтоAPI fetch` поддерживается всеми браузерами. Если вам нужна поддержка старых браузеров или Edge, рассмотрите возможность использования другого метода для выполнения POST-запросов, например, с помощью XMLHttpRequest или Axios.