Overskrifter, cookies og parametre med REST-forsikret
1. Oversigt
I denne hurtige vejledning udforsker vi nogle REST-sikre avancerede scenarier. Vi udforskede REST-forsikret før i vejledningen en guide til REST-forsikret.
At fortsætte, vi dækker eksempler, der viser, hvordan du indstiller overskrifter, cookie og parametre til vores anmodninger.
Opsætningen er den samme som den foregående artikel, så lad os dykke ned i vores eksempler.
2. Indstilling af parametre
Lad os nu diskutere, hvordan vi angiver forskellige parametre til vores anmodning - startende med styparametre.
2.1. Sti-parametre
Vi kan bruge pathParam (parameternavn, værdi) for at angive en styparameter:
@Test offentligt ugyldigt nårUsePathParam_thenOK () {givet (). PathParam ("bruger", "eugenp") .når (). Get ("/ brugere / {bruger} / repos") .dan (). StatusCode (200); }
For at tilføje flere styparametre bruger vi pathParams () metode:
@Test offentlig ugyldig nårUseMultiplePathParam_thenOK () {givet (). PathParams ("ejer", "eugenp", "repo", "tutorials"). Når (). Get ("/ repos / {ejer} / {repo}") . derefter (). statusCode (200); given (). pathParams ("owner", "eugenp") .when (). get ("/ repos / {owner} / {repo}", "tutorials") .then (). statusCode (200); }
I dette eksempel har vi brugt navngivne stiparametre, men vi kan også tilføje ikke-navngivne parametre og endda kombinere de to:
given (). pathParams ("owner", "eugenp") .when (). get ("/ repos / {owner} / {repo}", "tutorials") .then (). statusCode (200);
Den resulterende URL er i dette tilfælde //api.github.com/repos/eugenp/tutorials.
Bemærk, at de ikke-navngivne parametre er indeksbaserede.
2.2. Forespørgselsparametre
Lad os derefter se, hvordan vi kan specificere forespørgselsparametre ved hjælp af queryParam ():
@Test offentlig ugyldig nårUseQueryParam_thenOK () {givet (). QueryParam ("q", "john"). Når (). Get ("/ search / brugere") .then (). StatusCode (200); givet (). param ("q", "john"). når (). get ("/ search / users") .dan (). statusCode (200); }
Det param () metode fungerer som queryParam () med GET-anmodninger.
For at tilføje flere forespørgselsparametre kan vi enten kæde flere queryParam () metoder, eller tilføj parametrene til en queryParams () metode:
@Test offentlig ugyldig nårUseMultipleQueryParam_thenOK () {int perPage = 20; given (). queryParam ("q", "john"). queryParam ("per_page", perPage) .when (). get ("/ search / users") .then (). body ("items.size () ", er (perPage)); given (). queryParams ("q", "john", "per_page", perPage) .when (). get ("/ search / users") .then (). body ("items.size ()", er (per side)); }
2.3. Formularparametre
Endelig kan vi specificere formularparametre ved hjælp af formParam ():
@Test offentligt ugyldigt nårUseFormParam_thenSuccess () {givet (). FormParams ("brugernavn", "john", "adgangskode", "1234"). Post ("/"); givet (). params ("brugernavn", "john", "password", "1234"). post ("/"); }
Det param () metoden vil handle liv formParam () til POST-anmodninger.
Bemærk også, at formParam () tilføjer en Indholdstype header med værdien “application / x-www-form-urlencoded“.
3. Indstilling af overskrifter
Næste, vi kan tilpasse vores anmodningsoverskrifter ved hjælp af header():
@Test offentligt ugyldigt nårUseCustomHeader_thenOK () {givet (). Header ("User-Agent", "MyAppName"). Når (). Get ("/ users / eugenp") .then (). StatusCode (200); }
I dette eksempel har vi brugt header() for at indstille Brugeragent header.
Vi kan også tilføje en overskrift med flere værdier ved hjælp af samme metode:
@Test offentlig ugyldig nårUseMultipleHeaderValues_thenOK () {given (). Header ("My-Header", "val1", "val2") .when (). Get ("/ users / eugenp") .then (). StatusCode (200 ); }
I dette eksempel har vi en anmodning med to overskrifter: Min header: val1 og Min header: val2.
For at tilføje flere overskrifter bruger vi overskrifter () metode:
@Test offentlig ugyldig nårUseMultipleHeaders_thenOK () {given (). Header ("User-Agent", "MyAppName", "Accept-Charset", "utf-8") .when (). Get ("/ users / eugenp") . derefter (). statusCode (200); }
4. Tilføjelse af cookies
Vi kan også specificere brugerdefineret cookie til vores anmodning ved hjælp af cookie ():
@Test offentlig ugyldig nårUseCookie_thenOK () {givet (). Cookie ("session_id", "1234"). Når (). Get ("/ brugere / eugenp") .then (). StatusCode (200); }
Vi kan også tilpasse vores cookie ved hjælp af cookie Bygger:
@Test offentlig ugyldig nårUseCookieBuilder_thenOK () {Cookie myCookie = ny Cookie.Builder ("session_id", "1234") .setSecured (true) .setComment ("session id cookie") .build (); given (). cookie (myCookie) .when (). get ("/ users / eugenp") .then (). statusCode (200); }
5. Konklusion
I denne artikel har vi vist, hvordan vi kan specificere anmodningsparametre, overskrifter og cookies, når vi bruger REST-sikret.
Og som altid er den fulde kildekode til eksemplerne tilgængelig på GitHub.