#esi #api-wrapper #eve-online #user-agent #black-rose #eve-api

eve_esi

黑玫瑰为与《EVE Online》的ESI交互而提供的API封装器

1 个不稳定版本

0.1.0 2024年4月1日

#2002网页编程

MIT 许可证

13KB
134

EVE ESI

黑玫瑰为与《EVE Online》的ESI交互而提供的API封装器。

实现

  1. 在主函数中使用initialize_eve_esi函数初始化ESI,这将设置用户代理,包括您的应用程序名称和联系电子邮件,如果CCP需要联系您,请提供。
  2. 从那里按需使用ESI路由。
#[tokio::main]
async fn main() {
    let application_name = "Black Rose EVE ESI Example";
    let application_email = "[email protected]";

    initialize_eve_esi(application_name.to_string(), application_email.to_string());

    let app = Router::new()
        .route("/character", get(get_esi_character))
        .route("/corporation", get(get_esi_corporation));

    let listener = tokio::net::TcpListener::bind("127.0.0.1:8000")
        .await
        .unwrap();

    println!("Test character API at http://localhost:8000/character?id=2114794365");
    axum::serve(listener, app).await.unwrap();
}

async fn get_esi_character(params: Query<GetByIdParams>) -> Response {
    match get_character(params.0.id).await {
        Ok(character) => (StatusCode::OK, Json(character)).into_response(),
        Err(error) => {
            let status_code = StatusCode::from_u16(error.status().unwrap().into()).unwrap();

            (status_code, Json(error.to_string())).into_response()
        }
    }
}

请参阅axum示例。

要测试示例

  1. 运行cargo run --example axum
  2. 访问您控制台中发布的其中一个URL,更改ID以测试不同的角色/公司

注意

  • 根据需要将添加更多ESI路由,请随时提交拉取请求以添加您可能需要的任何路由。
  • 目前只提供公共ESI路由,私有路由将在以后添加。

依赖项

~5–16MB
~225K SLoC