RestInPeace.FSharpData 13.1.0
dotnet add package RestInPeace.FSharpData --version 13.1.0
NuGet\Install-Package RestInPeace.FSharpData -Version 13.1.0
<PackageReference Include="RestInPeace.FSharpData" Version="13.1.0" />
paket add RestInPeace.FSharpData --version 13.1.0
#r "nuget: RestInPeace.FSharpData, 13.1.0"
// Install RestInPeace.FSharpData as a Cake Addin #addin nuget:?package=RestInPeace.FSharpData&version=13.1.0 // Install RestInPeace.FSharpData as a Cake Tool #tool nuget:?package=RestInPeace.FSharpData&version=13.1.0
<p align="center"> <img src='https://raw.githubusercontent.com/schlenkr/RestInPeace/master/docs/img/logo.png' alt='logo' width='300' /> </p>
RestInPeace 是一个适用于 C# 和 F# 的 .Net HTTP 客户端库。它旨在以方便的方式描述和执行 HTTP 请求,这些请求可用于生产环境和交互环境。
RestInPeace 背后的设计原则是
以最方便和可读的方式指定常见的 HTTP 请求,同时仍能够访问底层的 .Net Http 表示形式以覆盖特殊情况。
RestInPeace 由 @SchlenkR 和 @dawedawe 开发和维护。请随时给我们留言。
简单示例
F# 中的示例
#r "nuget: RestInPeace"
open RestInPeace
http {
POST "https://reqres.in/api/users"
CacheControl "no-cache"
body
jsonSerialize
{|
name = "morpheus"
job = "leader"
|}
}
|> Request.send
C# 中的示例
#r "nuget: RestInPeace"
using RestInPeace.CSharp;
await "https://reqres.in/api/users".Post()
.CacheControl("no-cache")
.Body()
.JsonSerialize(new
{
name = "morpheus",
job = "leader"
}
)
.SendAsync();
文档
- 📖 请参见 RestInPeace 文档 网站,以获取详细的文档。
- 🧪 此外,请查看 集成测试,这些测试展示了各种库的详细信息。
发布说明 / 迁移到新版本
- 查看 https://nuget.net.cn/packages/RestInPeace#release-body-tab
- 关于不同的升级路径,请阅读文档中的迁移部分。
GitHub
请在GitHub上查看RestInPeace。
构建
.Net SDK
您需要安装最新的.Net SDK,这已在./global.json
中指定。
构建任务
有一个F#构建脚本(./build.fsx
),可以从命令行执行多个构建任务。
对于常见任务,在仓库根目录下有powershell文件
./test.ps1
:运行所有测试(源在./src/Tests
)。- 您可以为此任务传递参数。例如,仅执行某些测试:
./test.ps1 --filter Name~'Response Decompression'
- 您可以为此任务传递参数。例如,仅执行某些测试:
./docu.ps1
:重建RestInPeace文档网站(源在./src/docs
)。./docu-watch.ps1
:如果您正在编写文档源,并想查看结果在浏览器中的显示,请运行它。./publish.ps1
:将所有软件包(RestInPeace以及它为Newtonsoft和FSharp.Data集成的软件包)发布到NuGet。- 始终查看
./src/Directory.Build.props
并保持文件更新。
- 始终查看
致谢
- 代码的一部分取自FSharp.Data的HTTP工具。
- 感谢所有批评者、支持者、贡献者、推广者、用户和朋友们。
产品 | 版本兼容和额外的计算目标框架版本。 |
---|---|
.NET | net6.0兼容。net6.0-android已计算。net6.0-ios已计算。net6.0-maccatalyst已计算。net6.0-macos已计算。net6.0-tvos已计算。net6.0-windows已计算。net7.0兼容。net7.0-android已计算。net7.0-ios已计算。net7.0-maccatalyst已计算。net7.0-macos已计算。net7.0-tvos已计算。net7.0-windows已计算。net8.0兼容。net8.0-android已计算。net8.0-browser已计算。net8.0-ios已计算。net8.0-maccatalyst已计算。net8.0-macos已计算。net8.0-tvos已计算。net8.0-windows已计算。 |
-
net6.0
- FSharp.Core (>= 8.0.100)
- FSharp.Data (>= 6.3.0)
- RestInPeace (>= 13.1.0)
-
net7.0
- FSharp.Core (>= 8.0.100)
- FSharp.Data (>= 6.3.0)
- RestInPeace (>= 13.1.0)
-
net8.0
- FSharp.Core (>= 8.0.100)
- FSharp.Data (>= 6.3.0)
- RestInPeace (>= 13.1.0)
NuGet 包
此包未被任何NuGet包使用。
GitHub 仓库
此包未被任何流行的GitHub仓库使用。
v13.1.0
- F# 中所有 `Response._TAsync` 函数(基于任务)现在都需要一个 CancellationToken。
v13.1.0
- 已删除 StartingContext,这意味着
我们在这里放弃了一些安全措施,以预先配置 HTTP 请求
而不指定 URL。这是我们愿意做出的妥协。
v12.2.0
- 添加 HttpMethods 以提高可组合性
v12.1.0
- 支持net8.0
v12.0.0
- #137 / #102: 将 RestInPeaceUrl.additionalQueryParams 的类型从 obj 更改为 string
- 删除(自动打开)Async.await 和 Task.map/await
- 将(自动打开)Async.map 移动到 RestInPeace.Helper.Async.map
v11.1.0
- #130 / #105: 添加用户提供的取消令牌方法
v11.0.0
- #121(破坏性变更):关闭 FSI 中的调试日志(签名/命名空间中的破坏性更改)
- #124:支持重复查询参数(感谢 @DaveJohnson8080)
- #106(破坏性变更):允许文件元数据与其他 "部分" (感谢 @dawedawe)
- 破坏性变更:ContentTypeForPart 自定义操作应在部分定义之后
- #104(破坏性变更):默认自动解压缩 GZip 响应
- 其他破坏性更改
- 删除 `ContentTypeWithEncoding` 并在 `ContentType` 重载中使用可选的 `charset` 参数。
- 将 Dsl、DslCE 和 CSharp 中的 `byteArray` 改为 `binary`。
- 注意(!!):在 Dsl 和 DslCE 中将 `stringPart` 改为 `textPart` 并更改 `name` 和 `value` 的参数顺序。
- 重新构建域中的类型
- `Helper` 是一个模块而不是命名空间,某些内容已移动。
- 配置中的所有转换器现在是一个转换器列表,而不是单个项目。
- 删除 `setHttpClient`。请使用 `setHttpClientFactory` 代替。
- `setHttpClientFactory` 接受一个 `Config` 作为输入参数。
-----------------------------
-- 以下是旧版发行说明 --
-----------------------------
v7.0.0
- #92:`expect` 和 `assert` 传递原始响应而不是单位。
v8.0.0
- #93(感谢 @drhumlen):将内容类型 'text/json' 更改为 'application/json'。
- Http 模块在 Dsl 和 DslCE 中始终自动打开。
- 建造方法没有额外的模块。
v8.0.1
- #89:不再使用 net5 和 FSI 来阻塞请求。
v9.0.0 / v9.0.1
- 重新定义了构建器(见 README.md)。
有许多重大更改(请参阅文档中的“迁移”部分)。
v9.0.2
- 添加了 JSON toArray 函数
- 修复了 #99:Response.saveFile 如果不存在应该创建目录。
v9.0.3
- 再次支持 netstandard2.1。
v9.0.4
- 参考了最低可能的 FSharp.Core 及其他引用包版本。
v9.0.5
- 支持 netstandard2.0。
- 新增 'RestInPeace.NewtonsoftJson' 集成包。
- 更多 JSON 函数和默认配置。
v9.0.6
#100 - 移除了 FSI 打印消息。
v9.1.0
- 修复了 'Response.deserialize...' 函数的命名不一致问题。
- 更多 C# JSON 函数。
v9.1.1
- 修复:将 GlobalConfig.Json.defaultJsonSerializerOptions 作为 jsonSerialize 的默认值。
v9.1.2
- 修复了 #103:FSI 响应打印和初始化不再默认正常工作。
v10.0.0
-.Net 7 支持(感谢 @Samuel-Dufour)
- 重要更改:更正了拼写错误 "guessMineTypeFromPath" -> "guessMimeTypeFromPath"
- 重要更改:模块 'Helper'、'HelperInternal' 和 'HelperAutos' 进行了重构
#115:下载流时移除打印消息
打印:通过 Request.print 和 Response.print 区分请求和响应的单独打印函数
打印:在 FSI 中默认请求 (IToRequest) 打印
- 在所有项目中移除了 net5.0 目标
PrintHint.printDebugMessages:移动到 RestInPeace.Helper.Fsi.logDebugMessages 作为全局开关
#113 - Config.timeoutInSeconds 错误
v10.1.0
#117: 转义查询参数值的字符串(感谢 @maciej-izak)
(!!) 这可以视为重要更改。
#112: 允许添加(多个)头信息(感谢 @Samuel-Dufour)