প্রকল্প সম্পর্কে

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 ক্লায়েন্ট দ্বারা সংজ্ঞায়িত।