JavaRush /Блоги Java /Random-TG /Баррасии REST. Қисми 1: REST чист

Баррасии REST. Қисми 1: REST чист

Дар гурӯҳ нашр шудааст
Салом, имрӯз мо як мавзӯи хеле ҷолиб ва муҳимтар аз ҳама, дар бозори меҳнат - REST -ро меомӯзем. Баррасии REST.  Қисми 1: REST чист - 1Мо шарҳи REST-ро ба се қисм тақсим мекунем:
  1. Дар қисми аввал, мо ба таърихи REST дахл мекунем ва принсипҳоеро тавсиф мекунем, ки REST ба он асос ёфтааст.

  2. Дар дуюм, мо дида мебароем, ки иртибот байни муштарӣ ва server тавассути протоколи HTTP чӣ гуна сурат мегирад.

  3. Дар сеюм, мо як барномаи хурди RESTful менависем, ки онро бо истифода аз барномаи Postman озмоиш мекунем.

Мақола барои хонандае пешбинӣ шудааст, ки бо истилоҳҳои зерин шинос аст:
  • HTTP;
  • URL ва URI;
  • JSON ва ба андозаи камтар XML;
  • Тазриқи вобастагӣ.

Қисми 1. REST чист

REST, мисли бисёр чизҳо дар ҷаҳони IT, ихтисораи интиқоли намояндагии давлатӣ мебошад . Ин як услуби меъмории ҳамкории байни ҷузъҳои системаҳои тақсимшуда дар шабакаи компютерӣ мебошад. Оддӣ карда гӯем, REST услуби ҳамкорӣ (мубодилаи маълумот) байни ҷузъҳои гуногуни системаро муайян мекунад, ки ҳар яки онҳо метавонанд дар ҷойҳои гуногун ҷойгир бошанд. Ин услуби меъморӣ маҷмӯи пайвастаи маҳдудиятҳоро ифода мекунад, ки ҳангоми тарҳрезии системаи тақсимшуда ба назар гирифта мешаванд. Ин маҳдудиятҳоро баъзан принсипҳои REST меноманд. Шумораи онҳо зиёд нест, танҳо 6 дона. Мо дар бораи онҳо каме дертар сӯҳбат хоҳем кард.
Барномаҳое, ки бо дарназардошти REST сохта шудаанд, яъне. ки маҳдудиятҳои аз ҷониби REST муқарраршударо вайрон намекунанд, RESTful номида мешаванд.

Таърихи REST

Истилоҳи REST аз ҷониби Рой Филдинг, яке аз созандагони протоколи HTTP, дар рисолаи доктории худ "Услубҳои меъморӣ ва тарҳрезии меъмории нармафзор дар асоси шабака" дар соли 2000 таҳия шудааст. Мо гуфта метавонем, ки истилоҳи REST ҳанӯз ҷавон аст, гарчанде ки консепсияи он дар асоси шабакаи ҷаҳонии интернет ҷойгир аст. Мо ба таърихи пайдоиши ин истилоҳ амиқ намеравем. Агар шумо хоҳед, ки ба сарчашмаҳои аслӣ ғарқ шавед, ба рисолаи Филдинг нигаред .

Маҳдудиятҳо ва принсипҳои REST

Тавре ки дар боло гуфта шуд, REST муайян мекунад, ки ҷузъҳои системаи тақсимшуда бояд бо ҳамдигар чӣ гуна ҳамкорӣ кунанд. Умуман, ин тавассути дархост-ҷавоб ба амал меояд. Компоненте, ки дархостро мефиристад, муштарӣ номида мешавад ; Компоненте, ки дархостро коркард мекунад ва ба муштарӣ посух мефиристад, server номида мешавад . Дархостҳо ва посухҳо бештар тавассути HTTP (Protocol Transfer HyperText) фиристода мешаванд. Одатан, server як навъ замимаи веб мебошад. Мизоҷ метавонад на танҳо чизе, балки хеле зиёд бошад. Масалан, як барномаи мобилӣ, ки маълумотро аз server талаб мекунад. Ё браузере, ки дархостҳоро аз саҳифаи веб ба server барои зеркашии маълумот мефиристад. Замимаи А метавонад аз замимаи В маълумот талаб кунад. Он гоҳ А мизоҷ дар робита бо B аст ва B server нисбат ба А аст. Ҳамзамон, А метавонад дархостҳоро аз C, D, D ва ғайра коркард кунад. Дар ин ҳолат, барномаи A ҳам server ва ҳам муштарӣ мебошад. Ҳамааш аз контекст вобаста аст. Як чиз равшан аст: ҷузъе, ки дархост мефиристад, муштарӣ аст. Компоненте, ки дархостро қабул, коркард ва посух медиҳад, server мебошад. Аммо, на ҳама системаҳое, ки ҷузъҳои онҳо тавассути дархост-ҷавоб муошират мекунанд, системаи REST (ё RESTful) мебошанд. Барои он ки система RESTful ҳисобида шавад, он бояд ба шаш маҳдудияти REST "мувофиқ" кунад:

