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.