Laravel orqali JSON API yaratish: Asosiy tushunchalar (1-qism)

Laravel orqali JSON API yaratish: Asosiy tushunchalar (1-qism)

Laravel orqali JSON API yaratish: Asosiy tushunchalar (1-qism)

Bugungi kunda dasturchilar orasida ancha mashhur bo’lib ulgurgan JSON API tushunchasi mavjud. Oldingi maqolalarimda
php va Lumen Framework orqali RESTful API dan foydalanishni ko’rib chiqgan edik. Bugun ko’pchilik yangi dasturlashga kirib kelayotgan uchun balki qiziq bo’lishi mumkin bo’lgan yana bir API turlaridan biri JSON API lar bilan tanishib chiqishga harakat qilamiz. Bu maqolalarda men Laravel Framework orqali JSON API yaratishga harakat qilib ko’raman. Bugungi kunda server side / Back end dasturchilarning ko’pchiligi web ilovalar yaratayotgan vaqtlarida asosan JSON API lar bilan juda ko’p ishlashadi va ular bilan o’zaro integratsiyalarni hosil qilishadi. Ushbu qisqa seriyada biz Laravel-dan foydalanib, o’zimizning asosiy JSON API-ni yaratmoqchimiz. Seria qancha davom etishini aniq bilmayman, ammo quyidagi fikrlarni keltirmoqchiman;

  • Nega JSON?
  • CRUD / BREAD tushunchalari nimani anglatadi?
  • Laravel Modeller & Eloquent yordamida ma’lumotlarni yaratish
  • Modellarni Internetda namoyish qilish
  • Model (lar) ni yaratish, yangilash va o’chirish bo’yicha kirish so’rovlarini tekshirish
  • API sinovi
  • Va b…

Dastlab quyida biz yuqorida keltirgan ikkita fikrlarni izohlab o’taylik.

Nega JSON?

Ko’pgina onlayn qo’llanmalar (ayniqsa eskiroqlari) XML va SOAP API xizmatlaridan foydalanadilar. So’nggi 8 yil ichida, ayniqsa oxirgi 5 yilda — XML asta-sekin JSON foydasiga bekor qilindi. Lekin nega?

JSON o’qish osonroq

Yuqori darajada tuzilgan va ierarxik bo’lsa-da, XML bu JSON-ga nisbatan odam sifatida o’qish uchun murakkabdir. Bu imkonsiz emas, ammo oson ham emas.

XML Sekinroq

Agarda siz C# yoki .NET texnologiyalariga bog’liq dasturlash bilan shug’ullansangiz shaxsan mening fikrim bo’yicha XML ancha optimal variant hisoblanadi va balki juda yaxshi tanlov hamdir. Ammo boshqa tamondan olib qarasak JSON tanlovi XML dan ko’ra ancha qulay tanlovga aylanadi. XML-ning o’ziga xos xususiyatlarida taqdim etadigan barcha murakkabliklar tufayli XML iste’mol qilish resurslarni talab qiladi va bu ish jarayonini sekinlashtirishga olib kelishi mumkin.

JSON yengil va «shunchaki JavaScript». Bu barcha zamonaviy tillarga va barcha service xizmatlarga mos keladi va ular bilan bemalol integrallasha oladi.

CRUD / BREAD tushunchalari nimani anglatadi?

Bugungi kunda har bir dasturchi CRUD tushunchasi nima ekanligini juda yaxshi biladi. Chuni bu tushuncha juda zarur va kerakli tushunchadir. Umuman olganda nafaqat dasturlashda va balki odatiy hayotimizda ham ushbu tushunchaga deyarli har kuni duch kelamiz. CRUD bu dasturchi uchun «Non va Saryog’ » dir.

CRUD — yaratish (Create), o’qish (Read), yangilash (Update), o’chirish (Delete) uchun qisqartma bo’lib, «Resurs» ni boshqarishga imkon beruvchi to’rtta asosiy funksiyalar hisoblanadi.

BREAD — bu nisbatan yangi atama bo’lib, men ham bu tushuncha bilan tanishganimga juda ko’p vaqt bo’lamadi va bu bizga CRUD o’rniga ishlatish imkonini beradi. Zamonaviy veb-ilovalarning aksariyatida siz odatda resurs indeksiga egasiz.

Masalan:

Bizda boshqarishni istagan foydalanuvchilarimiz bor. Faraz qilaylik bizga quyidagi funksionallik kerak;

  • Barcha foydalanuvchilar ro’yxati
  • Yangi foydalanuvchi qo’shish
  • Foydalanuchini kuzatish
  • Foydalanuvchi ma’lumotarini yangilash
  • Foydalanuvchini olib tashlash

5 ta imkoniyat. Endi bu CRUD qoidasiga (4 ta imkoniyat) to’g’ri kelmaydi va bunda bizga yordamga
BREAD Tushunchasi keladi. BREAD Ko’rish (Browse), O’qish (Read), Tahrirlash (Edit), Qo’shish (Add), O’chirish (Delete).

Yuqorida sanab o’tilgan 5 funksionallik
BREADga juda mos keladi. Zamonaviy freameworklarda yuqorida keltirilgan funksionallik avtomatik tarzda yaratiladi shu jumladan Laravelning «php artisan make:controller UserController -r» biz uchun barcha bu funktsiyalarni aniqlaydigan resurs boshqaruvchisini yaratib beradi

Misol tariqasida:

class UserController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return IlluminateHttpResponse
     */
    public function index()
    {
        //
    }
    /**
     * Show the form for creating a new resource.
     *
     * @return IlluminateHttpResponse
     */
    public function create()
    {
        //
    }
    /**
     * Store a newly created resource in storage.
     *
     * @param  IlluminateHttpRequest  $request
     * @return IlluminateHttpResponse
     */
    public function store(Request $request)
    {
        //
    }
    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return IlluminateHttpResponse
     */
    public function show($id)
    {
        //
    }
    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return IlluminateHttpResponse
     */
    public function edit($id)
    {
        //
    }
    /**
     * Update the specified resource in storage.
     *
     * @param  IlluminateHttpRequest  $request
     * @param  int  $id
     * @return IlluminateHttpResponse
     */
    public function update(Request $request, $id)
    {
        //
    }
    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return IlluminateHttpResponse
     */
    public function destroy($id)
    {
        //
    }
}

Xulosa

Bugun biz API larga murojaat va ularning bajarishi mumkin bo’lgan funksiyalari bilan tanishib chiqdik.

Biz keyingi qisimda Laravel-dan foydalangan holda o’z Model (lar )imizni yaratamiz, ularni Internetda joylashtirgan holda ma’lumotlariga ega bo’lishlarini ta’minlaymiz va tekshiruvdan o’tkazib ko’ramiz.

Web Dasturlash
Laravel orqali JSON API yaratish: Asosiy tushunchalar (1-qism)