14 个版本 (稳定)
1.1.0 | 2023 年 6 月 21 日 |
---|---|
1.0.9 | 2023 年 5 月 24 日 |
1.0.3 | 2023 年 3 月 16 日 |
1.0.1 | 2023 年 2 月 25 日 |
0.1.3 | 2022 年 4 月 25 日 |
#283 in 网络编程
每月 318 次下载
430KB
5.5K SLoC
spacedustrs
这是一个用于 https://spacetraders.io V2 的 Rust API 包装器
由 https://openapi-generator.tech/docs/generators/rust/ 生成
包含从主要 API 文档中缺失的文档补丁
快速入门
使用以下示例开始。
use spacedust::apis::agents_api::get_my_agent;
use spacedust::apis::configuration::Configuration;
use spacedust::apis::default_api::register;
use spacedust::models::register_request::{Faction, RegisterRequest};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Create Configuration
let mut conf = Configuration::new();
// Create Register Request
let reg_req = RegisterRequest::new(Faction::Cosmic, "<3-14 character string>".to_string());
// Register Agent
let register_response = register(&conf, Some(reg_req)).await;
match register_response {
Ok(res) => {
println!("{:#?}", res);
// Update Config with Agent Token
conf.bearer_access_token = Some(res.data.token);
}
Err(err_res) => {
panic!("{:#?}", err_res);
}
}
// Get Agent Details to Confirm Working
match get_my_agent(&conf).await {
Ok(res) => {
println!("{:#?}", res);
// Print Symbol
println!("My Symbol: {:#?}", res.data.symbol);
}
Err(err_res) => {
panic!("{:#?}", err_res);
}
}
Ok(())
}
生成说明
首先 更新带有 spacedust 补丁的 文档分支。除非有合并冲突(迄今为止还没有),否则您可以从 GitHub 网页 UI 中'同步分支'。
克隆项目,包括 --recurse-submodules
git clone --recurse-submodules [email protected]:brct-james/spacedustrs.git
确保子模块已初始化并更新
git submodule update --init --recursive --remote
清理输出目录
sudo rm -rf client-dist
重新创建目录
mkdir client-dist
更新您本地的 openapitools/openapi-generator-cli:latest-release
docker pull openapitools/openapi-generator-cli:latest-release
运行以下命令,该命令使用 openapi-generator-cli docker 图像生成客户端
docker run --rm \
-v ${PWD}:/local openapitools/openapi-generator-cli:latest-release generate \
-i /local/spacetraders-api-docs-spacedust-patch/reference/SpaceTraders.json \
-g rust \
-o /local/client-dist \
--additional-properties=packageName=spacedust,supportAsync=true,supportMiddleware=true
将 client-dist/src 复制到 src
cp -r client-dist/src .
注意:目前,请手动检查内容长度中间件修复(cargo.toml 依赖项 async-trait
和 task-local-extensions
,lib.rs mod middleware
,src/middleware.rs 和 src/apis/configuration.rs reqwest_middleware_builder
)没有被撤销。您可能需要至少使用以下内容
git checkout 34a74b36e341444a8dbe6ee979bb0163cbfe3bb9 src/apis/configuration.rs
git checkout 34a74b36e341444a8dbe6ee979bb0163cbfe3bb9 src/lib.rs
待办事项:创建更好的合并策略 - 可能是维护 content-length-middleware 分支,并在生成新客户端后将其合并到本地分支中?
使用任何新的依赖项更新 Cargo.toml、更新文档、勾选版本、提交更改并发布到 cargo
依赖项
~4–19MB
~252K SLoC