Laravel - API Resources
API loyiha yartaish mobaynida eloquent modellarimiz va foydalanuvchilarni bog'lab turivchi layer(shablon) kerak bo'ladi. Bu ishni bajarishda bizga resource yordamga keladi. API resource yaratish uchun quyidagi commandni terminalga yozamiz
php artisan make:resource PostResource
Bu bizga app/http/resource
da PostResource.php
filesini yaratib beradi. FIle ni boshlang'ich holati quyidagicha :
Biz Resource bilan emas toJson()
methodidan foydalanib ma'lumotlarimizni JSON ko'rinishiga keltirib foydalanuvchiga taqdim etishimiz mumkin, ammo, Eloquent Resourcelar modellar va ularni munosabatlarini JSON ga serialashtirishda(o'girishda) yanaham aniqroq va mustahkamlab berishda bizga juda katta yordam beradi.
Barcha API resource filelar toArray()
methodini ishlatadi. Bu method bizga controllerdan yoki routelardan kelgan ma'lumotni JSON ko'rinishiga keltirib beradi. Modellarimizdan kelgan natijani resource yordamida chiqarish uchun $this ni ishlatmiz.Resourcega biron bir model berilgandan so'ng agar resource qaytarib yuborilsa ma'lumotlarni JSON ko'rinishida olish mumkin :
Endi resourceni qanday ishlatishni o'zimizning misolimzda bir ko'rib chiqamiz. Tassavvur qiling bizda Product model bor:
Endi huddi shu modelni ProductControllerda.php
da chaqirib ma'lumotlarni resource qaytarib yuboramiz:
Endi controllerni ishlatish uchun route yozish kerak:
Endi asosiy masalaga o'tamiz. Resource fileda ma'lumotlarni jsonga o'giramiz:
Endi bizga ma'lumotlar quyidagi ko'rinishda keladi:
Resource yordamida faqat bizga kerakli bo'lgan columnlarni ham olishimiz mumkin buning uchun shunchaki sizga kerakli bo'lmagan qatorni olib tashlang.
Qolgan ma'lumotlarni https://laravel.com/docs/9.x/eloquent-resources dan olishingiz mumkin..