blurrywindows / yii2-api-kit
基于 Yii 2 的工具包,可用于快速从它开始构建 API。
Requires
- php: >=5.6.0
- vlucas/phpdotenv: ^2.4
- yiisoft/yii2: ~2.0.5
- yiisoft/yii2-bootstrap: ~2.0.0
- yiisoft/yii2-swiftmailer: ~2.0.0
Requires (Dev)
- codeception/codeception: ^2.3.3
- codeception/specify: ~0.4.3
- codeception/verify: ~0.3.1
- yiisoft/yii2-debug: ~2.0.0
- yiisoft/yii2-faker: ~2.0.0
- yiisoft/yii2-gii: ~2.0.0
This package is not auto-updated.
Last update: 2021-11-27 13:06:39 UTC
README
受 trntv/yii2-starter-kit 启发,此 API 工具包可用于快速开始构建基于 Yii2 的 API,无需浪费任何时间在初始化项目上。
此工具包正在开发中。请勿使用! 您想贡献吗?
目录
特性
- 初始数据库的用户功能的迁移
- AutoController,根据apidoc生成ActiveRecords模型和API文档
- 预创建的账户功能(注册 & 登录)
- 基于 HTTP-header 的身份验证
- 支持 Json
- 支持 dotenv
- 测试就绪
- blurrywindows/yii2-key-helper 功能
要求
- PHP >= 5.6.0
- Composer >= 1.1.2 (https://getcomposer.org.cn/)
- Node.js >= 8.1.0 (https://node.org.cn/en/)
安装
composer create-project blurrywindows/yii2-api-kit
配置
请仔细按照以下说明快速开始构建您的 API。必须按照这里提供的顺序执行说明,以防止出现错误。
Composer
- 安装所有必需的 Composer 软件包(
composer install
)。 - 在部署到生产环境时,仅安装生产软件包(
composer install --no-dev
)。
Node.js
- 安装所有必需的 Node.js 软件包(
npm install
)。 - 在部署到生产环境时,仅安装生产软件包(
npm install --production
)。
数据库
- 为您的 API 创建一个数据库。
- 确保此数据库存在具有读写访问权限的用户。
环境
- 将项目根目录中的
.env.demo
重命名为.env
并更改变量以适应您当前的环境。 - 确保
ENTRY_URL
变量有一个尾随斜杠 (/)。
迁移
- 使用
./yii migrate
命令进行迁移(让 Yii 创建初始数据库表)。 - 如果此命令不起作用,请尝试在命令中添加
php
:php ./yii migrate
。
Web 服务器
- 按照Yii2指南中的说明,使您的API可供互联网(或您的本地开发环境)使用。
测试
该api-kit已经准备好进行测试。基于Codeception,控制器和模型包含在验收和单元测试中。它们位于/tests
目录中。要执行测试,请运行./vendor/bin/codecept run
。
控制台命令
AutoController
以下操作通常不应在生产服务器上运行。此处提到的操作会生成文件和数据,这些文件和数据可能用于开发或测试。在生产环境中执行这些操作时,控制器将生成一个警告提示,您可以覆盖。
./yii auto/all
执行AutoController中的所有操作。
./yii auto/gii-models
在./models
目录中为数据库中的所有表生成ActiveRecords。如果它们存在,则会自动覆盖ActiveRecords。ActiveRecords命名为Base[Tablename]
并扩展BaseActiveRecord
。它还会创建一个扩展Base[Tablename]
的类[Tablename]
,用于自定义代码、额外验证规则等。在再次执行操作时,[Tablename]
类将不会被覆盖。
./yii auto/apidoc
根据./controllers
目录中的注释从apidoc生成API文档。文档输出到Git忽略的文件夹./web/apidoc
。如果您想将文档导出到生产服务器,可以手动将此文件夹包含在Git中。请注意,apidoc是Node.js的dev-dependency。它仅在执行npm install
命令时安装。
如何贡献
您可以通过任何方式贡献,但请在创建问题之前与我联系,以避免通过创建问题引起合并冲突。
问题
如果您对此套件有任何问题或遇到任何问题,请提交问题。