R representativt S tate T ransfer (REST) er en arkitektonisk stil som definerer et sett med begrensninger som skal brukes for å lage webtjenester. REST API er en måte å få tilgang til webtjenester på en enkel og fleksibel måte uten å ha noen behandling.

REST-teknologi er generelt foretrukket fremfor den mer robuste SOAP-teknologien (Simple Object Access Protocol) fordi REST bruker mindre båndbredde, enkel og fleksibel, noe som gjør den mer egnet for internettbruk. Den brukes til å hente eller gi informasjon fra en nettjeneste. All kommunikasjon som gjøres via REST API bruker kun HTTP-forespørsel.
Arbeider: En forespørsel sendes fra klient til server i form av en nettadresse som HTTP GET eller POST eller PUT eller SLETT-forespørsel. Etter det kommer et svar tilbake fra serveren i form av en ressurs som kan være alt som HTML, XML, Image eller JSON. Men nå er JSON det mest populære formatet som brukes i webtjenester.
Bygg REST API-mestring Lær å integrere populære og praktiske Python REST APIer i Django webapplikasjoner med Educatives interaktive ferdighetsbane Bli en Python-basert API-integrator. Registrer deg på Educative.io med koden NERD10 for å spare 10 % på abonnementet ditt.

I HTTP det er fem metoder som vanligvis brukes i en REST-basert arkitektur, dvs. POST, GET, PUT, PATCH og DELETE. Disse tilsvarer henholdsvis opprette, lese, oppdatere og slette (eller CRUD) operasjoner. Det er andre metoder som brukes sjeldnere som OPTIONS og HEAD.
- FÅ: HTTP GET-metoden brukes til lese (eller hente) en representasjon av en ressurs. I den sikre banen returnerer GET en representasjon i XML eller JSON og en HTTP-svarkode på 200 (OK). I et feiltilfelle returnerer den oftest en 404 (IKKE FUNNET) eller 400 (DÅRLIG FORESPØRSEL).
- POST: POST-verbet brukes oftest til skape nye ressurser. Spesielt brukes den til å lage underordnede ressurser. Det vil si underordnet en annen (f.eks. overordnet) ressurs. Ved vellykket opprettelse returnerer du HTTP-status 201, og returnerer en plasseringshode med en kobling til den nyopprettede ressursen med 201 HTTP-status.
MERK: POST er verken trygt eller idempotent.
- SETTE: Den brukes til oppdatering evnene. PUT kan imidlertid også brukes til skape en ressurs i tilfellet der ressurs-IDen er valgt av klienten i stedet for av serveren. Med andre ord, hvis PUT-en er til en URI som inneholder verdien til en ikke-eksisterende ressurs-ID. Ved vellykket oppdatering returnerer du 200 (eller 204 hvis du ikke returnerer noe innhold i kroppen) fra en PUT. Hvis du bruker PUT for opprettelse, returner HTTP-status 201 ved vellykket opprettelse. PUT er ikke sikker drift, men den er idempotent.
- LAPP: Det er vant til endre evner. PATCH-forespørselen trenger bare å inneholde endringene til ressursen, ikke hele ressursen. Dette ligner PUT, men brødteksten inneholder et sett med instruksjoner som beskriver hvordan en ressurs som for øyeblikket ligger på serveren skal endres for å produsere en ny versjon. Dette betyr at PATCH-kroppen ikke bare skal være en modifisert del av ressursen, men i et slags patchspråk som JSON Patch eller XML Patch. PATCH er verken trygt eller idempotent.
- SLETT: Det er vant til slette en ressurs identifisert av en URI. Ved vellykket sletting returnerer du HTTP-status 200 (OK) sammen med en svartekst.
Idempotens: En idempotent HTTP-metode er en HTTP-metode som kan kalles mange ganger uten forskjellige utfall. Det spiller ingen rolle om metoden kalles bare én gang eller ti ganger. Resultatet skal være det samme. Igjen, dette gjelder kun resultatet, ikke selve ressursen.
Eksempel:
C
min maks
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.> |
>
>
Forespørsel og svar
Nå skal vi se hvordan forespørsel og svar fungerer for forskjellige HTTP metoder. La oss anta at vi har en API( https://www.techcodeview.com ) for alle studentdata til gfg.
- FÅ: Forespørsel til alle studenter.
| Be om |
| FÅ:/api/studenter |
- POST: Forespørsel om bokføring/oppretting/innsetting av data
| Be om |
| POST:/api/studenter {navn:Raj} |
- PUT eller PATCH: Forespørsel om oppdatering av data på id=1
| Be om |
| PUT eller PATCH:/api/students/1 {navn:Raj} |
- SLETT: Forespørsel om sletting av data for id=1
| Be om |
| SLETT:/api/studenter/1 |
RESTful web-tjenester er veldig populære fordi de er lette, svært skalerbare og vedlikeholdbare og er svært ofte brukt til å lage APIer for nettbaserte applikasjoner.