واجهات برمجة تطبيقات بسيطة مع Shell Script وDocker وLaravel
يجب أن يكون إصدار 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
يمكنك إدخال مفتاح Google API الخاص بك في ملف .env.
ب. ابدأ تشغيل Docker وقم بالبناء
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 واجهات برمجة التطبيقات بطرق مختلفة. لسرد وإنشاء وتحديث الطلب
حدود | قيم | ملاحظات |
---|---|---|
عنوان URL | 0.0.0.0:8000 | يرجى التحقق من docker ps -a لتأكيد عنوان url الحالي للعمل |
مسار واجهة برمجة التطبيقات | {عنوان URL} | |
نقطة النهاية | {URL}/orders?page=:page&limit=:limit | مثال على أوامر القائمة |
مثال URI الكامل | http://0.0.0.0:8000/api/orders?page=:page&limit=:limit | |
وثائق واجهة برمجة التطبيقات | {URL}/api/documentation | |
تغطية الكود | {URL}/CodeCoverage/ |
واجهة برمجة تطبيقات طلب القائمة:
اسم | قيم |
---|---|
نقطة النهاية | {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}/الطلبات/{المعرف} |
طريقة | رقعة |
تم طلب 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"
إذا لم يعمل البناء يرجى تجربة هذه الأوامر
لإزالة وتحديث كافة أنظمة الإرساء docker system prune -a
لإيقاف جميع الحاويات العاملة وغير المستخدمة docker stop $(docker ps -a -q)
لإزالة كافة الحاويات العاملة وغير المستخدمة docker rm $(docker ps -a -q)
لإنشاء صورة محليًا، ابدأ في الإنشاء واستخدام وسيطات عدم التخزين المؤقت docker-compose build --no-cache && docker-compose up -d && docker-compose logs -f