lux1177/api-starter-kit

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


README

基于 SymfonyDoctrineMaker BundleMigrations BundleVichUploader-bundleApi-PlatformJWT-auth 的 API 开发工具包。

工具包已经创建了用户和媒体对象实体,并包含了所有 CRUD 路由。

工具包包含 3 个 Docker 容器:phpnginxmysql

poster

安装

下载项目
composer create-project lux1177/api-starter-kit --ignore-platform-reqs --no-scripts project-name

进入项目目录
cd project-name

运行 Docker 容器
docker compose up -d

安装 composer 脚本
docker compose exec php composer install

要安装项目,运行命令
docker compose exec php bin/console ask:install

完成!您可以通过浏览器打开 https://:8505/api。顺便说一下,您可以通过修改 .env 文件中的 DOCKER_NGINX_PORT 变量来更改此端口。

Docker

要进入 php 容器,运行 docker compose exec php bash

要进入 mysql 容器,运行 docker compose exec mysql bash

要进入 nginx 容器,运行 docker compose exec nginx bash

您可以通过修改 .env 文件中的 DOCKER_PROJECT_NAME 变量来更改容器的名称前缀。

此外,您还可以通过修改 DOCKER_NGINX_PORTDOCKER_DATABASE_PORT 来更改 nginx 和 mysql 的公共端口。

数据库只允许来自本地的连接。因此,当您在生产环境中使用项目,并希望从您的计算机连接到数据库时,您应该通过 ssh 代理连接。

Cron

您可以使用 docker/php/cron-file 进行 cron 任务。之后,您必须通过运行命令重新构建 php 容器:
docker compose up -d --build

Swagger

您可以通过编辑文件 config/packages/api_platform.yaml 来更改项目名称和描述。

Git 钩子

如果您不使用任何部署系统,您可以这样做:
cp docker/other-files/git/hooks/post-merge .git/hooks

这样 git 总是执行 bin/console ask:deploy 命令。您可以在文件 src/Command/AskDeployCommand.php 中更改此命令。此命令将使用 composer 安装需求、清除缓存、将 ./var 和 ./public/media 文件夹的所有权更改为 www-data,并将运行迁移。

JWT 密钥

要使用JSON Web Token系统,您必须创建私钥和公钥。当您安装项目时,它们已经被创建。您可以使用以下命令重新创建它们:

bin/console ask:generate:jwtKeys