Kcwiki API 服务

API for kancolle game data. Powered By Lumen

1. Installation

请事先部署 PHP5.4+ 、 Mysql 、 Redis(可选)

安装PHP依赖库:

composer install

2. Configuration

2.1 .env

通过在根目录创建.env文件进行PHP应用的基本设置

.env配置文件示例:

APP_ENV=local
APP_DEBUG=true
APP_KEY=somesecretkey
APP_HOST=http://api.kcwiki.moe

AUTH_DRIVER=eloquent
AUTH_MODEL=\App\User
AUTH_TABLE=users

DB_CONNECTION=mysql
DB_DATABASE=xxx
DB_USERNAME=xxx
DB_PASSWORD=xxx
CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_DRIVER=redis

ADMIN_USERNAME=foobar@kcwiki.moe
ADMIN_PASSWORD=somepassword

有关配置文件的说明请参考

注意 APP_KEY 的配置,默认可能需要 32 位。

2.2 Writable folder

需要将storage文件夹赋予写权限

chmod -R a+w storage/

2.3 Migrations

.env设置好数据库后,使用php artisan migrate来迁移数据库

php artisan migrate

迁移的其他命令行选项请参考

3. Commands

基于 Laravel Artisan 的命令,用以处理游戏数据、清理缓存、创建定时任务等(其实就是本地跑些PHP脚本)

下面介绍本站自定义的命令,以及日常维护需要用到框架自带命令

所有命令都要求在 Web 网站根目录下运行

在项目迭代时,可能会有运行新增命令但找不到对应依赖类的情况,因此在生产服务器使用 git 拉取更新后,可能需要使用composer dumpautoload -o来刷新PHP类映射表

详细参考

3.1 queue:listen

php artisan queue:listen

监听并处理异步任务队列,例如在上传完start2数据结束后,服务器将会把parse:start2作为任务加入到队列中,等待之后异步执行

可以在.env设置任务队列的驱动(QUEUE_DRIVER),默认为 redis

建议把本命令丢到supervisor里长期监听

详细参考

3.2 parse:start2

php artisan parse:start2

结合 kcdataapi_start2.json生成各个API需要的ship、slotitem、map等源数据

需要从api.kcwiki.moe/start2或者使用kcwiki-scripts来获取start2数据文件,并以api_start2.json命名放在storage/app文件夹下。

这个命令将会影响ship/slotitem/map/等API的使用与更新

3.3 parse:db

php artisan parse:db {option}

基于数据库(主要为插件报告数据)生成API源数据

目前主要是插件采集的初始装备数据

option 对应的可选参数如下:

  • initequip : 根据数据库生成舰娘初始装备数据(对应 API init/equip
  • enemy : 根据数据库生成深海舰船数据(现在主要也是初始装备,对应 API init/equip/enemy

3.4 parse:lua

php artisan parse:lua {option}

基于舰娘百科 Mediawiki Lua Table 生成API源数据

option 对应的参数如下:

  • slotitem : 根据舰娘百科[[模块:舰娘装备数据]]获取装备的中文译名

4. API Doc

本服务的具体开放API请参考

5. FAQ

5.1 在使用 Artisan 时出现形如 Class App\Console\Commands\ParseStart2 does not exist 的错误?

尝试运行命令 composer dumpautoload -o

重要:expedition 就是 battle (目前