JavaRush /Java Blog /Random-TK /REST-e syn. 2-nji bölüm: Müşderi bilen serweriň arasyndak...

REST-e syn. 2-nji bölüm: Müşderi bilen serweriň arasyndaky aragatnaşyk

Toparda çap edildi
1-nji bölüm: REST näme? Bu bölümde müşderi bilen serweriň arasynda aragatnaşygyň nähili bolýandygyna has içgin serederis. Wayolda täze terminleri açarys we olar üçin düşündiriş bereris. REST-e syn.  2-nji bölüm: müşderi bilen serweriň arasyndaky aragatnaşyk - 1Hemme zady düşnükli etmek üçin, käbir RESTful programmanyň mysaly bilen müşderi-serwer aragatnaşygyny seljereris. Müşderiler we olaryň sargytlary barada maglumatlary saklamaga ukyply web programmasyny taýýarlaýarys diýeliň. Bular. ulgamymyz käbir guramalary dolandyrmaga ukyply: olary döretmek, redaktirlemek, pozmak we olar hakda maglumat bermek. Bu guramalar:
  • müşderiler - müşderiler;
  • sargytlar - müşderi sargytlary;
  • önümler - harytlar.
REST arhitekturasynda müşderiler maglumatlary almak ýa-da üýtgetmek üçin serwere haýyşlar iberýärler, serwerler müşderileriň isleglerine jogap iberýärler.

Islegler

Müşderi haýyşlary hemişe diýen ýaly HTTP-den edilýär. Umuman, HTTP haýyşlary birnäçe bölekden durýar:
  • HTTP usuly;
  • ady;
  • URI;
  • bedenini sora.
Aşakda her komponent bölegine has jikme-jik serederis.

URI we çeşmeler

Müşderileriň haýyşlar arkaly alýan ýa-da üýtgedýän maglumatlaryna çeşme diýilýär. Müşderi-serweriň özara täsiriniň esasy çeşmeleriň manipulýasiýasydyr. REST-däki çeşmeler, at berip boljak islendik zat. Bir nukdaýnazardan seredilende, bular Java-daky sapaklara meňzeýär. Java-da islendik zat üçin synp döredip bileris. REST-de birmeňzeş - çeşme islendik zat bolup biler: ulanyjy, resminama, hasabat, sargyt. Bularyň hemmesi haýsydyr bir guramanyň abstraksiýasy ýa-da anyk bir zat bolup biler, mysal üçin bir faýl - surat, wideo, animasiýa, PDF faýly. Mysal üçin, 3 çeşmämiz bar:
  • müşderiler - müşderiler;
  • sargytlar - müşderi sargytlary;
  • önümler - harytlar.
Müşderiler ahyrky nokatlara ýa-da ahyrky nokatlara haýyş iberýärler. Simplyönekeý söz bilen aýdylanda, ahyrky nokat tordaky adrese meňzeýär. Çuňňur öwrenmek üçin ahyrky nokat URI : abstrakt ýa-da fiziki çeşmäni kesgitleýän nyşanlaryň yzygiderliligi. Bitewi çeşme kesgitleýji - bitewi çeşme kesgitleýji. Käwagt ahyrky nokat ýa-da URI, ýol - çeşmä barýan ýol diýilýär. Bu makalanyň maksatlary üçin URI adalgasyny ulanarys. Her aýratyn çeşmede özboluşly URI bolmaly. Her çeşmäniň elmydama öz URI bolmagyny üpjün etmek jogapkärçiligi serwer döredijiniň egninde. Mysalymyzda biz işläp düzüjiler, şonuň üçin muny nädip bilşimiz ýaly ederis. Baglanyşyk bazasynda bolşy ýaly, esasy açary belli bir san belgisine bellemek adaty bolşy ýaly, REST-de her çeşmäniň öz şahsyýeti bar. Köplenç REST-de çeşmäniň ID-si bu çeşme hakda maglumat saklanýan maglumatlar bazasyndaky ýazgynyň şahsyýetine gabat gelýär. REST URI-ler adatça käbir çeşmäni suratlandyrýan atyň köplük görnüşinden başlaýar. Mysal üçin, müşderiler sözünden. Ondan soň, ID belli bir müşderiniň kesgitleýjisi çyzgy arkaly görkezilýär. Mysallar:
  • / müşderiler - bar bolan müşderileriň URI;
  • / müşderiler / 23 - Belli bir müşderiniň URI, ýagny ID = 23 bolan müşderi;
  • / müşderiler / 4 - Belli bir müşderiniň URI, ýagny ID = 4 bolan müşderi.
