robiningelbrecht/wca-rest-api

dev-master 2024-09-23 14:11 UTC

This package is auto-updated.

Last update: 2024-09-23 14:16:48 UTC


README

WCA

CI License PHPStan Enabled PHP

欢迎使用非官方的 世界魔方协会 (WCA) 公共API文档!在这里,您可以找到所有需要将此API无缝集成到您项目中的信息。访问比赛数据、结果、选手档案、排名等。

注意:此API通过GitHub上的静态JSON文件提供,这意味着端点的结构有限制。这样做的原因是

  • 数据变化不大,最多一天一次
  • 基于静态文件的API(或应该是)非常快
  • 我不想支付任何托管费用,因为它可能会变得非常昂贵

API每天更新一次,因此排名和结果不是实时的。

此信息基于世界魔方协会拥有的和维护的比赛结果,截至2024年9月23日发布在https://www.worldcubeassociation.org/export/results

我绝不是官方WCA软件团队的一部分或与其有联系。

入门

完整的文档和规范可在https://wca-rest-api.robiningelbrecht.be/找到

反馈

对于任何功能请求、帮助帖子或错误报告,请在问题队列中创建一个新问题。我将很乐意帮助您。

实体关系

为了让您了解实体之间的关系以及如何查询API,我创建了以下架构

Entity Relations

本地开发

如果您想帮助开发此项目或想在本地运行它,请运行以下命令

# Clone repo
> git clone git@github.com:robiningelbrecht/wca-rest-api.git
# Setup .env file
> cp .env.dist .env
# Build docker containers
> docker-compose up -d --build
# Install dependencies
> docker-compose run --rm php-cli composer install
# Build all the static API files.
> docker-compose run --rm php-cli bin/build-new-api.sh "continent,country,event,competition,championship,person,rank,result,version"

这应该会产生以下CLI输出

Downloading WCA export...
Unzipping WCA export...
Archive:  wca-export/export.zip
  inflating: wca-export/metadata.json  
  inflating: wca-export/README.md    
  inflating: wca-export/WCA_export.sql  
Importing WCA export to database...
Building API...
  - Building continent API...
  100% [============================] 2/2 [< 1 sec]
  - Building country API...
  100% [============================] 2/2 [< 1 sec]
  - Building event API...
  100% [============================] 2/2 [< 1 sec]
  - Building competition API...
  100% [============================] 12487/12487 [1 min]
  - Building championship API...
  100% [============================] 582/582 [7 secs]
  - Building person API...
  100% [============================] 199304/199304 [51 mins]
  - Building rank API...
  100% [============================] 43/43  [24 mins]
  - Building result API...
  100% [============================] 10028/10028 [5 secs]
  - Updating API version...
Total execution time: 77 min

测试套件

完成本地设置后,您可以运行测试套件

> docker-compose run --rm php-cli vendor/bin/phpunit