프로젝트 소개

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`를 사용하여 다음에 요청할 페이지를 결정하며, 클라이언트가 모든 결과를 자동으로 열거하지는 않습니다. 요청 빌더는 `client.V2`에서 시작하는 URL 계층 구조를 따르며, 컬렉션 인덱서는 액세스 토큰 UUID나 조직 이름과 같은 경로 매개변수를 제공합니다. Kiota는 문서화된 비성공 응답을 `ApiException`에서 파생된 생성된 모델로 매핑하며, 정확한 오류 유형은 엔드포인트에 따라 다릅니다. 예를 들어, 액세스 토큰 목록 조회 시 `400`은 `ValueError`로, `401`은 `Error`로 매핑됩니다. README는 실패 내용을 로깅하거나 변환할 때 이러한 세부 정보를 유지하고 취소(cancellation)가 호출자에게 전달되도록 할 것을 권장합니다. 클라이언트와 모델은 자동 생성되므로, 재생성 시 변경 사항이 덮어씌워지기 때문에 직접 수정하지 말라는 경고가 README에 명시되어 있습니다. Docker Hub의 사양이 변경되면 엔드포인트 이름, null 허용 여부, 오류 매핑 및 모델 형태가 변경될 수 있으므로, 프로덕션 소비자에 적용하기 전에 패키지 업데이트 내용을 검토해야 합니다.