14 个版本 (3 个稳定版)

1.2.0 2024年1月17日
1.1.0 2024年1月17日
0.3.0-alpha22023年6月15日
0.3.0-alpha-openapigenera…2023年5月16日
0.1.2 2022年10月5日

#26 in #access

Download history 46/week @ 2024-03-10 23/week @ 2024-03-17 7/week @ 2024-03-24 21/week @ 2024-03-31 4/week @ 2024-04-07 7/week @ 2024-04-14 4/week @ 2024-04-21 2/week @ 2024-04-28 3/week @ 2024-05-12 21/week @ 2024-05-19 34/week @ 2024-05-26 30/week @ 2024-06-02 24/week @ 2024-06-09 23/week @ 2024-06-16 13/week @ 2024-06-23

每月 91 次下载

自定义许可

395KB
4K SLoC

boaviztapi-sdk-rust

Rust 客户端库,用于 Boaviztapi

支持的版本

  • SDK 版本 1.2.0 支持 Boavizta API 1.2.0
  • SDK 版本 1.1.0 支持 Boavizta API 1.1.0
  • SDK 版本 1.0.1 支持 Boavizta API 1.0.1(和历史 0.3.x 系列)
  • SDK 版本 0.3.X 支持 0.3.x 系列的 Boavizta API
  • SDK 版本 0.2.x 支持 0.2.x 系列的 Boavizta API(自 Boavizta API v0.3.x 发布后,SDK 和 API 将不再更新 - 约为 2023 年 6 月)

文档

如何为 BoaviztaAPI 最新版本生成 SDK

SDK 是从已发布的 Boaviztapi openAPI 规范生成的 (http://api.boavizta.org/openapi.json)。

我们使用 openapi-generator-cli 生成 SDK。见 GitHub - OpenAPITools/openapi-generator-cli: A node package wrapper for https://github.com/OpenAPITools/openapi-generator .

# Generate for public API
docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli generate -i http://api.boavizta.org/openapi.json   -g rust  -o /local/ --package-name boavizta_api_sdk
# Local API (dev, using network host /!\)
docker run --network=host --rm -v "${PWD}:/local" openapitools/openapi-generator-cli generate -i https://127.0.0.1:5000/openapi.json  -g rust  -o /local/ --package-name boavizta_api_sdk

生成的代码在可使用之前需要一些手动更新。

如何为特定版本的 API 生成 SDK

要为 特定 版本的 BoaviztaAPI(例如开发分支或未发布版本)生成 SDK,你必须

  1. 检索 API 的 openapi.yml 规范
  2. 运行生成器对此文件进行操作
  3. 如果需要,发布具有 alpha 版本的生成的 SDK

在发布 SDK 之前更新 Cargo.toml

Cargo.toml 的元数据会被生成过程覆盖。

  1. 验证包的版本是否一致
  2. 使用以下值更新它
description = "A Rust client/sdk to access Boavizta API"
homepage = "https://boavizta.org"
repository = "https://github.com/Boavizta/boaviztapi-sdk-rust/"
readme = "README.md"
authors = ["boavizta.org", "olivier de Meringo"]
edition = "2018"
license-file = "LICENSE"

确保对 reqwest 的依赖不使用原生的 SSL(默认功能),而是使用 rust-tls。这使得交叉编译变得容易得多。

[dependencies.reqwest]
version = "^0.11"
default-features = false 
features = ["json", "multipart", "rustls-tls"]

如何发布 SDK

这是一个手动操作,应由 SDK 的维护者完成。

cargo login
cargo publish --dry-run
cargo publish

依赖项

~4–18MB
~249K SLoC