JavaRush /Java Blog /Random-TK /REST-e syn. 1-nji bölüm: IEST GOWY näme

REST-e syn. 1-nji bölüm: IEST GOWY näme

Toparda çap edildi
Salam, bu gün zähmet bazarynda gaty gyzykly we iň esasysy, isleg bildirilýän mowzugy öwreneris - REST. REST-e syn.  1-nji bölüm: REST näme - 1REST-iň synyny üç bölege böleris:
  1. Birinji bölümde REST-iň taryhyna degip geçeris we REST-iň esaslanýan ýörelgelerini suratlandyrarys.

  2. Ikinjisinde, HTTP protokoly arkaly müşderi bilen serweriň arasynda aragatnaşygyň nähili bolup geçjekdigine serederis.

  3. Üçünjisinde, “Poçta” programmasyny ulanyp synap görjek kiçijik RESTful programma ýazarys.

Makala aşakdaky sözler bilen tanyş okyjy üçin niýetlenendir:
  • HTTP;
  • URL we URI;
  • JSON we az derejede XML;
  • Baglylyk sanjymy.

Bölüm 1. IEST GOWY näme

REST, IT dünýäsindäki köp zat ýaly, Wekilçilikli Döwlet Transferiniň gysgaldylyşy . Bu, kompýuter torundaky paýlanan ulgam komponentleriniň arasynda arhitektura täsir ediş usulydyr. Plyönekeý söz bilen aýdylanda, REST ulgamyň dürli bölekleriniň arasynda özara täsir etmek (maglumat alyşmak) stilini kesgitleýär, olaryň her biri fiziki taýdan dürli ýerlerde ýerleşip biler. Bu binagärlik stili paýlanan ulgam düzülende göz öňünde tutulýan yzygiderli çäklendirmeleri görkezýär. Bu çäklendirmelere käwagt REST ýörelgeleri diýilýär. Olaryň köpüsi ýok, diňe 6 bölek. Olar hakda biraz soňrak gürleşeris.
REST göz öňünde tutulan programmalar, ýagny REST tarapyndan girizilen çäklendirmeleri bozmaýan RESTful diýilýär.

REST taryhy

REST termini, 2000-nji ýylda "Arhitektura stilleri we tor esasly programma üpjünçiligi arhitekturasynyň dizaýny" doktorlyk dissertasiýasynda HTTP protokolyny döredenleriň biri Roý Fielding tarapyndan döredildi. REST adalgasynyň Bütindünýä Kerebiniň esasynda ýerleşýändigine garamazdan, henizem ýaşdygyny aýdyp bileris. Bu adalganyň gelip çykyşynyň taryhyna çuňňur aralaşmarys. Asyl çeşmelere çümmek isleseňiz, Fieldingiň dissertasiýasyna göz aýlaň .

REST çäklendirmeleri we ýörelgeleri

Aboveokarda aýdylyşy ýaly, REST paýlanan ulgamyň bölekleriniň biri-biri bilen nähili täsirleşmelidigini kesgitleýär. Umuman, bu haýyş-jogap arkaly bolýar. Talaby iberýän komponente müşderi diýilýär ; Islegiň üstünde işleýän we müşderä jogap iberýän komponente serwer diýilýär . Islegler we jogaplar köplenç HTTP (HyperText Transfer Protocol) arkaly iberilýär. Adatça serwer haýsydyr bir web programmasydyr. Müşderi diňe bir zat däl, eýsem gaty köp zat bolup biler. Mysal üçin, serwerden maglumat soraýan ykjam programma. Ora-da maglumatlary göçürip almak üçin serwerden web sahypasyndan haýyş iberýän brauzer. A programma B programmasyndan maglumat sorap biler, soň A B bilen baglanyşykly müşderi, B bolsa A bilen baglanyşykly serwerdir. Şol bir wagtyň özünde, A, C, D, D we ş.m. talaplaryny gaýtadan işläp biler. Bu ýagdaýda A programmasy serwer we müşderi. Bularyň hemmesi kontekste baglydyr. Bir zat düşnüklidir: haýyşy iberýän komponent müşderi. Talaby kabul edýän, işleýän we jogap berýän komponent serwerdir. Şeýle-de bolsa, komponentleri haýyş-jogap arkaly habarlaşýan ulgamlaryň hemmesi REST (ýa-da RESTful) ulgam däl. RESTful hasaplanylýan ulgam üçin alty sany REST çäklendirmesine “laýyk” bolmaly:

1. Arhitekturany müşderi-serwer modeline getirmek

