RestInPeace.NewtonsoftJson 13.1.0
dotnet add package RestInPeace.NewtonsoftJson --version 13.1.0
NuGet\Install-Package RestInPeace.NewtonsoftJson -Version 13.1.0
<PackageReference Include="RestInPeace.NewtonsoftJson" Version="13.1.0" />
paket add RestInPeace.NewtonsoftJson --version 13.1.0
#r "nuget: RestInPeace.NewtonsoftJson, 13.1.0"
// Install RestInPeace.NewtonsoftJson as a Cake Addin #addin nuget:?package=RestInPeace.NewtonsoftJson&version=13.1.0 // Install RestInPeace.NewtonsoftJson as a Cake Tool #tool nuget:?package=RestInPeace.NewtonsoftJson&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
构建
.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
- Newtonsoft.Json (>= 13.0.3)
- RestInPeace (>= 13.1.0)
-
net7.0
- Newtonsoft.Json (>= 13.0.3)
- RestInPeace (>= 13.1.0)
-
net8.0
- Newtonsoft.Json (>= 13.0.3)
- RestInPeace (>= 13.1.0)
NuGet 包
此包未由任何 NuGet 包使用。
GitHub 仓库
此包未由任何流行的 GitHub 仓库使用。
v13.1.0
所有 F# 中的 `Response._TAsync` 函数(基于任务)现在需要 CancellationToken。
v13.1.0
- 没有更多的 StartingContext,这意味着
我们在这方面放弃了一部分安全性,以便在不指定 URL 的情况下预先配置 HTTP 请求
。这是我们愿意做出的权衡。
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'。
- Dsl 和 DslCE 中的 HTTP 模块始终自动打开。
- 建筑方法没有额外的模块。
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提供 - 感谢)