RestInPeace 13.0.0

dotnet add package RestInPeace --version 13.0.0                
NuGet\Install-Package RestInPeace -Version 13.0.0                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块的 Install-Package 版本。
<PackageReference Include="RestInPeace" Version="13.0.0" />                
对于支持 PackageReference 的项目,将此 XML 节复制到项目文件中以引用包。
paket add RestInPeace --version 13.0.0                
#r "nuget: RestInPeace, 13.0.0"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将其复制到交互工具或脚本的源代码中以引用包。
// Install RestInPeace as a Cake Addin
#addin nuget:?package=RestInPeace&version=13.0.0

// Install RestInPeace as a Cake Tool
#tool nuget:?package=RestInPeace&version=13.0.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,该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 net5.0 已计算。 net5.0-windows 已计算。 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 Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET Standard netstandard2.0 兼容。 netstandard2.1 兼容。
.NET Framework net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包含的目标框架(在包中)
了解更多关于 目标框架.NET Standard 的信息。
  • .NETStandard 2.0

  • .NETStandard 2.1

  • net6.0

    • 无依赖项。
  • net7.0

    • 无依赖项。
  • net8.0

    • 无依赖项。

NuGet 包 (2)

显示依赖于 RestInPeace 的前 2 个 NuGet 包

下载
RestInPeace.FSharpData

RestInPeace 的 FSharp.Data (JSON) 集成包

RestInPeace.NewtonsoftJson

RestInPeace 的 JSON.Net (Newtonsoft.Json) 集成包

GitHub 仓库

该包没有被任何流行的 GitHub 仓库使用。

版本 下载 最后更新
13.0.0 194 12/24/2023
12.2.0 165 12/24/2023

v13.0.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`。
       - 注意(!!):将 `stringPart` 重命名为 `textPart`,并在 Dsl 和 DslCE 中更改了 `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 模块总是 AutoOpen。
     - 不为构建方法提供额外的模块。

     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 完成 - 感谢)