1-ci hissə: REST nədir Bu hissədə biz müştəri ilə server arasında rabitənin necə baş verdiyini daha yaxından nəzərdən keçirəcəyik. Yol boyu yeni terminlər açıqlayacağıq və onlara izahat verəcəyik. Hər şeyi aydınlaşdırmaq (olmaq) üçün bəzi RESTful tətbiqi nümunəsindən istifadə edərək müştəri-server əlaqəsini təhlil edəcəyik. Deyək ki, biz müştərilər və onların sifarişləri haqqında məlumat saxlaya bilən veb tətbiqi inkişaf etdiririk. Bunlar. sistemimiz bəzi obyektləri manipulyasiya etməyə qadirdir: onları yaratmaq, redaktə etmək, silmək və onlar haqqında məlumat vermək. Bu qurumlar olacaq:
- müştərilər - müştərilər;
- sifarişlər - müştəri sifarişləri;
- əşyalar - mallar.
İstək
Müştəri sorğuları demək olar ki, həmişə HTTP üzərindən edilir. Ümumiyyətlə, HTTP sorğuları bir neçə komponentdən ibarətdir:- HTTP metodu;
- başlıq;
- URI;
- sorğu orqanı.
URI və Resurslar
Müştərilərin sorğular vasitəsilə əldə etdiyi və ya dəyişdirdiyi məlumatlar resurs adlanır. Müştəri-server qarşılıqlı əlaqəsinin əsasını resursların manipulyasiyası təşkil edir. REST-dəki resurslar ad verilə bilən hər şeydir. Bunlar müəyyən mənada Java-dakı siniflərə bənzəyir. Java-da biz hər şey üçün sinif yarada bilərik. REST-də də eynidir - resurs hər hansı bir şey ola bilər: istifadəçi, sənəd, hesabat, sifariş. Bütün bunlar ya hansısa varlığın abstraksiyası və ya konkret bir şey ola bilər, məsələn, fayl - şəkil, video, animasiya, PDF faylı. Məsələn, bizim 3 resursumuz var:- müştərilər - müştərilər;
- sifarişlər - müştəri sifarişləri;
- əşyalar - mallar.
- /müştərilər - bütün mövcud müştərilərin URI-ləri;
- /clients/23 - konkret müştərinin URI-si, yəni ID=23 olan müştəri;
- /clients/4 - konkret müştərinin URI-si, yəni ID=4 olan müştəri.
- /clients/4/orders — 4 nömrəli müştərinin bütün sifarişlərinin URI-si;
- /müştərilər/1/sifarişlər/12 - 1 nömrəli müştərinin 12 nömrəli sifarişinin URI.
- /clients/1/orders/12/items — 1 nömrəli müştəri tərəfindən hazırlanmış 12 nömrəli sifariş üzrə bütün məhsulların siyahısının URI-si.
HTTP metodu
HTTP Metod (İngilis HTTP Method) resurs üzərində əsas əməliyyatı göstərən idarəetmə elementləri və ayırıcılar istisna olmaqla, hər hansı simvolların ardıcıllığıdır. Bir neçə ümumi HTTP metodu var. RESTful xidmətlərində ən çox istifadə olunanları sadalayırıq:- GET - konkret resurs (ID vasitəsilə) və ya resurslar toplusu haqqında məlumat əldə etmək üçün istifadə olunur;
- POST - yeni resurs yaratmaq üçün istifadə olunur;
- PUT - resursu dəyişdirmək üçün istifadə olunur (ID vasitəsilə);
- DELETE - resursu silmək üçün istifadə olunur (ID vasitəsilə).
Başlıqlar
Sorğular, eləcə də cavablar HTTP başlıqlarını ehtiva edir. Sorğu (və ya cavab) haqqında əlavə məlumat göndərirlər. Başlıqlar açar-dəyər cütləridir. Ən çox yayılmış başlıqların siyahısını Vikipediya səhifəsində oxuya bilərsiniz . REST ilə müştərilər tez-tez serverə sorğularında Qəbul başlığını göndərə bilərlər. Serverə müştərinin ondan hansı formatda cavab gözlədiyini bildirmək lazımdır. MIME növü adlanan siyahıda müxtəlif format seçimləri təqdim olunur. MIME (Çoxməqsədli İnternet Poçt Genişləndirmələri) informasiyanın kodlaşdırılması və mesajların İnternet üzərindən göndərilə bilməsi üçün formatlaşdırılması üçün spesifikasiyadır. Hər bir MIME növü kəsik işarəsi ilə ayrılmış iki hissədən ibarətdir: növ və alt növ. Müxtəlif növ fayllar üçün MIME növlərinə nümunələr:- mətn - mətn/düz, mətn/css, mətn/html;
- şəkil - şəkil/png, şəkil/jpeg, şəkil/gif;
- audio - audio/wav, audio/mpeg;
- video - video/mp4, video/ogg;
- proqram - application/json, application/pdf, application/xml, application/octet-stream.
Accept:application/json
Bu başlıq serverə müştərinin JSON formatında cavab almağı gözlədiyini bildirir.
Sorğu orqanı
Müştəri tərəfindən serverə göndərilən mesaj. Sorğunun gövdəsi olub-olmaması HTTP sorğusunun növündən asılıdır. Məsələn, GET və DELETE sorğuları adətən heç bir sorğu orqanını ehtiva etmir. Lakin PUT və POST aşağıdakıları ehtiva edə bilər: hamısı sorğu növünün funksional məqsədi ilə bağlıdır. Axı, məlumatları qəbul etmək və onu id (URL-da ötürülür) ilə silmək üçün serverə əlavə məlumat göndərmək lazım deyil. Ancaq yeni resurs (POST sorğusu) yaratmaq üçün bu resursu köçürməlisiniz. Eyni şey mövcud resursun dəyişdirilməsinə də aiddir. REST-də sorğunun mətnini ötürmək üçün ən çox XML və ya JSON formatlarından istifadə olunur. Ən çox yayılmış format JSON-dur. Tutaq ki, serverə sorğu göndərmək istəyirik və orada yeni resurs yaradırıq. Xatırlayırsınızsa, nümunə olaraq müştəri sifarişlərini idarə edən proqrama baxdıq. Tutaq ki, biz yeni müştəri yaratmaq istəyirik. Bizim vəziyyətimizdə müştərilər haqqında aşağıdakı məlumatları saxlayırıq: Ad E-poçt Telefon nömrəsi Onda belə sorğunun əsas mətni aşağıdakı JSON ola bilər:{
"name" : "Amigo",
"email" : "amigo@jr.com",
"phone" : "+7 (191) 746-43-23"
}
Müraciətlərin birləşdirilməsi
Beləliklə, müştəri sorğusunun nədən ibarət ola biləcəyinə baxdıq. İndi təsviri olan sorğulardan bəzi nümunələr verəkSorğu | Təsvir |
---|---|
|
json və ya xml formatında 23 nömrəli müştəri haqqında məlumat əldə edin |
|
Aşağıdakı sahələrlə yeni müştəri yaradın: Ad - Amigo E-poçt - amigo@jr.com Tel. — +7 (191) 746-43-23 |
|
1 nömrəli müştərini aşağıdakı kimi redaktə edin: Ad - Ben E-poçt - bigben@jr.com Tel. — +380 (190) 346-42-13 |
|
12 saylı müştəridən 6 saylı sifarişi sistemdən silin |
Cavablar
Serverin cavabları haqqında bir neçə söz deyək. Cavab adətən aşağıdakı hissələrdən ibarətdir:- cavab kodu;
- başlıqlar;
- cavab orqanı.
HTTP cavab kodları
HTTP cavab kodlarına daha yaxından nəzər salaq. Vikipediyadan bir sitat: HTTP status kodu HTTP protokolu vasitəsilə sorğular üçün server cavabının birinci sətirinin bir hissəsidir. Bu, üç onluq rəqəmdən ibarət tam ədəddir. Birinci rəqəm vəziyyətin sinfini göstərir. Cavab kodunun ardınca adətən ingilis dilində boşluqla ayrılmış izahlı ifadə gəlir və bu, şəxsə bu xüsusi cavabın səbəbini izah edir. Nümunələr:- 201 yaradılmışdır;
- 401 İcazəsiz;
- 507 Yaddaş qeyri-kafi.
- 1ХХ - məlumat;
- 2ХХ - müştərinin sorğusunun uğurla qəbul edilməsi və işlənməsi halları barədə məlumat vermək;
- 3XX - müştəriyə məlumat verin ki, əməliyyatı uğurla başa çatdırmaq üçün adətən başqa bir URI-dən istifadə etməklə başqa sorğu vermək lazımdır;
- 4ХХ - müştəri xətası. Məsələn, yanlış qurulmuş sorğu və ya müştəri mövcud olmayan resurs tələb etdikdə baş verə bilən məşhur 404 Tapılmamış kodu;
- 5ХХ - server xətası. Serverin günahı üzündən əməliyyat uğursuz olarsa, müştəriyə qaytarılır.
GO TO FULL VERSION