1 个不稳定版本
0.1.0 | 2024年4月1日 |
---|
#2002 在 网页编程
13KB
134 行
EVE ESI
黑玫瑰为与《EVE Online》的ESI交互而提供的API封装器。
实现
- 在主函数中使用
initialize_eve_esi
函数初始化ESI,这将设置用户代理,包括您的应用程序名称和联系电子邮件,如果CCP需要联系您,请提供。 - 从那里按需使用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示例。
要测试示例
- 运行
cargo run --example axum
- 访问您控制台中发布的其中一个URL,更改ID以测试不同的角色/公司
注意
- 根据需要将添加更多ESI路由,请随时提交拉取请求以添加您可能需要的任何路由。
- 目前只提供公共ESI路由,私有路由将在以后添加。
依赖项
~5–16MB
~225K SLoC