منصوبے کے بارے میں
Soenneker.Copper.OpenApiClientUtil ایک .NET لائبریری ہے جو Copper API کے لیے ایک لیزیلی تخلیق شدہ، دوبارہ استعمال کے قابل Kiota-generated کلائنٹ فراہم کرتی ہے، جو ایک کنفیگرڈ Copper HTTP فراہم کنندہ (provider) پر مبنی ہے۔
یہ کیا کرتا ہے
- یہ ایک `ICopperOpenApiClientUtil` own abstraction پیش کرتا ہے جس کا `Get` میتھڈ یوٹیلیٹی کی لائف ٹائم کے لیے کلائنٹ کو ایک بار initialize کرتا ہے؛ بیک وقت کال کرنے والے اس initialization کو شیئر کرتے ہیں اور انہیں ایک ہی کلائنٹ انسٹنس ملتا ہے۔
- یہ ایک 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 فراہم کنندہ کو شیئر کیا جائے۔
عام استعمال
ایک کنزیومر کلاس `ICopperOpenApiClientUtil` کو انجیکٹ کرتی ہے، `clientUtil.Get(cancellationToken)` کا انتظار کرتی ہے اور پھر جنریٹڈ اینڈ پوائنٹ میتھڈز جیسے `client.Account.GetAsync(...)` کو کال کرتی ہے۔
دستاویزی انتباہات
- کنفیگریشن اس وقت کیپچر کی جاتی ہے جب بنیادی HTTP کلائنٹ پہلی بار بنایا جاتا ہے، اس لیے کریڈنشلز یا بیس URL کی تبدیلیوں کے لیے سروس لائف ٹائم کو دوبارہ بنانے کی ضرورت ہوتی ہے۔
- اسکوپڈ یوٹیلیٹی کو ڈسپوز کرنے سے اس کا جنریٹڈ-کلائنٹ ریفرنس ریلیز ہو جاتا ہے لیکن شیئرڈ `HttpClient` ختم نہیں ہوتا؛ HTTP فراہم کنندہ اس کلائنٹ کو اس وقت ڈسپوز کرتا ہے جب ایپلی کیشن کنٹینر بند ہوتا ہے۔
- کچھ جنریٹڈ اینڈ پوائنٹس JSON کو `string?` کے طور پر واپس کرتے ہیں کیونکہ سورس Postman کلیکشن میں مضبوط رسپانس اسکیما کی کمی ہے۔
- API کی، ٹوکن-مالک ای میل اور Copper کیٹھےنٹیکیشن ہیڈرز کو لاگز اور ٹریسز سے حذف کیا جانا چاہیے۔
اسکوپ
یہ ریپوزٹری ایک پتلا کلائنٹ ریپر ہے، مکمل CRM ایپلی کیشن نہیں: یہ کلائنٹ کی تخلیق اور لائف ٹائم مینجمنٹ فراہم کرتا ہے، جبکہ API کوریج اور رسپانس کی شکلیں جنریٹڈ Copper کلائنٹ کے ذریعے طے کی جاتی ہیں۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.