1. Баровардани меъморӣ ба модели муштарӣ-server

Асоси ин мањдудият тафриќаи ниёзњост. Эҳтиёҷоти интерфейси муштариро аз ниёзҳои serverе, ки маълумотро нигоҳ медорад, ҷудо кардан лозим аст. Ин маҳдудият интиқоли рамзи муштариро ба дигар платформаҳо афзоиш медиҳад ва соддагардонии қисми server миқёспазирии системаро беҳтар мекунад. Худи тафовут байни "мизоҷ" ва "server" ба онҳо имкон медиҳад, ки новобаста аз ҳамдигар рушд кунанд.

2. набудани шароит

Меъмории REST барои риоя кардани шарти зерин талаб мекунад. Дар байни дархостҳо, server лозим нест, ки маълумотро дар бораи ҳолати муштарӣ нигоҳ дорад ва баръакс. Ҳама дархостҳои муштарӣ бояд тавре сохта шаванд, ки server тамоми маълумоти заруриро барои анҷом додани дархост қабул кунад. Бо ин роҳ, ҳам server ва ҳам муштарӣ метавонанд ҳар паёми гирифташударо бидуни такя ба паёмҳои қаблӣ “фаҳманд”.

3. Кэшкунӣ

Мизоҷон метавонанд посухҳои serverро кэш кунанд. Инҳо, дар навбати худ, бояд ба таври возеҳ ё ғайримустақим ҳамчун кэшшаванда ё ғайриимкон таъин карда шаванд, то муштариён дар посух ба дархостҳои минбаъда маълумоти кӯҳна ё нодуруст қабул накунанд. Истифодаи дурусти кэш кӯмак мекунад, ки баъзе мутақобилаи муштарӣ ва serverро пурра ё қисман аз байн барад, кори минбаъда ва васеъшавии системаро афзоиш диҳад.

4. Якхела будани интерфейс

Талаботи асосии меъмории REST дорои интерфейси ягона ва ягона мебошад. Муштарӣ бояд ҳамеша дарк кунад, ки дар кадом шакл ва ба кадом суроғаҳо дархост фиристодан лозим аст ва server низ дар навбати худ бояд дарк кунад, ки бояд дар кадом шакл ба дархостҳои муштарӣ посух диҳад. Ин формати ягонаи ҳамкории муштарӣ ва server мебошад, ки чиро, дар куҷо, дар кадом шакл ва чӣ гуна фиристоданро тавсиф мекунад ва интерфейси ягона мебошад.

5. Қабатҳо

Қабатҳо ба сохтори иерархивии шабакаҳо ишора мекунанд. Баъзан муштарӣ метавонад мустақиман бо server муошират кунад ва баъзан он метавонад танҳо бо гиреҳи фосилавӣ муошират кунад. Истифодаи serverҳои миёнарав метавонад миқёспазириро тавассути мувозинати сарборӣ ва кэши тақсимшуда афзоиш диҳад. Як мисол меорем. Биёед як барномаи мобorро тасаввур кунем, ки дар тамоми ҷаҳон маъмул аст. Қисми ҷудонашавандаи он боркунии тасвирҳо мебошад. Азбаски миллионҳо корбар ҳастанд, як server ба чунин бори вазнин тоб оварда наметавонист. Ба қабатҳо тақсим кардани система ин мушкилотро ҳал мекунад. Мизоҷ расмро аз гиреҳи мобайнӣ дархост мекунад, гиреҳи мобайнӣ расмро аз serverе, ки дар айни замон камтар бор карда шудааст, дархост мекунад ва расмро ба муштарӣ бармегардонад. Агар кэш дар ин ҷо дар ҳар як сатҳи иерархия дуруст татбиқ карда шавад, он гоҳ миқёспазирии хуби системаро ба даст овардан мумкин аст.

6. Рамзи дархост (маҳдудияти ихтиёрӣ)

Ин маҳдудият маънои онро дорад, ки муштарӣ метавонад функсияи худро тавассути зеркашии code аз server дар шакли апплетҳо ё скриптҳо васеъ кунад.

Манфиатҳои REST

Барномаҳое, ки ба ҳамаи маҳдудиятҳои дар боло зикршуда мувофиқат мекунанд, бартариҳои зерин доранд: эътимоднокӣ (зарурати нигоҳ доштани маълумоти ҳолати муштарӣ, ки метавонад гум шавад);
  • иҷроиш (бо сабаби истифодаи кэш);
  • миқёспазирӣ;
  • шаффофияти системаи мутақобила;
  • соддагии интерфейсҳо;
  • интиқоли ҷузъҳо;
  • осонии тағирот;
  • қобorяти инкишоф, мутобиқ шудан ба талаботи нав.
Қисми 2: иртибот байни муштарӣ ва server Қисми 3: эҷоди хидмати RESTful дар Spring Boot
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION