প্রকল্প সম্পর্কে
Soenneker.Copper.OpenApiClientUtil হলো একটি .NET লাইব্রেরি যা একটি কনফিগার করা Copper HTTP প্রোভাইডারের উপর ভিত্তি করে Copper API-এর জন্য lazily তৈরি এবং পুনরায় ব্যবহারযোগ্য Kiota-জেনারেটেড ক্লায়েন্ট প্রদান করে।
এটি যা করে
- এটি একটি `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()`, যদিও তারা singleton 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.