API แบบง่ายพร้อม Shell Script, Docker และ Laravel
เวอร์ชันนักเทียบท่าควรเป็น >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
คุณสามารถป้อนรหัส Google API ของคุณในไฟล์ .env
ข. เริ่ม Docker และสร้าง build
docker-compose down -v && docker-compose build && docker-compose up -d
ค. เพื่อติดตั้งผู้แต่งในไดเร็กทอรี
docker-compose exec laravel-app composer install
ง. เพื่อย้ายฐานข้อมูลไปยังนักเทียบท่า
docker-compose exec laravel-app php artisan key:generate
docker-compose exec laravel-app php artisan migrate --seed
จ. กำลังสร้างเอกสาร API
docker-compose exec laravel-app php artisan l5-swagger:generate
ฉ. เพื่อตรวจสอบ URL ไดเร็กทอรีการทำงาน
docker ps -a
ก. ดำเนินการทดสอบ 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/documentation | |
ความครอบคลุมของรหัส | {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"
เพื่อทำงานภายใต้เซิร์ฟเวอร์ mysql ในคอนเทนเนอร์ด้วย devuser.. (รหัสผ่าน = 123456)
docker exec -it mysql-db bash -c "mysql -u admin -psecret -p"
หาก build ใช้งานไม่ได้ โปรดลองใช้คำสั่งเหล่านี้
หากต้องการลบและรีเฟรชระบบนักเทียบท่าทั้งหมด docker system prune -a
หากต้องการหยุดการทำงานและคอนเทนเนอร์ที่ไม่ได้ใช้งานทั้งหมด docker stop $(docker ps -a -q)
หากต้องการลบคอนเทนเนอร์ที่ทำงานและไม่ได้ใช้งานทั้งหมด docker rm $(docker ps -a -q)
หากต้องการสร้างอิมเมจในเครื่อง ให้เริ่มสร้างและไม่ใช้แคช args docker-compose build --no-cache && docker-compose up -d && docker-compose logs -f