APIra
Простая библиотека для формирования запросов. Является оберткой над axios
Основные возможности:
- Хуки с интерфейсом middleware из koa (используется koa-compose)
- Поддержка параметров url (спасибо pathToRegexp), например
http://example.ru/users/:id
- Возможность настройки конфига axios
Примеры
Создание:
const api = adapter: axios
Отправка запроса:
api api data someData: 'someData'
Использование хуков:
const logHook = async { console // response == null await console // response != null} api
Наследование:
const api = adapter: axios api options headers: Authorization: 'Bearer SomeToken' const api_v2 = api
API
APIra
APIra reference
constructor
const api = new APIra([config], [hooks], [adapter])
Параметр | Тип | Описание |
---|---|---|
config | object |
Настройки axios |
hooks | function[] |
Массив хуков |
adapter | function |
Инстанс axios (или его mock) |
hook
api.hook([hookFn])
Добавляет хук в очередь
Параметр | Тип | Описание |
---|---|---|
[hookFn] | Function |
Принимаются только асинхронные функции |
url
api.url(urlPath)
Задает URL, по которому будет выполняться запрос
Параметр | Тип | Описание |
---|---|---|
urlPath | string |
URL-адрес |
params
api.params([options])
Задает параметры для URL'a.
Параметр | Тип | Описание |
---|---|---|
[options] | object |
Объект параметров |
Пример объекта параметров для https://example.ru/users/:userId/comments/:commentId
:
userId: id commentId: id
query
api.query([queryOptions])
Создает из объекта queryString
Параметр | Тип | Описание |
---|---|---|
[queryOptions] | object |
Объект query параметров |
Пример query-объекта для foo=bar&abc=xyz
:
foo: 'bar' abc: 'xyz'
data
api.data([dataOptions])
Задает тело запроса
Параметр | Тип | Описание |
---|---|---|
[dataOptions] | object |
Объект data параметров |
Пример data-объекта:
user_id: id
options
api.options([options])
Позволяет дополнить дефолтный конфиг axios
Параметр | Тип | Описание |
---|---|---|
[options] | object |
Объект axios параметров |
Пример объекта axios параметров:
baseURL: '/api/v1/'
GET | POST | PUT | DELETE
api
Функции вызова соответсвующих методов
inspect
api.inspect()
Возвращает конфиг axios
extend
const api_v2 = api.extend()
Позволяет скопировать инстанс, сохраняя adapter, config и hooks
TODO
- Оптимизировать сборку