此包已被废弃,不再维护。未建议替代包。

CashWarden API

维护者

详细信息

github.com/cashwarden/api

源代码

问题

资助包维护!
forecho

安装: 19

依赖项: 0

建议者: 0

安全: 0

星标: 37

关注者: 3

分支: 14

类型:项目

v0.4.0 2021-11-29 09:23 UTC

This package is not auto-updated.

Last update: 2022-12-28 19:05:23 UTC


README

993323

Yii 2 REST API 项目模板


Yii 2 REST API 项目模板是一个最佳用于快速创建小型 REST API 项目的框架。

模板包含基本功能,包括用户注册/登录 API。它包含所有常用的配置,让您可以专注于添加新功能到您的应用程序。

Testing Lint Code Coverage Scrutinizer Code Quality Latest Stable Version Total Downloads Latest Unstable Version License

需求

此项目模板的最小要求是您的 Web 服务器支持 PHP 7.2.0。

安装

通过 Composer 安装

如果您没有 Composer,您可以通过在 getcomposer.org 上找到的说明进行安装。

然后您可以使用以下命令安装此项目模板:

composer create-project --prefer-dist cashwarden/api <rest-api>
cd <rest-api>
cp .env.example .env
chmod 777 -R runtime/
chmod 777 -R web/uploads/
php yii migrate
php yii generate/key # optional 

现在您应该可以通过以下 URL 访问应用程序,假设 rest-api 是 Web 根目录下的目录。

https:///<rest-api>/web/

从 GitHub 安装

访问 使用此模板 从 yii2-rest-api 创建新仓库

git clone xxxx
cd <rest-api>
cp .env.example .env
chmod 777 -R runtime/
chmod 777 -R web/uploads/
php yii migrate
php yii generate/key # optional 

然后您可以通过以下 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 缓存

检查包

使用

此时,您有一个 RESTful API 服务器正在 http://127.0.0.1:8000 运行。它提供了以下端点

  • GET /health-check:用于健康检查的服务(在实现服务器集群时需要)
  • POST /v1/join:创建用户
  • POST /v1/login:验证用户并生成 JWT
  • POST /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":"成功"}