Bu çäklendirmäniň esasy zerurlyklaryň tapawutlandyrylmagydyr. Müşderi interfeýsiniň zerurlyklaryny maglumatlary saklaýan serweriň zerurlyklaryndan aýyrmak zerurdyr. Bu çäklendirme, müşderi kodunyň beýleki platformalara geçirijiligini ýokarlandyrýar we serwer bölegini ýönekeýleşdirmek ulgamyň göwrümini ýokarlandyrýar. “Müşderi” bilen “serweriň” arasyndaky tapawut, biri-birine garaşsyz ösmäge mümkinçilik berýär.

2. conditionagdaýyň bolmazlygy

REST arhitekturasy aşakdaky şertiň ýerine ýetirilmegini talap edýär. Islegleriň arasynda serwer müşderiniň ýagdaýy we tersine maglumat saklamagyň zerurlygy ýok. Müşderiniň ähli islegleri serweriň haýyşy tamamlamak üçin ähli zerur maglumatlary almagy üçin gurluşly bolmaly. Şeýlelik bilen, serwer hem, müşderi hem öňki habarlara bil baglamazdan alnan islendik habara “düşünip” bilerler.

3. Keşleme

Müşderiler serweriň jogaplaryny keş edip bilerler. Bular, öz gezeginde, müşderileriň indiki haýyşlara jogap hökmünde köne ýa-da nädogry maglumatlary almazlygy üçin aç-açan ýa-da aç-açan görnüşde keş görnüşinde ýa-da saklap bolmajak görnüşde kesgitlenmeli. Keşden dogry peýdalanmak, müşderi-serweriň käbir täsirlerini doly ýa-da bölekleýin ýok etmäge kömek edýär, ulgamyň işleýşini we giňelmegini hasam ýokarlandyrýar.

4. Interfeýsiň birmeňzeşligi

REST arhitekturasynyň esasy talaplary bitewi, bitewi interfeýsi öz içine alýar. Müşderi haýsy formatda we haýsy salgylara haýyş ibermelidigine hemişe düşünmeli we serwer hem öz gezeginde müşderiniň haýyşlaryna haýsy formatda jogap bermelidigine düşünmeli. Bu, müşderi-serweriň özara gatnaşygy üçin bitewi format bolup, nämäni, nirede, haýsy görnüşde we nädip ibermelidigini we bitewi interfeýsdigini düşündirýär.

5. Gatlaklar

Gatlaklar torlaryň iýerarhiki gurluşyna degişlidir. Käwagt müşderi serwer bilen göni aragatnaşyk gurup bilýär, käwagt bolsa aralyk düwün bilen aragatnaşyk gurup bilýär. Aralyk serwerleriň ulanylmagy, ýük balansy we paýlanan keş görnüşi arkaly ulalmagy artdyryp biler. Mysal getireliň. Bütin dünýäde meşhur bolan ykjam programmany göz öňüne getireliň. Onuň aýrylmaz bölegi şekilleri ýüklemekdir. Millionlarça ulanyjy barlygy sebäpli, bir serwer beýle agyr ýüklere çydap bilmedi. Ulgamy gatlaklara bölmek bu meseläni çözer. Müşderi aralyk düwünden surat soraýar, aralyk düwün häzirki wagtda iň az ýüklenen serwerden suraty soraýar we suraty müşderä gaýtaryp berýär. Keşleme bu ýerde iýerarhiýanyň her derejesinde dogry ulanylsa, ulgamyň gowy ulalmagyna ýetip bolar.

6. Talap boýunça kod (goşmaça çäklendirme)

Bu çäklendirme, müşderiniň serwerden programma ýa-da skript görnüşinde kod göçürip alyp, işleýşini giňeldip biljekdigini aňladýar.

REST-iň peýdalary

Aboveokardaky çäklendirmeleriň hemmesine laýyk gelýän programmalaryň aşakdaky artykmaçlyklary bar: ygtybarlylyk (ýitirilip bilinjek müşderi döwlet maglumatyny saklamagyň zerurlygy ýok);
  • öndürijilik (keş ulanylyşy sebäpli);
  • göwrümliligi;
  • özara täsir ulgamynyň aýdyňlygy;
  • interfeýsleriň ýönekeýligi;
  • komponentleriň göterijiligi;
  • üýtgetmeleri amala aşyrmak aňsatlygy;
  • ösmek ukyby, täze talaplara uýgunlaşmak.
2-nji bölüm: müşderi bilen serweriň arasyndaky aragatnaşyk 3-nji bölüm: “Bahar boot” -da IEST GOWY hyzmat döretmek
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION