Об этом проекте
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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.