Запрос поддержки
Тип | Поддержка |
---|---|
GET | ✔ |
DELETE | ✔ |
HEAD | ✔ |
OPTIONS | ✔ |
PUT | ✔ |
POST | ✔ |
PATCH | ✔ |
Пример
Если вы хотите узнать о том, как изучить плагин egg-axios-plus, мы настоятельно рекомендуем вам изучить фреймворк Axios и Eggjs. Как следует из названия, этот плагин необходимо применять в проекте egg. Давайте начнём писать пример кода.
// Вы можете написать код запроса с помощью egg-axios-plus в controller.js или service.js
// Поддержка get
this.ctx.axios.get("request url", {
// объект параметров
}).then(callbackData => {
// эти данные являются только данными ответа удалённого сервера методом обратного вызова
console.log(callbackData);
// добавьте код для работы с данными из запроса get
}).catch(err => {
// Если в запросе есть ошибка, она будет обнаружена здесь
console.log(err)
})
// поддержка post
this.ctx.axios.post("request url", {
// объект параметров
}).then(callbackData => {
console.log(callbackData);
}).catch(err => {
console.log(err)
})
// поддержка put, delete и других распространённых типов запросов, просто напишите как верхний код;
Если вы не хотите использовать функцию обратного вызова для получения результата запроса в процессе кода, egg-axios-plus также может поддерживать способ синхронного получения запроса с async/await. Но будьте бдительны, что родительский метод, который использовал axios, должен быть асинхронным.
try {
const responseData = await this.ctx.axios.get('request url', {
// объект параметров
});
// Добавьте код для управления данными с помощью await
console.log(responseData);
} catch (err) {
console.log(err)
}
API
Запросы можно выполнять, передавая соответствующий конфиг в axios
.
// Отправить запрос POST
this.ctx.axios({
method: 'post',
url: '/user/12345',
data: {
firstName: 'Fred',
lastName: 'Flintstone'
}
});
// Запрос GET для удалённого изображения
this.ctx.axios({
method: 'get',
url: 'http://bit.ly/2mTM3nY',
responseType: 'stream'
}).then(response => {
console.log(response);
});
Для удобства были предоставлены псевдонимы для всех поддерживаемых методов запроса.
this.ctx.axios.request(config)
this.ctx.axios.get(url[, config])
this.ctx.axios.delete(url[, config])
this.ctx.axios.head(url[, config])
this.ctx.axios.options(url[, config])
this.ctx.axios.post(url[, data[, config]])
this.ctx.axios.put(url[, data[, config]])
this.ctx.axios.patch(url[, data[, config]])
При использовании методов псевдонима url
, method
и data
свойства не нужно указывать в конфиге.
Вы можете указать конфиг по умолчанию, который будет применяться к каждому запросу.
const axios = this.ctx.axios;
axios.defaults.baseURL = 'https://api.example.com';
axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
// Устанавливаем настройки конфига при создании экземпляра
const instance = axios.create({
baseURL: 'https://api.example.com'
});
// Изменяем настройки после создания экземпляра
instance.defaults.headers.common['Authorization'] = AUTH_TOKEN;
Конфиг будет объединён с порядком приоритета. Порядок — это значения по умолчанию библиотеки, найденные в lib/defaults.js, затем свойство defaults
экземпляра и, наконец, аргумент config
для запроса. Последний будет иметь приоритет над первым. Вот пример.
// Создаём экземпляр, используя настройки конфига по умолчанию, предоставляемые библиотекой
// На данный момент значение конфигурации таймаута равно 0, как и значение по умолчанию для библиотеки
const instance = axios.create();
// Переопределяем значение таймаута по умолчанию для библиотеки
// Теперь все запросы, использующие этот экземпляр, будут ждать 2,5 секунды перед истечением времени ожидания
*Примечание: в тексте запроса присутствуют фрагменты кода на языке JavaScript, которые были оставлены без перевода.* **instance.defaults.timeout = 2500;**
// Переопределяем таймаут для этого запроса, так как известно, что он занимает много времени
**instance.get('/longRequest', {
timeout: 5000
});**
*Дополнительные примеры можно найти на сайте:* https://github.com/axios/axios или связаться с Тейлором (https://github.com/mmdapl).
### Вопросы и предложения
Пожалуйста, создайте задачу [здесь](https://github.com/mmdapl/egg-axios-plus/issues).
### Ссылки
* egg-axios-plus 中文使用手册 (README.zh_CN.md)
* Axios 中文说明 (https://www.kancloud.cn/yunye/axios/234845)
* пример кода (example)
### Автор
[Rong姐姐好可爱](https://github.com/mmdapl)
### Лицензия
```text
MIT License
Copyright (c) 2022 142vip FairySister Rong姐��се好可爱
Настоящим предоставляется право, бесплатно, любому лицу, получающему копию данного программного обеспечения и связанных с ним файлов документации («Программное обеспечение»), работать с Программным обеспечением без ограничений, включая, помимо прочего, права на использование, копирование, изменение, объединение, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также разрешать лицам, которым предоставлено Программное обеспечение, делать это при соблюдении следующих условий:
Приведённое выше уведомление об авторских правах и настоящее разрешение должны быть включены во все копии или существенные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ И ОТСУТСТВИЯ НАРУШЕНИЙ ПРАВ ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ. НИ В КОЕМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УЩЕРБ ИЛИ ДРУГИЕ ОБЯЗАТЕЛЬСТВА, ВОЗНИКАЮЩИЕ ИЗ, В РЕЗУЛЬТАТЕ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ИНЫМИ ДЕЙСТВИЯМИ В ОТНОШЕНИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.*
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )