UNPKG

ngx-api-manager

Version:
32 lines (31 loc) 3.1 kB
/** * 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; }