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 网络编程

Download history 11/week @ 2024-03-09 2/week @ 2024-03-16 69/week @ 2024-03-23 29/week @ 2024-03-30 3/week @ 2024-04-06 2/week @ 2024-04-20 3/week @ 2024-05-25

每月 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-traittask-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