oxid
هو وحدة طلب http المتماثلة القائمة على rxjs والتي يمكن ملاحظتها.
يحتوي هذا على تبعيات نظير rxjs@6
، والتي يجب تثبيتها أيضًا
npm تثبيت أكسيد
يقوم Oxid بتصدير المثيل الافتراضي oxid
، ويكشف أيضًا عن فئة Oxid
لإنشاء مثيلات منفصلة.
import { oxid, Oxid } from 'oxyd';oxy.get('url', options).subscribe();const AnotherInstance = new Oxid(customConfigurations);anotherInstance.get('url', options).subscribe();
تُرجع واجهة oxy بالكامل Observable<HttpEvent<T>>
التي تسمح بالاشتراك من وظيفة request
الأساسية إلى وظيفة طريقة http.
اكتب requestMethodType = <T>(url: string, config?: RequestConfig) => Observable<HttpEvent<T>>;اكتب requestMethodWithDataType = <T, U>(url: string, data?: T, config?: RequestConfig) = > يمكن ملاحظتها<HttpEvent<U>>;فئة أكسيد { حذف عام للقراءة فقط: requestMethodType؛ الحصول على القراءة العامة فقط: requestMethodType؛ الرأس العام للقراءة فقط: requestMethodType؛ خيارات القراءة العامة العامة: requestMethodType؛ منشور عام للقراءة فقط: requestMethodWithDataType؛ وضع للقراءة العامة فقط: requestMethodWithDataType؛ التصحيح العام للقراءة فقط: requestMethodWithDataType؛ طلب عام <T يمتد الكائن | string = Any>(url: string, config?: RequestConfig): Observable<HttpEvent<T>>; طلب عام <T يمتد الكائن | string = Any>(url: string): Observable<HttpEvent<T>>; طلب عام <T يمتد الكائن | string = Any>(config: RequestConfig): Observable<HttpEvent<T>>; طلب عام <T يمتد الكائن | سلسلة = أي>(urlOrConfig: RequestConfig | سلسلة، التكوين؟: RequestConfig ): يمكن ملاحظتها<HttpEvent<T>> {
يتضمن Oxid مجموعة افتراضية من قيم التكوين. سيتم استخدام هذه القيمة عند استخدام مثيل الطلب oxid
. عند إنشاء مثيل جديد عبر الفصل، فإنه لا يتضمن أي قيم خيارات افتراضيًا، ويجب تحديدها عبر مُنشئ الفصل. ومع ذلك، فإن الطريقة الفردية ( request()
وrest) تقبل RequestConfig
بشكل منفصل، والتي سيتم دمجها في التكوينات عند إنشاء المثيل.
واجهة طلبConfigBase { عنوان url؟: سلسلة؛ الطريقة؟: الطريقة؛ baseURL ؟: سلسلة؛ تحويل الطلب ؟: محول | صفيف<محول>; تحويل الاستجابة ؟: محول | صفيف<محول>; الرؤوس؟: أي؛ المعلمات؟: أي؛ paramsSerializer?: (params: Any) => string; البيانات؟: أي؛ محول؟: محول؛ المصادقة؟: BasicCredentials؛ نوع الاستجابة؟: نوع الاستجابة؛ ترميز الاستجابة؟: سلسلة؛ xsrfCookieName?: string; xsrfHeaderName?: string; maxContentLength ؟: number; validateStatus?: (الحالة: الرقم) => boolean; maxRedirects ؟: الرقم؛ المقبس؟: سلسلة | باطل؛ الوكيل ؟: ProxyConfig;}واجهة RequestConfigNode الممتدة RequestConfigBase { /** * وكيل مخصص ليتم استخدامه في طلب العقدة http. */ وكيل http؟: أي؛ /** * الوكيل المخصص الذي سيتم استخدامه في طلب العقدة https. */ httpsAgent؟: أي؛ النقل ؟: { طلب: typeof import('http').request };}واجهة RequestConfigBrowser تمتد RequestConfigBase { /** * إرسال حدث التقدم لطلب xhr. */ تقرير التقدم ؟: boolean; مع بيانات الاعتماد؟: منطقي؛}
استيراد {oxy، Oxid، defaultOptions} من 'أكسدة'؛oxy.get(url); // سيستخدم `defaultOptions`oxy.get({url, withCredentials: false}); // سوف يستخدم `الخيارات الافتراضية`، ويتجاوز `مع بيانات الاعتماد`const else = new Oxid(); // لا يوجد تكوين أساسي آخر مع Config = جديد OXI({withCredendials: false}) // تعيين التكوين الأساسيanotherWithConfig.get({url, withCredentials: false}) // سيستخدم التكوين عند إنشاء المثيل، وتجاوز `withCredentials`
لاحظ أن كائن defaultOptions
غير قابل للتغيير. لن ينجح تغيير القيم وإعادة تعيينها إلى قيمة التكوين الافتراضية الحالية، وبدلاً من ذلك يجب إنشاء كائن تكوين جديد.
لا يمتلك Oxid نفسه آلية لكتابة السجل. بدلاً من ذلك، فإنه يعرض وظيفة لتوصيل أي مسجل مستخدم في التطبيق.
وظيفة EnableLogger (logger: logFunctionType): void؛ وظيفة EnableLogger (logger: Partial<Logger>): void؛
يمكن أن يكون إما وظيفة واحدة، أو كائن له مستويات تسجيل مثل التصحيح، والمعلومات، والتحذير، والخطأ. Notes enableLogger
هي وظيفة عامة تؤثر على أي مثيل للأكسدة، وتبدأ في إرسال السجل مرة واحدة فقط بعد استدعاء enableLogger
.
import {enableLogger, oxy } from 'oxyd';// لا تنبعث السجلات من أكسيد.get().subscribe();enableLogger(console.log.bind(console));// الآن سيتم إصدار السجلات الداخلية عبر consolexi.get ().يشترك()؛
يتم دعم عدد قليل من البرامج النصية npm لرمز البناء/الاختبار.
build
: Transpiles رمز dist
.
build:clean
: تنظيف البناء الموجود.
test
: تشغيل اختبار الوحدة. لا يتطلب build
قبل تنفيذ الاختبار.
lint
: قم بتشغيل الوبر على جميع قواعد التعليمات البرمجية.
على الرغم من أن هذه الوحدة ليست تابعة رسميًا، إلا أنها تعتمد على الكثير من المعلومات السابقة من axios
و @angular/http
. قد تلاحظ بعض المنطق المشابه وهو أمر متوقع.