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.


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