R representacional S tate T ransfer (REST) és un estil arquitectònic que defineix un conjunt de restriccions que s'utilitzaran per crear serveis web. API REST és una manera d'accedir als serveis web d'una manera senzilla i flexible sense tenir cap processament.
La tecnologia REST es prefereix generalment a la tecnologia SOAP (Simple Object Access Protocol) més robusta perquè REST utilitza menys amplada de banda, senzilla i flexible que la fa més adequada per a l'ús d'Internet. S'utilitza per obtenir o donar informació d'un servei web. Totes les comunicacions realitzades mitjançant l'API REST només fan servir la sol·licitud HTTP.
Treball: Una sol·licitud s'envia del client al servidor en forma d'URL web com a petició HTTP GET o POST o PUT o DELETE. Després d'això, una resposta torna del servidor en forma de recurs que pot ser qualsevol cosa com HTML, XML, Imatge o JSON. Però ara JSON és el format més popular que s'utilitza als serveis web.
Construeix el domini de l'API REST Apreneu a integrar les populars i pràctiques API REST de Python a les aplicacions web de Django amb la ruta d'habilitats interactiva d'Education Converteix-te en un integrador d'API basat en Python. Registra't a Educative.io amb el codi GEIKS10 per estalviar un 10% en la teva subscripció.
En HTTP hi ha cinc mètodes que s'utilitzen habitualment en una arquitectura basada en REST, és a dir, POST, GET, PUT, PATCH i DELETE. Aquests corresponen a operacions de creació, lectura, actualització i supressió (o CRUD) respectivament. Hi ha altres mètodes que s'utilitzen amb menys freqüència com OPTIONS i HEAD.
- ACONSEGUIR: S'utilitza el mètode HTTP GET llegir (o recuperar) una representació d'un recurs. Al camí segur, GET retorna una representació en XML o JSON i un codi de resposta HTTP de 200 (OK). En un cas d'error, la majoria de vegades retorna un 404 (NO TROBAT) o 400 (DEMANDA DOBLE).
- PUBLICACIÓ: El verb POST s'utilitza més sovint to crear nous recursos. En particular, s'utilitza per crear recursos subordinats. És a dir, subordinat a algun altre recurs (per exemple, pare). Quan s'ha creat correctament, retorneu l'estat HTTP 201, retornant una capçalera d'ubicació amb un enllaç al recurs acabat de crear amb l'estat HTTP 201.
NOTA: POST no és ni segur ni idempotent.
- POSA: S'utilitza per actualització les capacitats. Tanmateix, també es pot utilitzar PUT crear un recurs en el cas en què l'identificador de recurs l'escull el client en lloc del servidor. En altres paraules, si el PUT és a un URI que conté el valor d'un ID de recurs inexistent. En una actualització correcta, retorneu 200 (o 204 si no retorneu cap contingut al cos) des d'un PUT. Si utilitzeu PUT per a la creació, retorneu l'estat HTTP 201 en la creació correcta. PUT no és una operació segura però és idempotent.
- PATCH: S'acostuma a modificar capacitats. La sol·licitud PATCH només ha de contenir els canvis al recurs, no el recurs complet. Això s'assembla a PUT, però el cos conté un conjunt d'instruccions que descriuen com s'ha de modificar un recurs que resideix actualment al servidor per produir una nova versió. Això vol dir que el cos del PATCH no hauria de ser només una part modificada del recurs, sinó que hauria de ser en algun tipus de llenguatge de pedaç com ara JSON Patch o XML Patch. PATCH no és segur ni idempotent.
- ELIMINAR: S'acostuma a esborrar un recurs identificat per una URI. Si s'ha suprimit correctament, retorneu l'estat HTTP 200 (OK) juntament amb un cos de resposta.
Idempotència: Un mètode HTTP idempotent és un mètode HTTP que es pot cridar moltes vegades sense resultats diferents. No importaria si el mètode només es crida una vegada o deu vegades més. El resultat hauria de ser el mateix. De nou, això només s'aplica al resultat, no al recurs en si.
Exemple:
C
quantes ciutats EUA
1. a = 4> // It is Idempotence, as final value(a = 4)> > // would not change after executing it multiple> > // times.> 2. a++> // It is not Idempotence because the final value> > // will depend upon the number of times the> > // statement is executed.> |
>
>
Sol·licitud i resposta
Ara veurem com funcionen la sol·licitud i la resposta per a diferents HTTP mètodes. Suposem que tenim un API( https://www.techcodeview.com ) per a totes les dades dels estudiants de gfg.
- ACONSEGUIR: Petició per a tots els alumnes.
Sol·licitud |
GET:/api/students |
- PUBLICACIÓ: Sol·licitud de publicació/creació/inserció de dades
Sol·licitud |
POST:/api/estudiants {nom:Raj} |
- POSA o PATCH: Sol·licitud d'actualització de dades a id=1
Sol·licitud |
PUT o PATCH:/api/students/1 {nom:Raj} |
- ELIMINAR: Sol·licitud d'eliminació de dades d'id=1
Sol·licitud |
ELIMINAR:/api/students/1 |
Els serveis web RESTful són molt populars perquè són lleugers, molt escalables i de manteniment i s'utilitzen molt habitualment per crear API per a aplicacions basades en web.