使用 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