عن المشروع
تعد Soenneker.Copper.OpenApiClientUtil مكتبة .NET توفر عميلاً قابلاً لإعادة الاستخدام تم إنشاؤه بواسطة Kiota لـ Copper API، مبني فوق مزود Copper HTTP مهيأ.
ما تقوم به
- توفر تجريد `ICopperOpenApiClientUtil` حيث تقوم طريقة `Get` بتهيئة العميل مرة واحدة طوال فترة حياة الأداة؛ ويتشارك المتصلون المتزامنون في هذه التهيئة ويتلقون نفس نسخة العميل.
- تعمل فوق حزمة Copper HTTP التي ترسل الرؤوس التي يتطلبها Copper: `X-PW-AccessToken` و `X-PW-Application` و `X-PW-UserEmail`.
- يتم قراءة التكوين من قسم `Copper` (على سبيل المثال `ApiKey` و `Email` لمالك الرمز)، كما تدعم الحزمة الأساسية `Copper:ClientBaseUrl` و `Copper:Application` و `Copper:AuthHeaderName` و `Copper:AuthHeaderValueTemplate`.
التثبيت والتسجيل
يتم التثبيت عبر `dotnet add package Soenneker.Copper.OpenApiClientUtil`. يتم توفير مسجلي DI اثنين: `AddCopperOpenApiClientUtilAsSingleton()` لعميل واحد مشترك، و `AddCopperOpenApiClientUtilAsScoped()` عندما يجب أن يقوم كل نطاق تطبيق بتخزين العميل المولد الخاص به مع الاستمرار في مشاركة مزود HTTP singleton.
الاستخدام النموذجي
تقوم فئة المستهلك بحقن `ICopperOpenApiClientUtil` وتنتظر `clientUtil.Get(cancellationToken)` ثم تستدعي طرق النهاية الطرفية المولدة مثل `client.Account.GetAsync(...)`.
تحذيرات موثقة
- يتم التقاط التكوين عند إنشاء عميل HTTP الأساسي لأول مرة، لذا تتطلب تغييرات بيانات الاعتماد أو رابط URL الأساسي إعادة إنشاء دورة حياة الخدمة.
- يؤدي التخلص من الأداة ذات النطاق (scoped) إلى تحرير مرجع العميل المولد دون إزالة `HttpClient` المشترك؛ حيث يقوم مزود HTTP بالتخلص من ذلك العميل عند إغلاق حاوية التطبيق.
- تعيد بعض النهايات الطرفية المولدة JSON كـ `string?` لأن مجموعة Postman المصدر تفتقر إلى مخطط استجابة قوي.
- يجب حجب مفتاح API وبريد مالك الرمز ورؤوس مصادقة Copper من السجلات والتتبعات.
النطاق
المستودع عبارة عن غلاف عميل بسيط، وليس تطبيق CRM كاملاً: فهو يوفر إنشاء العميل وإدارة دورة حياته، بينما يتم تحديد تغطية API وأشكال الاستجابة بواسطة عميل Copper المولد.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.