使用 Shell 脚本、Docker 和 Laravel 的简单 API
Docker 版本应 >18.00
按照以下简单步骤操作 API 项目
克隆存储库
git clone https://github.com/gazra-labs/laravel-docker-apis.git
cd laravel-docker-apis
运行start.sh
文件,该文件将执行以下命令
上面的start.sh文件将运行以下命令
一个。复制 .env 文件
cp .env.example .env
您可以在 .env 文件中输入您的 Google API 密钥。
b.启动 Docker 并进行构建
docker-compose down -v && docker-compose build && docker-compose up -d
c.将composer安装到目录中
docker-compose exec laravel-app composer install
d.将数据库迁移到docker
docker-compose exec laravel-app php artisan key:generate
docker-compose exec laravel-app php artisan migrate --seed
e.生成API文档
docker-compose exec laravel-app php artisan l5-swagger:generate
f.检查工作目录 URL
docker ps -a
g。执行 PHPUnit 测试
sleep 120
docker exec laravel-app ./vendor/bin/phpunit
点击 URL,您将找到正在运行的项目。工作 URL 为 http://0.0.0.0:8000
有 3 个具有不同方法的 API。列出、创建和更新订单
参数 | 价值观 | 评论 |
---|---|---|
网址 | 0.0.0.0:8000 | 请检查docker ps -a 以确认当前工作 url |
API路径 | {网址} | |
终点 | {URL}/orders?page=:page&limit=:limit | 列表订单示例 |
完整 URI 示例 | http://0.0.0.0:8000/api/orders?page=:page&limit=:limit | |
API文档 | {URL}/api/文档 | |
代码覆盖率 | {URL}/代码覆盖/ |
列表订单API:
姓名 | 价值观 |
---|---|
终点 | {URL}/orders?page=:page&limit=:limit |
方法 | 得到 |
请求的 JSON | 无 JSON 正文 |
响应 JSON
[
{
"id": 1,
"distance": 10636,
"status": "UNASSIGNED"
},
{
"id": 2,
"distance": 13634,
"status": "UNASSIGNED"
},
...
]
创建订单:
姓名 | 价值观 |
---|---|
终点 | {网址}/订单 |
方法 | 邮政 |
请求的 JSON
{
"origin": ["25.3260412","77.4978736"],
"destination": ["25.127270", "76.855173"]
}
响应 JSON:
{
"id": 51,
"distance": 12378.83,
"status": "UNASSIGNED"
}
更新顺序:
姓名 | 价值观 |
---|---|
终点 | {网址}/订单/{id} |
方法 | 修补 |
请求的 JSON
{
"status": "TAKEN"
}
响应 JSON
{
"status": "SUCCESS"
}
测试 PHP 单元测试
docker exec laravel-app ./vendor/bin/phpunit
要使用 devuser 在容器下工作...
docker exec -it laravel-app bash -c "sudo -u devuser /bin/bash"
使用devuser在容器中的mysql服务器下工作..(密码= 123456)
docker exec -it mysql-db bash -c "mysql -u admin -psecret -p"
如果构建不起作用,请尝试这些命令
删除并刷新所有 docker 系统docker system prune -a
要停止所有正在工作和未使用 sed 的容器docker stop $(docker ps -a -q)
删除所有正在工作和未使用 sed 的容器docker rm $(docker ps -a -q)
要在本地构建映像,请开始构建并使用无缓存参数docker-compose build --no-cache && docker-compose up -d && docker-compose logs -f