Maybaygiare.org

Blog Network

7 HTTP metoder hver webutvikler bør vite og hvordan å teste dem

Noen gang lurt på hva forskjellen er mellom GET og POSTforespørsler, eller når du skal brukePUT? Du er ikke alene. Å ha en grunnleggende forståelse av DE forskjellige HTTP-metodene, eller verbene, Er En APIsupports en nyttig kunnskap når du utforsker Og tester Apier.

I dette innlegget vil jeg diskutere hvordan HVER HTTP-metoden brukes og how toincorporate dem I API testing.

HTTP-Metoder

    GETPOSTPUT HEAD DELETEPATCHOPTIONS

GETforespørsler er de vanligste og mest brukte metodene i apier ognettsteder. ENKELT sagt, GET-metoden brukes til å hente data fra aserver på den angitte ressursen. Si for Eksempel At Du har En APIwith en /users endepunkt. Å gjøre EN GET-forespørsel til det endepunktet børreturnere en liste over alle tilgjengelige brukere.

Siden EN GET-forespørsel bare ber om data og ikke endrer anyresources, er det ansett som sikker og idempotent metode.

Testing AV EN API med GET-forespørsler

når du oppretter tester for EN API, vilGET – metoden sannsynligvis være den hyppigste typen forespørsel fra forbrukere av tjenesten, så det er viktig å sjekke alle kjente endepunkter med EN GET-forespørsel.

på et grunnleggende nivå bør disse tingene valideres:

  • Kontroller at en gyldig GET-forespørsel returnerer en200 statuskode.
  • Kontroller AT EN HENT-forespørsel til en bestemt ressurs returnerer correctdata. For eksempel returnerer GET /users en liste over brukere.

GET ER ofte standardmetoden I HTTP-klienter, så å lage testerfor disse ressursene bør være enkle med hvilket som helst verktøy du velger.

POST

i webtjenester brukesPOST forespørsler til å sende data til Apiserveren for å opprette eller utdpate en ressurs. Dataene som sendes til serveren, er lagret intherequest body OF THE HTTP request.

det enkleste eksempelet er et kontaktskjema på et nettsted. Når du fyller ut inngangene i et skjema og treffer Send, blir dataene satt innresponslegemet til forespørselen og sendt til serveren. Dette kan VÆRE json, XML eller spørringsparametere (det er mange andre formater,men disse er de vanligste).

det er verdt å merke seg at en POST forespørsel er ikke-idempotent. Itmutates data på backend server (ved å opprette eller oppdatere aresource), i motsetning til en GET forespørsel som ikke endrer anydata. Her er en flott forklaring på idempotentcy.

Teste EN API med postforespørsler

den nest vanligste HTTP-metoden du vil støte på I API-testsis POST. Som nevnt ovenfor brukesPOST forespørsler tilsend data TIL API-serveren og opprett eller oppdater en ressurs. SincePOST forespørsler endre data, er det viktig Å HA API tester for allof DINE INNLEGG metoder.

Her er noen tips for testing AV postforespørsler:

  • Opprett en ressurs med en POST forespørsel og sørg for at en200 statuskode returneres.
  • gjør deretter en GET forespørsel om den ressursen, og sørg for at dataene ble lagret riktig.
  • Legg til tester som sikrer POST forespørsler mislykkes med feil eller dårlig formaterte data.

for noen flere ideer om vanlige API-testingsscenarioer,sjekk ut dette innlegget.

PUT

Simlar Å POSTE, PUT forespørsler brukes til å sende data TIL API toupdate eller opprette en ressurs. Forskjellen isthatPUT forespørsler er idempotent. Thatis, ringer samme PUT forespørsel flere ganger vil alltid producethe samme resultat. I kontrast, ringer en POST forespørsel gjentatte gangerhar bivirkninger av å skape den samme ressursen flere ganger.

generelt, når en PUT forespørsel oppretter en ressurs serveren vil svare med en 201Created), og hvis forespørselen modifiesexisting ressurs serveren vil returnere en 200OK) eller 204NoContent).

Testing AV EN API med PUT-forespørsler

Testing av En APIs PUT metoder ligner veldig på testing Av POSTrequests. Men nå som vi vet forskjellen mellom de to(idempotency), kan VI lage API-tester for å bekrefte denne oppførselen.

Sjekk ETTER DISSE tingene når DU tester PUT-forespørsler:

  • gjentatte ganger kaller enPUT forespørsel returnerer alltid det samme resultatet (idempotent).
  • den riktige statuskoden returneres når du oppretter og oppdaterer ressurs (f. eks. 201 eller 200204).
  • etter oppdatering av en ressurs med enPUT forespørsel, en GET forespørsel omat ressursen skal returnere de riktige dataene.
  • PUT forespørsler skal mislykkes hvis ugyldige data leveres i therquest-ingenting skal oppdateres .

PATCH

a PATCH forespørsel er en av DE mindre kjente HTTP-metodene, men jeg inkluderer det så høyt i listen siden DET ligner PÅ POST andPUT. Forskjellen med PATCH er at du bare bruker partialmodifications til ressursen.

