Overskrifter, informasjonskapsler og parametere med REST-forsikret

1. Oversikt

I denne raske opplæringen vil vi utforske noen REST-sikre avanserte scenarier. Vi utforsket REST-forsikret før i opplæringen en guide til REST-forsikret.

Å fortsette, vi dekker eksempler som viser hvordan du angir overskrifter, informasjonskapsel og parametere for våre forespørsler.

Oppsettet er det samme som forrige artikkel, så la oss dykke inn i eksemplene våre.

2. Angi parametere

La oss nå diskutere hvordan vi kan spesifisere forskjellige parametere for forespørselen vår - startende med baneparametere.

2.1. Baneparametere

Vi kan bruke pathParam (parameternavn, verdi) for å spesifisere en styparameter:

@Test offentlig ugyldig nårUsePathParam_thenOK () {gitt (). PathParam ("bruker", "eugenp") .når (). Get ("/ brukere / {bruker} / repos") .then (). StatusCode (200); }

For å legge til flere baneparametere bruker vi pathParams () metode:

@Test offentlig ugyldig nårUseMultiplePathParam_thenOK () {gitt (). PathParams ("eier", "eugenp", "repo", "tutorials"). Når (). Get ("/ repos / {owner} / {repo}") .then (). statusCode (200); gitt (). pathParams ("eier", "eugenp"). når (). get ("/ repos / {owner} / {repo}", "tutorials") .then (). statusCode (200); }

I dette eksemplet har vi brukt navngitte baneparametere, men vi kan også legge til ikke navngitte parametere, og til og med kombinere de to:

gitt (). pathParams ("eier", "eugenp"). når (). get ("/ repos / {owner} / {repo}", "tutorials") .then (). statusCode (200);

Den resulterende URL-en, i dette tilfellet, er //api.github.com/repos/eugenp/tutorials.

Merk at de ikke navngitte parametrene er indeksbaserte.

2.2. Spørsmålsparametere

La oss deretter se hvordan vi kan spesifisere spørringsparametere ved hjelp av queryParam ():

@Test offentlig ugyldig nårUseQueryParam_thenOK () {gitt (). QueryParam ("q", "john"). Når (). Get ("/ search / brukere") .then (). StatusCode (200); gitt (). param ("q", "john"). når (). get ("/ search / users") .then (). statusCode (200); }

De param () metoden vil fungere som queryParam () med GET-forespørsler.

For å legge til flere spørringsparametere kan vi enten kjede flere queryParam () metoder, eller legg til parametrene i a queryParams () metode:

@Test offentlig ugyldig nårUseMultipleQueryParam_thenOK () {int perPage = 20; gitt (). queryParam ("q", "john"). queryParam ("per_page", perPage) .when (). get ("/ search / users") .then (). body ("items.size () ", er (perPage)); gitt (). queryParams ("q", "john", "per_page", perPage) .when (). get ("/ search / users") .then (). body ("items.size ()", er (per side)); }

2.3. Skjemaparametere

Til slutt kan vi spesifisere skjemaparametere ved hjelp av formParam ():

@Test offentlig ugyldig nårUseFormParam_thenSuccess () {gitt (). FormParams ("brukernavn", "john", "passord", "1234"). Post ("/"); gitt (). params ("brukernavn", "john", "passord", "1234"). post ("/"); }

De param () metoden vil handle livet formParam () for POST-forespørsler.

Legg også merke til at formParam () legger til en Innholdstype topptekst med verdien “application / x-www-form-urlencoded“.

3. Stille inn overskrifter

Neste, vi kan tilpasse forespørselsoverskriftene våre ved hjelp av Overskrift():

@Test offentlig ugyldig nårUseCustomHeader_thenOK () {gitt (). Header ("User-Agent", "MyAppName"). Når (). Get ("/ users / eugenp") .then (). StatusCode (200); }

I dette eksemplet har vi brukt Overskrift() for å stille inn Bruker agent Overskrift.

Vi kan også legge til en overskrift med flere verdier ved hjelp av samme metode:

@Test offentlig ugyldig nårUseMultipleHeaderValues_thenOK () {gitt (). Header ("My-Header", "val1", "val2") .when (). Get ("/ users / eugenp") .then (). StatusCode (200 ); }

I dette eksemplet har vi en forespørsel med to overskrifter: Min header: val1 og My-Header: val2.

For å legge til flere overskrifter bruker vi topptekster () metode:

@Test offentlig ugyldig nårUseMultipleHeaders_thenOK () {gitt (). Header ("User-Agent", "MyAppName", "Accept-Charset", "utf-8") .when (). Get ("/ users / eugenp") .then (). statusCode (200); }

4. Legge til informasjonskapsler

Vi kan også spesifisere tilpasset informasjonskapsel til vår forespørsel ved hjelp av kjeks():

@Test offentlig ugyldig nårUseCookie_thenOK () {gitt (). Cookie ("session_id", "1234"). Når (). Get ("/ brukere / eugenp") .then (). StatusCode (200); }

Vi kan også tilpasse informasjonskapselen vår ved hjelp av informasjonskapsel Bygger:

@Test offentlig ugyldig nårUseCookieBuilder_thenOK () {Cookie myCookie = new Cookie.Builder ("session_id", "1234") .setSecured (true) .setComment ("session id cookie") .build (); gitt (). cookie (myCookie). når (). get ("/ brukere / eugenp") .then (). statusCode (200); }

5. Konklusjon

I denne artikkelen har vi vist hvordan vi kan spesifisere forespørselsparametere, overskrifter og informasjonskapsler når vi bruker REST-sikret.

Og som alltid er hele kildekoden for eksemplene tilgjengelig på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found