প্রকল্প সম্পর্কে
Soenneker.Docker.Hub.OpenApiClient হলো Docker Hub API-এর জন্য একটি Kiota-জেনারেটেড .NET ক্লায়েন্ট। এটি NuGet-এর জন্য প্যাকেজ করা হয়েছে এবং `dotnet add package Soenneker.Docker.Hub.OpenApiClient` কমান্ডের মাধ্যমে যুক্ত করা যেতে পারে।
একটি ক্লায়েন্ট তৈরি করতে, README-তে একটি `HttpClient` গঠন করা, একটি Bearer অথরাইজেশন হেডার সেট করা, একটি `AnonymousAuthenticationProvider` এবং `HttpClient` সহ একটি `HttpClientRequestAdapter` তৈরি করা, বেস URL হিসেবে `https://hub.docker.com` সেট করা এবং অ্যাডাপ্টারের মাধ্যমে `DockerHubOpenApiClient` ইনস্ট্যানশিয়েট করার পদ্ধতি দেখানো হয়েছে। এটি টোকেনটি সোর্স কন্ট্রোলের বাইরে রাখার এবং `HttpClient`, অ্যাডাপ্টার এবং জেনারেটেড ক্লায়েন্ট পুনরায় ব্যবহার করার পরামর্শ দেয়। একটি সহযোগী প্যাকেজ, `Soenneker.Docker.Hub.OpenApiClientUtil`, ডিপেন্ডেন্সি-ইনজেকশন রেজিস্ট্রেশন এবং ক্যাশড কনস্ট্রাকশন প্রদান করে।
README-তে `client.V2.AccessTokens.GetAsync`-এর মাধ্যমে পার্সোনাল অ্যাক্সেস টোকেন তালিকাভুক্ত করার একটি উদাহরণ রয়েছে, যেখানে `Page` এবং `PageSize` কুয়েরি প্যারামিটার সেট করা হয়েছে এবং রেসপন্স থেকে `Results` কালেকশন পড়া হয়েছে। পেজিনেশন এখানে এক্সপ্লিসিট: কলাররা পরবর্তী কোন পৃষ্ঠাটি রিকোয়েস্ট করবে তা নির্ধারণ করতে রেসপন্স থেকে `Next`, `Previous` এবং `Count` ব্যবহার করে, এবং ক্লায়েন্টটি স্বয়ংক্রিয়ভাবে সমস্ত ফলাফল তালিকাভুক্ত করে না।
রিকোয়েস্ট বিল্ডারগুলো URL হায়ারার্কি অনুসরণ করে, যা `client.V2` থেকে শুরু হয় এবং কালেকশন ইনডেক্সারগুলো অ্যাক্সেস-টোকেন UUID বা অর্গানাইজেশনের নামের মতো পাথ প্যারামিটার সরবরাহ করে। Kiota ডকুমেন্ট করা নন-সাকসেস রেসপন্সগুলোকে `ApiException` থেকে উদ্ভূত জেনারেটেড মডেলে ম্যাপ করে; সঠিক এরর টাইপ এন্ডপয়েন্টের ওপর নির্ভর করে। উদাহরণস্বরূপ, অ্যাক্সেস টোকেন তালিকাভুক্ত করার ক্ষেত্রে `400` কে `ValueError` এবং `401` কে `Error`-এ ম্যাপ করা হয়। README লগিং বা ব্যর্থতা অনুবাদ করার সময় এই বিবরণগুলো সংরক্ষণ করার এবং ক্যানসেলেশন ফ্লো-টিকে কলারের কাছে পৌঁছে দেওয়ার সুপারিশ করে।
যেহেতু ক্লায়েন্ট এবং মডেলগুলো জেনারেটেড, তাই README সরাসরি সেগুলো এডিট না করার সতর্কবার্তা দেয় কারণ পুনর্গঠন (regeneration) সেই পরিবর্তনগুলোকে মুছে ফেলে। Docker Hub-এর স্পেসিফিকেশন পরিবর্তনের সাথে সাথে এন্ডপয়েন্টের নাম, নালিবিলিটি, এরর ম্যাপিং এবং মডেলের আকার পরিবর্তিত হতে পারে, তাই প্রোডাকশন কনজিউমারদের আপগ্রেড করার আগে প্যাকেজ আপডেটগুলো পর্যালোচনা করা উচিত।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.