このプロジェクトについて

Soenneker.Copper.OpenApiClientUtilは、設定済みのCopper HTTPプロバイダーに基づいた、遅延生成され再利用可能なKiota生成のCopper APIクライアントを提供する.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` でインストールします。2つのDIレジストラが提供されています。単一の共有クライアント用の `AddCopperOpenApiClientUtilAsSingleton()` と、アプリケーションスコープごとに生成されたクライアントをキャッシュしつつシングルトンのHTTPプロバイダーを共有する `AddCopperOpenApiClientUtilAsScoped()` です。 典型的な使用方法 コンシューマークラスが `ICopperOpenApiClientUtil` を注入し、`clientUtil.Get(cancellationToken)` を待機した後、`client.Account.GetAsync(...)` などの生成されたエンドポイントメソッドを呼び出します。 文書化された注意点 - 設定は基盤となるHTTPクライアントが最初に作成された時にキャプチャされるため、認証情報やベースURLを変更するにはサービスのライフタイムを再作成する必要があります。 - スコープ付きユーティリティを破棄すると、共有の `HttpClient` を削除せずに生成されたクライアントへの参照が解放されます。HTTPプロバイダーは、アプリケーションコンテナがシャットダウンする際にそのクライアントを破棄します。 - 一部の生成されたエンドポイントは、ソースのPostmanコレクションに強力なレスポンススキーマがないため、JSONを `string?` として返します。 - APIキー、トークン所有者のメール、およびCopper認証ヘッダーは、ログやトレースから除外する必要があります。 スコープ このリポジトリは薄いクライアントラッパーであり、完全なCRMアプリケーションではありません。クライアントの作成とライフタイム管理を提供し、APIのカバー範囲とレスポンス形式は生成されたCopperクライアントによって定義されます。