ngx-api-manager
Version:
Module for configuration http requests
32 lines (31 loc) • 3.1 kB
TypeScript
/**
* TODO Добавить в модуль api функцию кеширования данных
* Есть компоненты которые запрашивают данные при инициализации используя api. При каждом появлении
* компонента происходит http запрос используя сервис. Нужно для модуля api реализовать возможность кэширования, чтобы
* при запросе данных сервис выполнял http запрос только в случае если данных нет в хранилище или требуется выполнить
* обновление данных с http запросом.
* Для этого в модуль api нужно добавить функцию сохранения данных в хранилище и проверку нужных данных там же.
* Так же нужно реализовать разные типы хранилищь. Локальное(просто в памяти), LocalStorage и адаптер для Redux.
*
* Хранилище redux как и любое другое хранилище должно быть недоступно для редактиорования внешним кодом и хранить
* состояние данных получаемых по api. Если данные были сохранены на сервер то они должны быть обновлены в хранилище.
*
* При каждом get запросе в хранилище создается поле с уникальным значением для этого запроса. Разные сервисы могут
* выполнять для одного и тогоже роута запросы с разными фильтрами. Для каждого такого запроса должен создаваться
* отдельный объект. При вызове api.request сервис передает api свое имя которое станет уникальным значением для
* хранрения и последущего получения данных. Любой сервис может так же пердать параметры указывающие нужно ли
* кэшировать запрос или нет, нужно ли выполнить обновление данных или получать их из хранилища, а так же указать
* какое хранилище использовать.
* */
import { ModuleWithProviders } from '@angular/core';
import { ISApi } from './typings';
export * from './api.service';
export * from './token.service';
export * from './errors-stream.service';
export * from './loading-stream.service';
export declare class NgxApiManager {
static forRoot(options?: {
storages?: ISApi.storages;
configs?: Array<ISApi.apiConfig>;
}): ModuleWithProviders;
}