#user #screeps #api #http-api #game-server #wrapper #http-request

screeps-api

对Screeps游戏HTTP API的完全类型化和测试封装

7个不稳定版本 (3个破坏性更新)

0.6.0 2019年7月19日
0.5.1 2019年5月13日
0.4.1 2018年1月8日
0.3.2 2017年12月28日

#5 in #screeps

MIT 许可证

500KB
11K SLoC

rust-screeps-api

Linux Build Status Windows Build Status

A Rust library for using the Screeps HTTP API.

Screeps是一个真正的编程MMO,用户上传JavaScript代码来控制他们的在线帝国。《rust-screeps-api》可以连接到官方服务器,以及用户运行的任何私有服务器实例。

rust-screeps-api使用hyper运行HTTP请求,并使用serde解析JSON结果。

使用

extern crate screeps_api;

use screeps_api::SyncApi;

let mut api = SyncApi::new().unwrap();

api.login("username", "password").unwrap();

let my_info = api.my_info().unwrap();

println!("Logged in with user ID {}!", my_info.user_id);

文档位于https://docs.rs/screeps-api/

非官方API文档

已实现的功能

  • 登录
  • 获取所有排行榜信息
  • 获取房间地形
  • 检查房间状态
  • 获取房间概览信息
  • 获取登录用户的详细信息
  • 获取最近发生PvP的房间
  • WebSocket连接
    • 获取每个tick的用户CPU和内存使用情况
    • 获取房间地图概览
    • 获取新消息通知
    • 获取控制台消息
    • 获取房间详细更新的部分
      • 几乎所有的房间对象都进行了解析
      • 旗帜已解析
      • 房间视觉效果未解析

未实现的功能

  • 市场API
  • 消息API
  • 详细用户信息API
  • 游戏操纵API
  • 房间历史API
  • 在房间socket更新中解析房间视觉效果。

测试

rust-screeps-api既有针对每个端点的示例结果解析的单元测试,也有对官方服务器进行调用的集成测试。

测试时使用的环境变量

  • SCREEPS_API_USERNAME:用于进行认证测试的登录用户名
  • SCREEPS_API_PASSWORD:用于进行认证测试的密码
  • 所有变量也可以放入一个.env文件中(使用dotenv crate解析)

使用

  • cargo test 用于执行所有测试,包括使用提供的登录详细信息调用 https://screeps.com
  • cargo test parse 仅执行解析单元测试。这可以在离线状态下进行。
  • cargo test -- --skip auth 以测试解析和所有未经身份验证的官方服务器调用。

依赖关系

~7–19MB
~293K SLoC