这个项目能做什么
Refit 是一个面向现代 .NET 的自动类型安全 REST 库,深受 Square 的 Retrofit 启发。它将 REST API 定义转换为实时接口,允许开发者将 API 契约定义为带有 HTTP 方法特性的 C# 接口,并由 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 认证
- 支持各种部件类型的 Multipart 上传
- 每请求超时和取消令牌支持
- 接口继承和多个 API 的组合
- 默认接口方法
- 用于依赖注入的 HttpClientFactory 集成
- 自定义 HttpClient 支持
- 通过 ApiException 和自定义异常工厂进行全面的异常处理
- 通过 Refit.Testing 包和声明式路由表提供测试支持
源生成器覆盖大多数请求形状,包括路径参数、带别名和格式化的查询参数、主体内容、请求头、multipart 上传、属性以及各种响应类型(包括用于流式响应的 IAsyncEnumerable)。对于生成器无法发出的形状,方法会回退到运行时反射请求构建器。
Refit 还附带分析器,可在编译时标记常见接口问题,例如无效路由模板、多个 CancellationToken 参数和错误的 HeaderCollection 类型,并提供代码修复以进行机械更正。
该库提供多个 NuGet 包:Refit(核心)、Refit.HttpClientFactory(DI 集成)、Refit.Newtonsoft.Json(JSON.NET 支持)、Refit.Testing(测试工具)和 Refit.Reflection(用于旧构建工具的运行时反射回退)。
评论
0 评分人数达到10人后显示
登录后参与讨论。