tutorials
June 25, 2022

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:

Product model.

Endi huddi shu modelni ProductControllerda.php da chaqirib ma'lumotlarni resource qaytarib yuboramiz:

ProductController.php

Endi controllerni ishlatish uchun route yozish kerak:

api.php

Endi asosiy masalaga o'tamiz. Resource fileda ma'lumotlarni jsonga o'giramiz:

ProductResource.php

Endi bizga ma'lumotlar quyidagi ko'rinishda keladi:

response body

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..