forecho / yii2-rest-api
Yii 2 REST API 项目模板
v0.0.6
2020-07-31 06:32 UTC
Requires
- php: >=7.2
- sizeg/yii2-jwt: ^2.0
- yiier/yii2-helpers: ^2.0
- yiisoft/yii2: ~2.0.14
- yiisoft/yii2-swiftmailer: ~2.0.0 || ~2.1.0
- yiithings/yii2-dotenv: ^1.0
Requires (Dev)
- codeception/codeception: ^4.0
- codeception/module-asserts: ^1.0.0
- codeception/module-filesystem: ^1.0.0
- codeception/module-phpbrowser: ^1.0.0
- codeception/module-rest: ^1.0.0
- codeception/module-yii2: ^1.0.0
- codeception/specify: ~0.4.6
- codeception/verify: ~0.5.0 || ~1.1.0
- mis/yii2-ide-helper: ^1.0
- phpro/grumphp: ^0.19.1
- squizlabs/php_codesniffer: ^3.5.5
- symfony/browser-kit: >=2.7 <=4.2.4
- yiisoft/yii2-debug: ~2.1.0
- yiisoft/yii2-faker: ~2.0.0
- yiisoft/yii2-gii: ~2.1.0
This package is auto-updated.
Last update: 2024-09-19 23:58:08 UTC
README
Yii 2 REST API 项目模板
Yii 2 REST API 项目模板是一个最佳快速创建小型 REST API 项目的骨架 Yii 2 应用程序。
该模板包含基本功能,包括用户注册/登录 API。它包含所有常用的配置,以便您能够专注于添加新功能到您的应用程序。
需求
此项目模板的最低要求是您的 Web 服务器支持 PHP 7.2.0。
安装
通过 Composer 安装
如果您没有Composer,您可以按照getcomposer.org上的说明进行安装。
然后,您可以使用以下命令安装此项目模板
composer create-project --prefer-dist forecho/yii2-rest-api <rest-api>
cd <rest-api>
cp .env.example .env
php yii generate/key # optional
chmod 777 -R runtime/
现在,假设 rest-api
是 Web 根目录下的目录,您应该可以通过以下 URL 访问应用程序。
https:///<rest-api>/web/
从 GitHub 安装
访问使用此模板 从 yii2-rest-api 创建新仓库
git clone xxxx cd <rest-api> cp .env.example .env chmod 777 -R runtime/
然后,您可以通过以下 URL 访问应用程序
https:///<rest-api>/web/
使用 Docker 安装
更新您的供应商包
docker-compose run --rm php composer update --prefer-dist
运行安装触发器(创建cookie验证代码)
docker-compose run --rm php composer install
启动容器
docker-compose up -d
然后,您可以通过以下 URL 访问应用程序
http://127.0.0.1:8000
备注
- 开发所需的最小 Docker 引擎版本为
17.04
(请参阅卷挂载的性能调整) - 默认配置使用主目录中的主机卷
.docker-composer
作为 composer 缓存
查看包
使用
此时,您有一个运行在 http://127.0.0.1:8000
的 RESTful API 服务器。它提供以下端点
GET /health-check
:提供健康检查服务(当实现服务器集群时需要)POST /v1/join
:创建用户POST /v1/login
:验证用户并生成 JWTPOST /v1/refresh-token
:刷新 JWT
在浏览器中尝试 URL https://:8000/health-check
,您应该看到类似 {"code":0,"data":"OK","message":"成功"}
的输出。
如果您有 cURL
或其他 API 客户端工具(例如 Postman),您可以尝试以下更复杂的场景
# create a user via: POST /v1/join curl -X POST -H "Content-Type: application/json" -d '{"username":"demo","email":"demo@email.com","password":"pass123"}' https://:8000/v1/join # should return like: {"code":0,"data":{"username":"demo","email":"demo@email.com","status":1,"created_at":"2020-07-18T16:38:11+08:00","updated_at":"2020-07-18T16:38:11+08:00","id":17},"message":"成功"} # authenticate the user via: POST /v1/login curl -X POST -H "Content-Type: application/json" -d '{"username": "demo", "password": "pass123"}' https://:8000/v1/login # should return like: {"code":0,"data":{"user":{"id":4,"username":"dem211o1","avatar":"","email":"de21mo1@mail.com","status":1,"created_at":"2020-07-17T23:49:39+08:00","updated_at":"2020-07-17T23:49:39+08:00"},"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IllpaS1SRVNULUFQSSJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3QiLCJqdGkiOiJZaWktUkVTVC1BUEkiLCJpYXQiOjE1OTUwNjQ5NzIsImV4cCI6MTU5NTMyNDE3MiwidXNlcm5hbWUiOiJkZW0yMTFvMSIsImlkIjo0fQ.y2NSVQe-TQ08RnXnF-o55h905G9WHo6GYHNaUWlKjDE"},"message":"成功"} # refresh a JWT curl -X POST -H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IllpaS1SRVNULUFQSSJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3QiLCJqdGkiOiJZaWktUkVTVC1BUEkiLCJpYXQiOjE1OTUwNjQ5NzIsImV4cCI6MTU5NTMyNDE3MiwidXNlcm5hbWUiOiJkZW0yMTFvMSIsImlkIjo0fQ.y2NSVQe-TQ08RnXnF-o55h905G9WHo6GYHNaUWlKjDE' https://:8000/v1/refresh-token # should return like: {"code":0,"data":{"user":{"id":4,"username":"dem211o1","avatar":"","email":"de21mo1@mail.com","status":1,"created_at":"2020-07-17T23:49:39+08:00","updated_at":"2020-07-17T23:49:39+08:00"},"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IllpaS1SRVNULUFQSSJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3QiLCJqdGkiOiJZaWktUkVTVC1BUEkiLCJpYXQiOjE1OTUwNjQ5NzIsImV4cCI6MTU5NTMyNDE3MiwidXNlcm5hbWUiOiJkZW0yMTFvMSIsImlkIjo0fQ.y2NSVQe-TQ08RnXnF-o55h905G9WHo6GYHNaUWlKjDE"},"message":"成功"}