oxid
— это модуль изоморфных http-запросов на основе rxjs observable.
У этого есть одноранговые зависимости rxjs@6
, которые также необходимо установить.
npm установить оксид
Oxid экспортирует экземпляр oxid
по умолчанию, а также предоставляет класс Oxid
для создания отдельных экземпляров.
import { оксид, Oxid } из 'оксид'; оксид.get('url', options).subscribe();const anotherInstance = new Oxid(customConfigurations);anotherInstance.get('url', options).subscribe();
Весь интерфейс оксида возвращает Observable<HttpEvent<T>>
позволяющий подписаться на функцию базового request
на функцию метода http.
тип requestMethodType = <T>(url: string, config?: RequestConfig) => Observable<HttpEvent<T>>;type requestMethodWithDataType = <T, U>(url: string, data?: T, config?: RequestConfig) = > Observable<HttpEvent<U>>;класс Оксид { публичное удаление только для чтения: requestMethodType; общедоступный доступ только для чтения: requestMethodType; публичный заголовок только для чтения: requestMethodType; общедоступные параметры только для чтения: requestMethodType; общедоступное сообщение только для чтения: requestMethodWithDataType; общедоступный доступ только для чтения: requestMethodWithDataType; общедоступный патч только для чтения: requestMethodWithDataType; публичный запрос<T расширяет объект | строка = любой> (URL: строка, конфигурация?: RequestConfig): Observable<HttpEvent<T>>; публичный запрос<T расширяет объект | строка = любой> (url: строка): Observable<HttpEvent<T>>; публичный запрос<T расширяет объект | строка = любой> (конфигурация: RequestConfig): Observable<HttpEvent<T>>; публичный запрос<T расширяет объект | строка = любой>(urlOrConfig: RequestConfig | строка,config?: RequestConfig ): Observable<HttpEvent<T>> {
Oxid включает набор значений конфигурации по умолчанию. Это значение будет использоваться при использовании экземпляра запроса oxid
. При создании нового экземпляра через класс он по умолчанию не включает никаких значений параметров, которые необходимо указать через конструктор класса. Тем не менее, отдельный метод ( request()
и rest) принимает RequestConfig
отдельно, который объединяется с конфигурациями при создании экземпляра.
интерфейс RequestConfigBase { URL?: строка; метод?: Метод; baseURL?: строка; TransformRequest?: Трансформер | Массив<Трансформатор>; TransformResponse?: Трансформер | Массив<Трансформатор>; заголовки?: любые; параметры?: любые; paramsSerializer?: (params: любой) => строка; данные?: любые; адаптер?: Адаптер; аутентификация?: BasicCredentials; ТипОтвета?: ТипОтвета; Кодирование ответа?: строка; xsrfCookieName?: строка; xsrfHeaderName?: строка; maxContentLength?: число; validateStatus?: (статус: число) => логическое значение; maxRedirects?: число; SocketPath?: строка | нулевой; прокси?: ProxyConfig;}интерфейс RequestConfigNode расширяет RequestConfigBase { /** * Пользовательский агент, который будет использоваться в HTTP-запросе узла. */ httpAgent?: любой; /** * Пользовательский агент, который будет использоваться в https-запросе узла. */ httpsAgent?: любой; транспорт?: {запрос: typeof import('http').request };}interface RequestConfigBrowser расширяет RequestConfigBase { /** * Генерирует событие прогресса для запроса xhr. */ reportProgress?: логическое значение; withCredentials?: логическое значение;}
импортировать {оксид, Oxid, defaultOptions} из «оксида»; оксид.get(url); //будем использовать `defaultOptions`оксид.get({url, withCredentials: false}); //будем использовать `defaultOptions`, переопределить `withCredentials`const else = new Oxid(); //нет базовой конфигурацииconst anotherWithConfig = new OXID({withCredendials: false}) //устанавливаем базовую конфигурациюanotherWithConfig.get({url, withCredentials: false}) //будем использовать конфигурацию при создании экземпляра, переопределить `withCredentials`
Обратите внимание, что объект defaultOptions
является неизменяемым. Изменение и переназначение значений в существующее значение конфигурации по умолчанию не будет работать, вместо этого следует создать новый объект конфигурации.
Сам Oxid не имеет механизма записи журнала. Вместо этого он предоставляет функцию для подключения любого регистратора, используемого в приложении.
функция EnableLogger (регистратор: logFunctionType): void; функция EnableLogger (регистратор: Partial<Logger>): void;
Это может быть либо одна функция, либо объект с такими уровнями журнала, как отладка, информация, предупреждение, ошибка. Примечания: enableLogger
— это глобальная функция , которая влияет на любой экземпляр оксида и начинает создавать журнал только один раз после вызова enableLogger
.
import { EnableLogger, OXID } from 'Oxid';// логи не выдаются OXID.get().subscribe();enableLogger(console.log.bind(console));// теперь внутренние логи будут выдаваться через consoleOXID.get ().подписаться();
Для кода сборки/тестирования поддерживается несколько сценариев npm.
build
: Транспилирует код в dist
.
build:clean
: Очистить существующую сборку.
test
: Запустить модульный тест. Не требует build
перед выполнением теста.
lint
: запустить lint для всех кодовых баз.
Хотя этот модуль официально НЕ является аффилированным лицом, он опирается на многие известные разработки из axios
и @angular/http
. Вы можете заметить некоторую схожую логику, и это ожидаемо.