JavaRush /Java blogi /Random-UZ /REST haqida umumiy fikr. 1-qism: REST nima

REST haqida umumiy fikr. 1-qism: REST nima

Guruhda nashr etilgan
Assalomu alaykum, bugun biz mehnat bozorida juda qiziqarli va eng muhimi talabga ega bo'lgan mavzuni - RESTni o'rganamiz. REST haqida umumiy fikr.  1-qism: REST nima - 1Biz REST-ning umumiy ko'rinishini uch qismga ajratamiz:
  1. Birinchi bo'limda biz REST tarixiga to'xtalib o'tamiz va REST asoslangan tamoyillarni tasvirlab beramiz.

  2. Ikkinchisida biz HTTP protokoli orqali mijoz va server o'rtasidagi aloqa qanday sodir bo'lishini ko'rib chiqamiz.

  3. Uchinchisida biz kichik RESTful ilovasini yozamiz, uni Postman dasturi yordamida sinab ko'ramiz.

Maqola quyidagi atamalar bilan tanish bo'lgan o'quvchi uchun mo'ljallangan:
  • HTTP;
  • URL va URI;
  • JSON va kamroq darajada XML;
  • Bog'liqlik in'ektsiyasi.

1-qism. REST nima

REST, IT olamidagi ko'p narsalar singari, Vakillik Davlatini o'tkazish uchun qisqartma hisoblanadi . Bu kompyuter tarmog'idagi taqsimlangan tizim komponentlari o'rtasidagi o'zaro ta'sirning me'moriy uslubi. Oddiy qilib aytganda, REST tizimning har biri jismoniy jihatdan turli joylarda joylashgan bo'lishi mumkin bo'lgan tizimning turli komponentlari o'rtasidagi o'zaro ta'sir (ma'lumotlar almashinuvi) uslubini belgilaydi. Ushbu me'moriy uslub taqsimlangan tizimni loyihalashda hisobga olinadigan izchil cheklovlar to'plamini ifodalaydi. Ushbu cheklovlar ba'zan REST tamoyillari deb ataladi. Ularning ko'pi yo'q, faqat 6 dona. Biz ular haqida biroz keyinroq gaplashamiz.
REST-ni hisobga olgan holda qurilgan ilovalar, ya'ni. REST tomonidan qo'yilgan cheklovlarni buzmaydiganlar RESTful deb ataladi.

REST tarixi

REST atamasi HTTP protokolini yaratuvchilardan biri Roy Filding tomonidan 2000 yilda "Arxitektura uslublari va tarmoqqa asoslangan dasturiy ta'minot arxitekturasini loyihalash" mavzusidagi doktorlik dissertatsiyasida kiritilgan. Aytishimiz mumkinki, REST atamasi hali yosh, garchi uning kontseptsiyasi Butunjahon Internet tarmog'ining asosini tashkil etadi. Biz bu atamaning kelib chiqish tarixiga chuqur kirmaymiz. Agar siz asl manbalarga sho'ng'ishni istasangiz, Fieldingning dissertatsiyasini ko'rib chiqing .

REST cheklovlari va tamoyillari

Yuqorida aytib o'tilganidek, REST taqsimlangan tizimning tarkibiy qismlari bir-biri bilan qanday o'zaro ta'sir qilishini belgilaydi. Umuman olganda, bu so'rov-javob orqali sodir bo'ladi. So'rovni yuboruvchi komponent mijoz deb ataladi ; So'rovni qayta ishlaydigan va mijozga javob yuboradigan komponent server deb ataladi . So'rovlar va javoblar ko'pincha HTTP (HyperText Transfer Protocol) orqali yuboriladi. Odatda server bu qandaydir veb-ilovadir. Mijoz shunchaki hamma narsa emas, balki juda ko'p bo'lishi mumkin. Masalan, serverdan ma'lumotlarni so'raydigan mobil ilova. Yoki veb-sahifadan ma'lumotlarni yuklab olish uchun serverga so'rov yuboradigan brauzer. A ilovasi B ilovasidan ma'lumotlarni so'rashi mumkin. Keyin A B ga nisbatan mijoz, B esa A ga nisbatan serverdir. Shu bilan birga, A C, D, D va boshqalar so'rovlarini qayta ishlashi mumkin. Bu holda A ilovasi ham server, ham mijoz hisoblanadi. Hammasi kontekstga bog'liq. Bir narsa aniq: so'rovni yuboruvchi komponent mijozdir. So'rovni qabul qiladigan, qayta ishlaydigan va javob beradigan komponent serverdir. Biroq, komponentlari so'rov-javob orqali aloqa qiladigan har bir tizim REST (yoki RESTful) tizimi emas. Tizim RESTful deb hisoblanishi uchun u oltita REST cheklovlariga "mos" bo'lishi kerak:

1. Arxitekturani mijoz-server modeliga keltirish

Ushbu cheklovning asosi ehtiyojlarni farqlashdir. Mijoz interfeysi ehtiyojlarini ma'lumotlarni saqlaydigan server ehtiyojlaridan ajratish kerak. Ushbu cheklash mijoz kodining boshqa platformalarga o'tish qobiliyatini oshiradi va server qismini soddalashtirish tizimning miqyosliligini yaxshilaydi. "Mijoz" va "server" o'rtasidagi farq ularning bir-biridan mustaqil ravishda rivojlanishiga imkon beradi.

2. Shartning yo'qligi

REST arxitekturasi quyidagi shartni bajarishni talab qiladi. So'rovlar o'rtasida server mijozning holati haqida ma'lumotni saqlashi shart emas va aksincha. Mijozning barcha so'rovlari server so'rovni bajarish uchun barcha kerakli ma'lumotlarni oladigan tarzda tuzilishi kerak. Shunday qilib, server ham, mijoz ham oldingi xabarlarga tayanmasdan olingan har qanday xabarni “tushunishi” mumkin.

3. Keshlash

Mijozlar server javoblarini keshlashi mumkin. Ular, o'z navbatida, mijozlar keyingi so'rovlarga javoban eskirgan yoki noto'g'ri ma'lumotlarni olmasligi uchun aniq yoki bilvosita keshlangan yoki keshlanmagan deb belgilanishi kerak. Keshlashdan to'g'ri foydalanish ba'zi mijoz-server o'zaro ta'sirini to'liq yoki qisman bartaraf etishga yordam beradi, tizimning ishlashi va kengaytirilishini yanada oshiradi.

4. Interfeysning bir xilligi

REST arxitekturasining asosiy talablari birlashtirilgan, yagona interfeysni o'z ichiga oladi. Mijoz har doim qanday formatda va qaysi manzillarga so'rov yuborish kerakligini tushunishi kerak va server, o'z navbatida, mijoz so'rovlariga qanday formatda javob berish kerakligini tushunishi kerak. Bu mijoz-server o'zaro aloqasi uchun yagona format bo'lib, u nimani, qayerda, qanday shaklda va qanday yuborishni tavsiflaydi va yagona interfeysdir.

5. Qatlamlar

Qatlamlar tarmoqlarning ierarxik tuzilishiga ishora qiladi. Ba'zida mijoz to'g'ridan-to'g'ri server bilan, ba'zan esa oddiygina oraliq tugun bilan bog'lanishi mumkin. Oraliq serverlardan foydalanish yuklarni muvozanatlash va taqsimlangan keshlash orqali masshtabni oshirishi mumkin. Keling, misol keltiraylik. Keling, butun dunyoda mashhur bo'lgan mobil ilovani tasavvur qilaylik. Uning ajralmas qismi tasvirlarni yuklashdir. Millionlab foydalanuvchilar bo'lgani uchun bitta server bunday og'ir yukga bardosh bera olmadi. Tizimni qatlamlarga bo'lish bu muammoni hal qiladi. Mijoz oraliq tugundan rasm so'raydi, oraliq tugun hozirda eng kam yuklangan serverdan rasmni so'raydi va rasmni mijozga qaytaradi. Agar keshlash bu erda ierarxiyaning har bir darajasida to'g'ri qo'llanilsa, tizimning yaxshi miqyoslanishiga erishish mumkin.

6. Talab bo'yicha kod (ixtiyoriy cheklov)

Ushbu cheklov mijozning serverdan appletlar yoki skriptlar ko'rinishidagi kodni yuklab olish orqali o'z funksiyalarini kengaytirishi mumkinligini anglatadi.

RESTning afzalliklari

Yuqoridagi barcha cheklovlarga mos keladigan ilovalar quyidagi afzalliklarga ega: ishonchlilik (mijoz holati haqidagi ma'lumotlarni saqlashning hojati yo'q, ular yo'qolishi mumkin);
  • ishlash (keshdan foydalanish tufayli);
  • masshtablilik;
  • o'zaro ta'sir tizimining shaffofligi;
  • interfeyslarning soddaligi;
  • komponentlarning ko'chma qobiliyati;
  • o'zgartirishlar kiritish qulayligi;
  • rivojlanish qobiliyati, yangi talablarga moslashish.
2-qism: mijoz va server o'rtasidagi aloqa 3-qism: Spring Boot-da RESTful xizmatini yaratish
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION