oxid
rxjs 観察可能なベースの同型 http リクエスト モジュールです。
これにはrxjs@6
のピア依存関係があり、これもインストールする必要があります
npmインストールオキシド
Oxid はデフォルトのインスタンスoxid
エクスポートし、別のインスタンスを構築するためのOxid
クラスも公開します。
import { oxy, Oxid } from 'oxy';oxy.get('url', options).subscribe();const anotherInstance = new Oxid(customConfigurations);anotherInstance.get('url', options).subscribe();
ox のインターフェイスはすべてObservable<HttpEvent<T>>
を返し、ベースrequest
関数から http メソッド関数にサブスクライブできます。
type requestMethodType = <T>(url: string, config?: RequestConfig) => Observable<HttpEvent<T>>;type requestMethodWithDataType = <T, U>(url: string, data?: T, config?: RequestConfig) = > Observable<HttpEvent<U>>;class Oxid { パブリック読み取り専用削除: requestMethodType; public readonly get: requestMethodType; パブリック読み取り専用ヘッド: requestMethodType; パブリック読み取り専用オプション: requestMethodType; パブリック読み取り専用投稿: requestMethodWithDataType; public readonly put: requestMethodWithDataType; パブリック読み取り専用パッチ: requestMethodWithDataType; public request<T extends object | string = any>(url: string, config?: RequestConfig): Observable<HttpEvent<T>>; public request<T extends object |文字列 = 任意>(url: 文字列): Observable<HttpEvent<T>>; public request<T extends object | string = any>(config:RequestConfig):Observable<HttpEvent<T>>; public request<T extends object | string = any>(urlOrConfig:RequestConfig | string,config?:RequestConfig ): Observable<HttpEvent<T>> {
Oxid には、デフォルトの構成値セットが含まれています。この値は、リクエスト インスタンスoxid
使用するときに使用されます。クラス経由で新しいインスタンスを作成する場合、デフォルトではオプション値が含まれないため、クラス コンストラクター経由で指定する必要があります。それでも、個々のメソッド ( request()
およびrest) はRequestConfig
個別に受け入れ、インスタンスの作成時に構成にマージされます。
インターフェース RequestConfigBase { URL?: 文字列; メソッド?: メソッド; ベースURL?: 文字列; transformRequest?: トランスフォーマー |配列<トランスフォーマー>; 変換応答?: トランス |配列<トランスフォーマー>; ヘッダー?: 任意; パラメータ?: 任意; paramsSerializer?: (params: 任意) => 文字列; データ?: 任意; アダプター?: アダプター; 認証?: BasicCredentials; 応答タイプ?: 応答タイプ; 応答エンコーディング?: 文字列; xsrfCookieName?: 文字列; xsrfHeaderName?: 文字列; maxContentLength?: 数値; validateStatus?: (ステータス: 数値) => ブール値; maxRedirects?: 数値; ソケットパス?: 文字列 | null; proxy?: ProxyConfig;}interface RequestConfigNode extends RequestConfigBase { /** * ノード http リクエストで使用されるカスタム エージェント。 */ httpエージェント?: 任意; /** * ノード https リクエストで使用されるカスタム エージェント。 */ httpsエージェント?: 任意; Transport?: { request: typeof import('http').request };}インターフェイス RequestConfigBrowser extends RequestConfigBase { /** * xhr リクエストの進行状況イベントを発行します。 */ レポート進捗状況?: ブール値; withCredentials?: ブール値;}
import {オキシド, Oxid,defaultOptions} から 'オキシド';オキシド.get(url); // `defaultOptions` を使用します oxyd.get({url, withCredentials: false}); // `defaultOptions` を使用し、`withCredentials` をオーバーライドしますconst another = new Oxid(); // 基本構成なしconst anotherWithConfig = new oxy({withCredentials: false}) // 基本構成を設定anotherWithConfig.get({url, withCredentials: false}) // インスタンスの作成時に構成を使用し、`withCredentials` をオーバーライドします
defaultOptions
オブジェクトは不変であることに注意してください。値を変更したり、既存のデフォルト構成値に再割り当てしたりすることはできません。代わりに、新しい構成オブジェクトを構築する必要があります。
Oxid 自体にはログを書き込むメカニズムがありません。代わりに、アプリケーションで使用されるロガーを接続する関数を公開します。
関数enableLogger(logger: logFunctionType): void;関数enableLogger(logger: Partial<Logger>): void;
単一の関数、またはデバッグ、情報、警告、エラーなどのログレベルを持つオブジェクトのいずれかになります。注: enableLogger
、oxyd のインスタンスに影響を与えるグローバル関数であり、 enableLogger
が呼び出された後に 1 回だけログの出力を開始します。
import {enableLogger, oxy } from 'oxy';// ログは出力されませんox.get().subscribe();enableLogger(console.log.bind(console));// 現在、内部ログは consoleoxy.get 経由で出力されます()。購読する();
ビルド/テスト コード用にサポートされている npm スクリプトはほとんどありません。
build
: コードをdist
にトランスパイルします。
build:clean
: 既存のビルドをクリーンアップします。
test
: 単体テストを実行します。テストを実行する前にbuild
必要はありません。
lint
: すべてのコードベースに対して lint を実行します。
このモジュールは正式に提携していませんが、 axios
と@angular/http
の多くの先行技術に依存しています。同様のロジックがいくつかあることに気づくかもしれませんが、それは想定内のことです。