このプロジェクトについて
Refitは、モダンな.NET向けの自動型安全RESTライブラリで、SquareのRetrofitに強く影響を受けています。REST API定義をライブインターフェースに変換し、開発者がHTTPメソッド属性を持つC#インターフェースとしてAPIコントラクトを定義できるようにし、RefitがHttpClientを使用して呼び出しを行う実装を生成します。
このライブラリは、WinUI、.NET Framework 4.6.2以降、.NET 8/9/10/11、Blazor、Uno Platformなど、複数のプラットフォームをサポートしています。ビルド時にクライアントを生成するRoslynソースジェネレーターが同梱されており、実行時リフレクションを削減し、トリミングやNative AOTアプリケーションを可能にします。
主な機能は以下の通りです:
- .NET 5以降での自動クライアント登録を伴うソース生成
- Get、Post、Put、Delete、Patch、HeadのHTTPメソッドをサポート
- オブジェクトのフラット化やコレクションのフォーマットを含む動的クエリ文字列パラメータ
- JSON、JSON Lines、XML、フォーム投稿のボディコンテンツサポート
- Bearer認証を含む静的および動的リクエストヘッダー
- さまざまなパートタイプを使用したマルチパートアップロード
- リクエストごとのタイムアウトとキャンセルトークンサポート
- インターフェースの継承と複数APIの構成
- デフォルトインターフェースメソッド
- 依存性注入のためのHttpClientFactory統合
- カスタムHttpClientサポート
- ApiExceptionとカスタム例外ファクトリによる包括的な例外処理
- 宣言的ルートテーブルを備えたRefit.Testingパッケージによるテストサポート
ソースジェネレーターは、パスパラメータ、エイリアスとフォーマットを持つクエリパラメータ、ボディコンテンツ、ヘッダー、マルチパートアップロード、プロパティ、ストリーミングレスポンス用のIAsyncEnumerableを含むさまざまなレスポンスタイプなど、ほとんどのリクエスト形状をカバーしています。ジェネレーターが生成できない形状については、メソッドは実行時リフレクションのリクエストビルダーにフォールバックします。
Refitには、無効なルートテンプレート、複数のCancellationTokenパラメータ、不適切なHeaderCollectionタイプなど、コンパイル時に一般的なインターフェースの問題をフラグ付けするアナライザーも同梱されており、機械的な修正のためのコード修正も提供します。
このライブラリは複数のNuGetパッケージを提供しています:Refit(コア)、Refit.HttpClientFactory(DI統合)、Refit.Newtonsoft.Json(JSON.NETサポート)、Refit.Testing(テストユーティリティ)、Refit.Reflection(古いビルドツール向けの実行時リフレクションフォールバック)。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.