RestInPeace.NewtonsoftJson 13.1.0

dotnet add package RestInPeace.NewtonsoftJson --version 13.1.0                
NuGet\Install-Package RestInPeace.NewtonsoftJson -Version 13.1.0                
命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="RestInPeace.NewtonsoftJson" Version="13.1.0" />                
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件中以引用包。
paket add RestInPeace.NewtonsoftJson --version 13.1.0                
#r "nuget: RestInPeace.NewtonsoftJson, 13.1.0"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将此内容复制到交互式工具或脚本的源代码中以引用此包。
// 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 开发和维护。请随时给我们留言。

NuGet Badge build status

简单示例

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();

文档

发布说明 / 迁移到新版本

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 并保持文件更新。

鸣谢

产品 兼容和额外的计算目标框架版本。
.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 已计算。
兼容的目标框架
包含的目标框架(在包中)
了解有关 目标框架.NET Standard 的更多信息。

NuGet 包

此包未由任何 NuGet 包使用。

GitHub 仓库

此包未由任何流行的 GitHub 仓库使用。

版本 下载 最后更新
13.1.0 113 12/25/2023
13.0.0 110 12/24/2023
12.2.0 105 12/24/2023

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提供 - 感谢)