REST - una din piesele okoloprogrammistskih care explică cele mai dificile din lume. Deci, nu este o explicație completă, ci doar o poveste cu exemple. Mai bine, din păcate, eu doar nu va funcționa.
Ați văzut, probabil, deja transcrieri Transfer Representational State. În cazul în care foarte dur, este un transfer clar prin starea de aplicare HTTP (sună urât, nu-i asa? Pretinde că această propunere nu a avut nici o). În general, acesta este doar interfață concept de design pentru clienții API.
În ciuda faptului că un astfel de lucru poate lucra, automatiza nu va fi deloc. Ce operațiune iese - să citească, să actualizeze, de a crea sau șterge? Pot să-l repet? Pentru ce resurse se referă? Este posibil pentru a localiza cu ușurință zona erorilor blast în cazul apariției sale? Toate întrebările pot fi răspuns negativ, chiar și cele care nu presupun un răspuns boolean; ea - API zero, REST sau API, este un REST general fără legătură.
Cu toate acestea, acest exemplu este aspirat din deget. Cel mai adesea încă la URL-ul, puteți determina ce este de lucru, de exemplu, același vkontaktik audio.get său face posibilă determinarea pe care clientul va primi exact datele audio. Acesta este primul nivel de maturitate REST - partiție API pentru a separa resursele cu care munca este în curs de desfășurare. Numai de obicei, desigur, resursele sunt împărțite în mod diferit:
- / Audio - colectare audio
- / Audio / 1234 - înregistrare de resurse separate, cu ID-ul 1234
Aici vreau să opresc pe scurt și să acorde atenție faptului că lucrarea (în API-ul din dreapta) nu este la fel de „urlom prin care pentru a obține date“, ci ca două resurse. Colecția poate fi filtrat. sortare și de a ieși din ea o decupare separata (pagina), puteți crea un nou element (o nouă resursă unică), în unele cazuri - să înlocuiască sau să elimine în întregime, și resurse specifice pot fi obținute (eventual, de asemenea, cu filtrare, în cazul în care acesta poate fi mare), înlocuiți sau șterse.
În contextul solicitărilor din exemplul magazinului pot uita deja ca acest lucru:
Și, în sfârșit, există un al treilea nivel de maturitate REST, dar el (încă) aproape niciodată folosit. La acest nivel API oferă nu numai resurse, dar, de asemenea, sfaturi privind gestionarea acestor resurse. Dacă trimiteți următoarea listă:
există absolut ca nepontyano să se refere la un cuplu. să-l eliminați; De asemenea, nu este clar ce această pagină, dacă există în continuare și cum să meargă la precedentul. Prin urmare, API-ul poate furniza aceste informații:
Ei bine, asta e restul? REST - API este o paradigmă a organizației care include (printre altele), o diviziune clară în resurse și operațiuni de apel folosind metoda HTTP-specifică. Dar - numai în această poveste și peretolkov natură pur vebdeveloperskogo: strict vorbind, REST - este un set de cerințe stricte. din care există o necesitate de a lucra în acest mod. Dar când vezi pe internet „REST API“ - este vorba despre o separare clară a resurselor cu privire la funcționarea prin HTTP-metode, despre corect Content-Type conform Accept, despre greșeli expresie prin coduri de stare HTTP și prezentarea uniformă a acestor resurse. Un sufix (care este de fapt ful, dar nu complet) înseamnă doar transformarea cuvinte într-un adjectiv, REST - o paradigmă, API REST - API, paradigma relevantă.
Ea chiar da? În primul rând, API-ul devine proaspăt și miroase frumos - el este ușor și simplu de utilizat, pentru că știi ce să se aștepte, că resursele vor fi prezentate întotdeauna în aceeași formă, și știu că este nu numai tu, ci și orice Api-client (și, în plus, puteți construi api-client fără a cunoaște resursele limitate); În al doilea rând, această logică se aplică nu numai la particular API-ul, dar toate API, construit pe restul paradigmei. Deci, o zi obisnuirea la pervazul API github cu orice alt API REST va avea nici o dificultate.
Doar în cazul în care, dacă am început să scrie prea generale și umaniste - link-uri suplimentare: