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

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(古いビルドツール向けの実行時リフレクションフォールバック)。