56个版本 (14个稳定版)
2.2.0 | 2024年4月7日 |
---|---|
2.1.2 | 2023年11月14日 |
2.1.1 | 2023年3月14日 |
2.0.1 | 2022年5月18日 |
0.0.5 | 2019年5月29日 |
#61 in HTTP客户端
在 2 个库 中使用
235KB
5K SLoC
bodhi REST API客户端
此库包含bodhi REST API的rust绑定,如官方API文档所述。
此库基于fedora库以支持认证会话,底层使用reqwest
库进行网络调用,并使用serde
进行JSON和x-www-urlencoded
数据的序列化和反序列化。
报告错误
代码对bodhi服务器的一些行为进行了假设。如果这些假设被证明是错误的(无论是由于实现错误,还是因为服务器行为已更改),那么这将被视为错误。此外,已经有一些情况下,响应和接受的请求的架构已经改变。如果是这种情况,那么这也被视为错误。如果您遇到(反)序列化问题,请打开一个错误,并注明bodhi服务器版本,粘贴失败信息(其中应包含(反)序列化失败的原因,例如缺少/重命名的字段)。
库设计
此库尽可能地进行错误处理,但将服务器或网络相关的错误传递给调用者。例如,当一个bodhi服务器负载过重时,它有时会返回垃圾响应,其主体为空。另一方面,可能只是持续的网络问题导致服务器请求失败或超时。这些不是由库处理的,但会透明地包装并返回。如果需要,调用者可以重试请求。此库仅实现简单的重试逻辑以处理短暂故障,而不是持续客户端或服务器问题。
然而,BodhiClient
只接受查询的引用,因此重试查询甚至不涉及复制数据,所以这非常便宜。
当前状态
- 所有
GET
请求都得到了实现,所有实际的API响应都应该成功反序列化。 - 所有
POST
请求都得到了实现,用于创建和编辑项目,但创建和编辑版本除外。
测试覆盖率
每次将提交推送到git时,都应该通过测试。然而,目前一些测试要么需要互联网访问来检查某些服务器行为的假设,要么需要太大的测试数据,无法提交到git。
因此,以下功能标志决定了哪些测试被编译和运行
offline-tests
:能够在离线状态下运行的测试,没有先决条件(默认启用)online-tests
:需要互联网访问的测试(用于检查bodhi服务器行为)data-tests
:需要数据文件的测试(数据不是git仓库或发布crates的一部分,需要单独下载,但测试本身可以在离线状态下运行)
示例
examples
目录包含一些示例应用程序,用于测试和展示一些crate的功能。
依赖关系
~10–26MB
~360K SLoC