À propos du projet

Soenneker.Docker.Hub.OpenApiClient est un client .NET généré par Kiota pour l'API Docker Hub. Il est disponible sur NuGet et peut être ajouté avec `dotnet add package Soenneker.Docker.Hub.OpenApiClient`. Pour créer un client, le README explique comment construire un `HttpClient`, définir un en-tête d'autorisation Bearer, créer un `HttpClientRequestAdapter` avec un `AnonymousAuthenticationProvider` et le `HttpClient`, définir l'URL de base sur `https://hub.docker.com`, et instancier `DockerHubOpenApiClient` avec l'adaptateur. Il est conseillé de garder le jeton hors du contrôle de source et de réutiliser le `HttpClient`, l'adaptateur et le client généré. Un package compagnon, `Soenneker.Docker.Hub.OpenApiClientUtil`, fournit l'enregistrement pour l'injection de dépendances et la construction mise en cache. Le README inclut un exemple de listing des jetons d'accès personnels via `client.V2.AccessTokens.GetAsync`, en définissant les paramètres de requête `Page` et `PageSize`, et en lisant la collection `Results` de la réponse. La pagination est explicite : les appelants utilisent `Next`, `Previous` et `Count` de la réponse pour décider de la page suivante à demander, et le client n'énumère pas automatiquement tous les résultats. Les constructeurs de requêtes suivent la hiérarchie de l'URL, commençant par `client.V2`, et les indexeurs de collection fournissent des paramètres de chemin tels qu'un UUID de jeton d'accès ou un nom d'organisation. Kiota mappe les réponses non fructueuses documentées vers des modèles générés dérivant de `ApiException` ; le type d'erreur exact dépend du point de terminaison. Par exemple, le listing des jetons d'accès mappe `400` vers `ValueError` et `401` vers `Error`. Le README recommande de préserver ces détails lors de la journalisation ou de la traduction des échecs et de laisser l'annulation remonter à l'appelant. Le client et les modèles étant générés, le README met en garde contre toute modification directe car la régénération remplace ces changements. Les noms des points de terminaison, la nullabilité, les mappages d'erreurs et la forme des modèles peuvent changer lorsque la spécification de Docker Hub évolue ; les mises à jour du package doivent donc être examinées avant d'être déployées en production.