forskjellen MELLOM PATCH og PUT, er thataPATCH forespørsel er ikke-idempotent(likea post forespørsel).

for å utvide på delvis endring, si AT DU ER API har en/users/{{userid}} endepunkt, og en bruker har et brukernavn. Med apatch-forespørsel trenger du kanskje bare å sende det oppdaterte brukernavnet inn i forespørselsorganet-i motsetning TIL POST og PUT som krever fulluser-enheten.

Testing EN API MED PATCH forespørsler

Siden PATCH metoden er så simlar Å LEGGE inn og SETTE, mange av de samme testteknikker gjelder. Det er fortsatt viktig å validere OPPFØRSELEN TIL API-endepunkter som godtar denne metoden.

hva du skal se etter når du tester PATCHFORESPØRSLER:

  • en vellykketPATCH forespørsel skal returnere en2xx statuskode.
  • PATCH forespørsler skal mislykkes hvis ugyldige data leveres i therequest-ingenting skal oppdateres .

semantikken TIL PATCHFORESPØRSLER vil i stor grad avhenge av den spesifikke API-EN du tester.

SLETT

DELETE metoden er akkurat som den høres ut: slett ressursen påden angitte NETTADRESSEN. Denne metoden er en av de vanligste I RESTfulAPIs, så det er godt å vite hvordan det fungerer.

Testing AV EN API med SLETTEFORESPØRSLER

DELETE forespørsler bør testes tungt siden de vanligvis fjerner data fra en database. Vær forsiktig når du tester SLETTEMETODER, gjør at du bruker riktig legitimasjon og ikke tester med realuser-data.

et typisk testtilfelle for EN SLETTEFORESPØRSEL vil se slik ut:

  1. Opprett en ny bruker med enPOST forespørsel til/users
  2. med bruker-id returnert fraPOST, lag enDELETE forespørsel til/users/{{userid}}
  3. en påfølgendeGET forespørsel til/users/{{userid}} skal returnere en 404 ikke funnet statuskode.

i tillegg sender EN SLETTEFORESPØRSEL til en ukjent ressurs shouldreturna non – 200 statuskode.

HODE

HEAD metoden er nesten identisk med GET, unntatt utenresponse kropp. Med andre ord, hvisGET /users returnerer en liste over brukere, vilHEAD /users gjøre samme forespørsel, men vil ikke få tilbake listen over brukere.

HEAD forespørsler er nyttige for å sjekke hva EN GET forespørsel willreturn før du faktisk gjør EN GET forespørsel – som beforedownloading en stor fil eller responsebody. Lær mer om HODEFORESPØRSLER på MDN.

det er verdt å påpeke at ikke alle endepunkter som støtter GETwill støtter HEAD – det er helt avhengig AV API du tester.

Testing AV EN API med HODEFORESPØRSLER

Å Lage API-forespørsler med HEAD metoder er faktisk en effektiv måte å bare verifisere at en ressurs er tilgjengelig. Det er goodpractice å ha en test for HODET forespørsler overalt du har en testfor FÅ forespørsler(så LENGE API støtter det).

Sjekk disse tingene når du tester EN API med HODEFORESPØRSLER:

  • Bekreft og sjekkhttp-overskrifter returnertfra EN HODEFORESPØRSEL
  • gjør påstander mot statuskoden TIL hodeforespørsler
  • Testforespørsler med ulike spørringsparameterr for å sikre APIresponds

Et annet nyttig tilfelle for HEAD forespørselerisapi røyk testing-lag EN HODEFORESPØRSEL mot HVERT API-endepunkt for å sikre at DE tilgjengelig.

ALTERNATIVER

Sist Men ikke minst har vi OPTIONS forespørsler. ALTERNATIVER forespørsler eren av mine favoritter, men ikke så mye brukt som de andre HTTPmethods. I et nøtteskall bør EN FORESPØRSEL om ALTERNATIVER returnere data som beskriver hvilke andre metoder og operasjoner serveren støtter på DEN oppgitte NETTADRESSEN.

OPSJONSFORESPØRSLER er mer løst definert og brukt enn de andre,noe som gjør dem til en god kandidat til å teste for fatale API-feil. Hvis anAPI ikke forventer EN OPSJONSFORESPØRSEL, er det godt å sette et test kasein-sted som bekrefter sviktende oppførsel.

Testing AV EN API med ALTERNATIVER forespørsler

Testing av en OPTIONS forespørsel er avhengig av webtjenesten; uansett om det ikke støtter det, og hva som skal returnere, vil definehvordan du skal teste det.Kontroller først og fremst svarhodene og statuskoden for forespørselen

  • Test endepunkter som ikke støtter ALTERNATIVER, og sørg for at de mislykkes
  • Flere ressurser

    det jeg har diskutert ovenfor, er bare et utgangspunkt for å grave i toHTTP-metoder og teste ulike ressurser i EN API. I den virkelige verden Er Apier ikke så strukturerte someksemplene ovenfor. Dette gjør testing ulike metoder mot En APIan effektiv måte å finne uventede bugs.

    Legg igjen en kommentar

    Din e-postadresse vil ikke bli publisert.