프로젝트 소개

Soenneker.Copper.OpenApiClientUtil은 구성된 Copper HTTP 제공자를 기반으로, Copper API를 위해 지연 생성되고 재사용 가능한 Kiota 생성 클라이언트를 제공하는 .NET 라이브러리입니다. 주요 기능 - `ICopperOpenApiClientUtil` 추상화를 통해 `Get` 메서드를 제공하며, 유틸리티의 수명 주기 동안 클라이언트를 한 번만 초기화합니다. 동시 호출자는 해당 초기화를 공유하며 동일한 클라이언트 인스턴스를 받게 됩니다. - Copper가 요구하는 헤더인 `X-PW-AccessToken`, `X-PW-Application`, `X-PW-UserEmail`을 전송하는 Copper HTTP 패키지 상단에 위치합니다. - 설정은 `Copper` 섹션(예: 토큰 소유자를 위한 `ApiKey` 및 `Email`)에서 읽어오며, 기본 패키지는 `Copper:ClientBaseUrl`, `Copper:Application`, `Copper:AuthHeaderName`, `Copper:AuthHeaderValueTemplate` 또한 지원합니다. 설치 및 등록 `dotnet add package Soenneker.Copper.OpenApiClientUtil`을 통해 설치합니다. 두 가지 DI 등록자가 제공됩니다. 단일 공유 클라이언트를 위한 `AddCopperOpenApiClientUtilAsSingleton()`과, 각 애플리케이션 범위가 싱글톤 HTTP 제공자를 공유하면서 자체 생성 클라이언트를 캐싱해야 할 때 사용하는 `AddCopperOpenApiClientUtilAsScoped()`가 있습니다. 전형적인 사용법 소비자 클래스에서 `ICopperOpenApiClientUtil`을 주입하고, `clientUtil.Get(cancellationToken)`을 대기한 후 `client.Account.GetAsync(...)`와 같은 생성된 엔드포인트 메서드를 호출합니다. 문서화된 주의사항 - 설정은 기본 HTTP 클라이언트가 처음 생성될 때 캡처되므로, 자격 증명이나 기본 URL을 변경하려면 서비스 수명 주기를 다시 생성해야 합니다. - 범위 지정(scoped) 유틸리티를 폐기하면 공유 `HttpClient`를 제거하지 않고 생성된 클라이언트 참조만 해제합니다. HTTP 제공자는 애플리케이션 컨테이너가 종료될 때 해당 클라이언트를 폐기합니다. - 일부 생성된 엔드포인트는 소스 Postman 컬렉션에 강력한 응답 스키마가 없기 때문에 JSON을 `string?`으로 반환합니다. - API 키, 토큰 소유자 이메일 및 Copper 인증 헤더는 로그와 트레이스에서 마스킹 처리해야 합니다. 범위 이 저장소는 전체 CRM 애플리케이션이 아닌 얇은 클라이언트 래퍼입니다. 클라이언트 생성 및 수명 주기 관리를 제공하며, API 커버리지와 응답 형태는 생성된 Copper 클라이언트에 의해 정의됩니다.