シェルスクリプト、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 ファイルは次のコマンドを実行します
a. .env ファイルをコピーする
cp .env.example .env
Google API キーを .env ファイルに入力できます。
b. Dockerを起動してビルドを行う
docker-compose down -v && docker-compose build && docker-compose up -d
c.ディレクトリにコンポーザーをインストールするには
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 があります。注文をリスト、作成、更新するには
パラメータ | 価値観 | 備考 |
---|---|---|
URL | 0.0.0.0:8000 | docker ps -a をチェックして、現在動作している URL を確認してください。 |
APIパス | {URL} | |
終点 | {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"
},
...
]
注文の作成:
名前 | 価値観 |
---|---|
終点 | {URL}/注文 |
方法 | 役職 |
リクエストされたJSON
{
"origin": ["25.3260412","77.4978736"],
"destination": ["25.127270", "76.855173"]
}
応答 JSON:
{
"id": 51,
"distance": 12378.83,
"status": "UNASSIGNED"
}
更新順序:
名前 | 価値観 |
---|---|
終点 | {URL}/注文/{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