Об этом проекте

Soenneker.Copper.OpenApiClientUtil — это библиотека .NET, которая предоставляет лениво создаваемый, многоразовый клиент для Copper API, сгенерированный с помощью Kiota и построенный на базе настроенного HTTP-провайдера Copper. Что она делает - Предоставляет абстракцию `ICopperOpenApiClientUtil`, метод `Get` которой инициализирует клиент один раз за время жизни утилиты; параллельные вызывающие потоки используют эту инициализацию и получают один и тот же экземпляр клиента. - Работает поверх пакета Copper HTTP, который отправляет необходимые заголовки: `X-PW-AccessToken`, `X-PW-Application` и `X-PW-UserEmail`. - Конфигурация считывается из раздела `Copper` (например, `ApiKey` и `Email` для владельца токена), а базовый пакет также поддерживает `Copper:ClientBaseUrl`, `Copper:Application`, `Copper:AuthHeaderName` и `Copper:AuthHeaderValueTemplate`. Установка и регистрация Установите с помощью `dotnet add package Soenneker.Copper.OpenApiClientUtil`. Предоставляются два регистратора DI: `AddCopperOpenApiClientUtilAsSingleton()` для одного общего клиента и `AddCopperOpenApiClientUtilAsScoped()`, когда каждый область применения (scope) приложения должна кэшировать свой собственный сгенерированный клиент, по-прежнему используя общий singleton HTTP-провайдер. Типичное использование Потребляющий класс внедряет `ICopperOpenApiClientUtil`, ожидает выполнения `clientUtil.Get(cancellationToken)`, а затем вызывает сгенерированные методы эндпоинтов, такие как `client.Account.GetAsync(...)`. Документированные особенности - Конфигурация фиксируется при первом создании базового HTTP-клиента, поэтому изменения учетных данных или базового URL требуют перезапуска жизненного цикла службы. - Удаление (Dispose) scoped-утилиты освобождает ссылку на сгенерированный клиент, не удаляя общий `HttpClient`; HTTP-провайдер удаляет этот клиент при завершении работы контейнера приложения. - Некоторые сгенерированные эндпоинты возвращают JSON в виде `string?`, так как исходная коллекция Postman не имеет строго определенной схемы ответа. - API-ключ, email владельца токена и заголовки аутентификации Copper должны быть скрыты в логах и трассировках. Область применения Репозиторий представляет собой тонкую обертку клиента, а не полноценное CRM-приложение: он обеспечивает создание клиента и управление его жизненным циклом, в то время как охват API и формы ответов определяются сгенерированным клиентом Copper.