Emma bu hemmesi däl. URI-e buýruk goşmak bilen uzaldyp bileris:
  • / müşderiler / 4 / sargytlar - 4-nji müşderiniň ähli sargytlarynyň URI;
  • / müşderiler / 1 / sargytlar / 12 - 1-nji müşderiniň 12-nji sargyt URI.
Bu zynjyry dowam etdirip, haryt goşsak, alarys:
  • / müşderiler / 1 / sargytlar / 12 / elementler - 1-nji müşderi tarapyndan öndürilen 12-nji tertipde ähli önümleriň sanawynyň URI.
Höwürtge derejesi bilen, esasy zat URI-leri içgin etmekdir.

HTTP usuly

HTTP usuly (Iňlis HTTP usuly), çeşmede esasy işleýşi görkezýän dolandyryş we bölüjilerden başga islendik nyşanlaryň yzygiderliligi. Birnäçe umumy HTTP usuly bar. IEST GOWY hyzmatlarda iň köp ulanylýanlary sanap geçýäris:
  • GET - belli bir çeşme (ID arkaly) ýa-da çeşmeler ýygyndysy barada maglumat almak üçin ulanylýar;
  • POST - täze çeşme döretmek üçin ulanylýar;
  • PUT - çeşmäni üýtgetmek üçin ulanylýar (ID arkaly);
  • Öçürmek - çeşmäni pozmak üçin ulanylýar (ID arkaly).

Ingsazgylar

Islegler, şeýle hem jogaplar, HTTP sözbaşylaryny öz içine alýar. Talap (ýa-da jogap) hakda goşmaça maglumat iberýärler. Erazgylar esasy bahaly jübütlerdir. Iň köp ýaýran sözbaşylaryň sanawyny Wikipediýa sahypasynda okap bilersiňiz . REST bilen, müşderiler köplenç haýyşy boýunça kabul ediş sözbaşysyny serwere iberip bilerler. Müşderiniň haýsy formatda jogap almagyna garaşýandygyny serwere habar bermek zerurdyr. MIME görnüşli sanawda dürli format görnüşleri görkezilýär. MIME (Köp maksatly internet poçta giňeltmeleri) maglumatlary kodlamak we habarlary internet arkaly ibermek üçin formatlamak üçin spesifikasiýa. Her MIME görnüşi çyzgydan bölünen iki bölekden durýar: bir görnüş we kiçi görnüş. Dürli faýl görnüşleri üçin MIME görnüşlerine mysallar:
  • tekst - tekst / ýönekeý, tekst / css, tekst / html;
  • surat - surat / png, surat / jpeg, surat / gif;
  • ses - ses / wav, ses / mpeg;
  • wideo - wideo / mp4, wideo / ogg;
  • programma - programma / json, programma / pdf, programma / xml, programma / oktet-akym.
Umuman, haýyşda aşakdaky sözbaşy bolup biler:
Accept:application/json
Bu sözbaşy, müşderiniň JSON formatda jogap almagyna garaşýandygyny aýdýar.

Bedeniňi sora

Müşderi tarapyndan serwere iberilen habar. Islegiň bedeniniň bardygyny ýa-da ýokdugyny, HTTP haýyşynyň görnüşine baglydyr. Mysal üçin, GET we DELETE haýyşlarynda adatça haýsydyr bir haýyş organy ýok. Pöne PUT we POST öz içine alyp biler: bularyň hemmesi haýyş görnüşiniň funksional maksady bilen baglanyşykly. Galyberse-de, maglumatlary almak we id (URL-de iberilýär) bilen pozmak üçin serwere goşmaça maglumat ibermegiň zerurlygy ýok. Emma täze çeşme (POST haýyşy) döretmek üçin bu çeşmäni geçirmeli. Bar bolan çeşmäni üýtgetmek üçin hem edil şonuň ýaly. REST-de XML ýa-da JSON formatlary köplenç haýyş organyny geçirmek üçin ulanylýar. Iň ýaýran format JSON. Serwere haýyş ibermek isleýäris we onda täze çeşme döredeliň diýeliň. Rememberadyňyzda bolsa, mysal hökmünde müşderiniň sargytlaryny dolandyrýan programma seretdik. Täze müşderi döretmek isleýäris diýeliň. Biziň ýagdaýymyzda, müşderiler hakda aşakdaky maglumatlary saklaýarys: Adyň E-poçta Telefon belgisi Soňra şeýle haýyşyň mazmuny aşakdaky JSON bolup biler:
{
  "name" : "Amigo",
  "email" : "amigo@jr.com",
  "phone" : "+7 (191) 746-43-23"
}

Islegleri bir ýere jemlemek

Şeýlelik bilen, müşderiniň haýyşynyň nämeden ybarat bolup biljekdigine göz aýladyk. Indi düşündirişli soraglaryň käbir mysallaryny bereliň
Talap Düşündiriş

GET /clients/23
Accept : application/json, application/xml
23-nji müşderi hakda json ýa-da xml görnüşinde maglumat alyň

POST /clients
{
  "name" : "Amigo",
  "email" : "amigo@jr.com",
  "phone" : "+7 (191) 746-43-23"
}
Aşakdaky meýdanlar bilen täze müşderi dörediň:
Ady - Amigo
E-poçta - amigo@jr.com
Tel. - +7 (191) 746-43-23

PUT /clients/1
{
  "name" : "Ben",
  "email" : "bigben@jr.com",
  "phone" : "+380 (190) 346-42-13"
}
1-nji müşderini aşakdaky ýaly redaktirläň:
Ady - Ben
E-poçta - bigben@jr.com
Tel. - +380 (190) 346-42-13

DELETE /clients/12/orders/6
12-nji müşderiden 6-njy buýrugy ulgamdan pozuň

Jogaplar

Serweriň beren jogaplary barada birnäçe söz aýdalyň. Jogap, adatça, aşakdaky böleklerden durýar:
  • jogap kody;
  • sözbaşylar;
  • jogap organy.
Umuman aýdanyňda, jogap sözbaşylary haýyş sözbaşylaryndan kän bir tapawutlanmaýar. Mundan başga-da, käbir sözbaşylar jogaplarda we haýyşlarda ulanylýar. Jogap mazmuny bilen hemme zat düşnükli diýip pikir edýärin. Beden köplenç müşderiniň soran maglumatlaryny yzyna berýär. GET haýyşlary üçin maglumat şol bir JSON formatda yzyna gaýtarylyp bilner. Emma soňky bölümi birneme has gyzykly.

HTTP jogap kodlary

Geliň, HTTP jogap kodlaryna has içgin seredeliň. Ine, Wikipediýadan sitata: HTTP status kody, HTTP protokolynyň üsti bilen haýyşlar üçin serwer jogaplarynyň birinji setiriniň bir bölegidir. Üç onluk sanly bitewi san. Birinji san ýagdaýyň synpyny görkezýär. Jogap kody, adatça, boşluk bilen bölünen iňlis dilinde düşündirişli söz düzümi bolup, adama bu aýratyn jogabyň sebäbini düşündirýär. Mysallar:
  • 201 Döredildi;
  • 401 Rugsat berilmedik;
  • 507 ammary ýeterlik däl.
Müşderi haýyşynyň netijeleri barada jogap kodundan öwrenýär we indiki çäreleri görmelidigini kesgitleýär. Jogap kodlary birnäçe topara bölünýär:
  • 1ХХ - maglumat;
  • 2ХХ - müşderiniň islegini üstünlikli kabul etmek we gaýtadan işlemek ýagdaýlary barada maglumat bermek;
  • 3XX - amaly üstünlikli tamamlamak üçin başga bir URI ulanyp, başga bir haýyş etmegiň zerurdygyny müşderä habar beriň;
  • 4ХХ - müşderiniň ýalňyşlygy. Mysal üçin, nädogry gurlan haýyş ýa-da belli bir 404 Tapylmadyk kod, müşderi ýok çeşmäni soranda ýüze çykyp biler;
  • 5ХХ - serwer ýalňyşlygy. Serweriň näsazlygy sebäpli amal şowsuz bolsa, müşderä gaýdyp geldi.
Thehli kodlar barada has giňişleýin maglumaty şu ýerden okap bilersiňiz . 1-nji bölüm: IEST GOWY 3-nji bölüm: Bahar aýakgabynda IEST GOWY hyzmat döretmek
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION