منصوبے کے بارے میں
Soenneker.Docker.Hub.OpenApiClient Docker Hub API کے لیے ایک Kiota-generated .NET کلائنٹ ہے۔ اسے NuGet کے لیے پیکیج کیا گیا ہے اور اسے `dotnet add package Soenneker.Docker.Hub.OpenApiClient` کے ذریعے شامل کیا جا سکتا ہے۔
کلائنٹ بنانے کے لیے، README میں ایک `HttpClient` بنانے، Bearer authorization ہیڈر سیٹ کرنے، `AnonymousAuthenticationProvider` اور `HttpClient` کے ساتھ ایک `HttpClientRequestAdapter` بنانے، بیس URL کو `https://hub.docker.com` پر سیٹ کرنے، اور اڈاپٹر کے ساتھ `DockerHubOpenApiClient` کو انسٹینشئیٹ کرنے کا طریقہ دکھایا گیا ہے۔ یہ مشورہ دیا گیا ہے کہ ٹوکن کو سورس کنٹرول سے باہر رکھا جائے اور `HttpClient`، اڈاپٹر، اور جنریٹڈ کلائنٹ کو دوبارہ استعمال کیا جائے۔ ایک ساتھی پیکیج، `Soenneker.Docker.Hub.OpenApiClientUtil`، dependency-injection رجسٹریشن اور کیشڈ کنسٹرکشن فراہم کرتا ہے۔
README میں `client.V2.AccessTokens.GetAsync` کے ذریعے پرسنل ایکسیس ٹوکنز کی فہرست بنانے، `Page` اور `PageSize` کیوری پیرامیٹرز سیٹ کرنے، اور ریسپانس سے `Results` کلیکشن پڑھنے کی ایک مثال شامل ہے۔ Pagination واضح ہے: کالرز ریسپانس سے `Next`، `Previous` اور `Count` کا استعمال کرتے ہیں تاکہ فیصلہ کیا جا سکے کہ اگلا کون سا صفحہ درخواست کرنا ہے، اور کلائنٹ خود بخود تمام نتائج کو enumerate نہیں کرتا ہے۔
درخواست بنانے والے (Request builders) URL کی درجہ بندی (hierarchy) پر عمل کرتے ہیں، جو `client.V2` سے شروع ہوتی ہے، اور کلیکشن انڈکسرز پاتھ پیرامیٹرز فراہم کرتے ہیں جیسے کہ ایکسیس ٹوکن UUID یا آرگنائزیشن کا نام۔ Kiota دستاویزی غیر کامیاب ریسپانسز کو `ApiException` سے اخذ شدہ جنریٹڈ ماڈلز میں میپ کرتا ہے؛ غلطی کی درست قسم اینڈ پوائنٹ پر منحصر ہوتی ہے۔ مثال کے طور پر، ایکسیس ٹوکنز کی فہرست بناتے وقت `400` کو `ValueError` اور `401` کو `Error` میں میپ کیا جاتا ہے۔ README سفارش کرتا ہے کہ ناکامیوں کو لاگ کرتے یا ترجمہ کرتے وقت ان تفصیلات کو برقرار رکھا جائے اور کینسلیشن (cancellation) کو کالر تک پہنچنے دیا جائے۔
کلائنٹ اور ماڈلز جنریٹڈ ہیں، اس لیے README انہیں براہ راست ایڈٹ کرنے کے خلاف خبردار کرتا ہے کیونکہ دوبارہ جنریشن ان تبدیلیوں کو ختم کر دیتی ہے۔ جب Docker Hub کی تفصیلات (specification) تبدیل ہوتی ہیں تو اینڈ پوائنٹ کے نام، nullability، ایرر میپنگ، اور ماڈل کی شکلیں تبدیل ہو سکتی ہیں، اس لیے پروڈکشن صارفین کے لیے اپ گریڈ کرنے سے پہلے پیکیج اپ ڈیٹس کا جائزہ لیا جانا چاہیے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.