Hlavičky, cookies a parametre so zárukou REST

1. Prehľad

V tomto rýchlom výučbe preskúmame niektoré pokročilé scenáre zaistené REST. Skúmali sme s istotou REST predtým, ako sme v tutoriáli Sprievodcu istotou REST.

Pokračovať, uvedieme príklady, ktoré ukazujú, ako nastaviť hlavičky, súbory cookie a parametre pre naše požiadavky.

Nastavenie je rovnaké ako v predchádzajúcom článku, takže sa poďme ponoriť do našich príkladov.

2. Nastavenie parametrov

Teraz poďme diskutovať o tom, ako zadať rôzne parametre pre našu požiadavku - počnúc parametrami cesty.

2.1. Parametre cesty

Môžeme použiť pathParam (parameter-name, value) na zadanie parametra cesty:

@Test public void whenUsePathParam_thenOK () {given (). PathParam ("user", "eugenp") .when (). Get ("/ users / {user} / repos") .then (). StatusCode (200); }

Na pridanie viacerých parametrov cesty použijeme pathParams () metóda:

@Test public void whenUseMultiplePathParam_thenOK () {given (). PathParams ("owner", "eugenp", "repo", "tutorials") .when (). Get ("/ repos / {owner} / {repo}") .potom (). statusCode (200); given (). pathParams ("owner", "eugenp") .when (). get ("/ repos / {owner} / {repo}", "tutoriály") .then (). statusCode (200); }

V tomto príklade sme použili pomenované parametre cesty, môžeme však pridať aj nepomenované parametre a tieto dva dokonca kombinovať:

given (). pathParams ("owner", "eugenp") .when (). get ("/ repos / {owner} / {repo}", "tutorials") .then (). statusCode (200);

Výsledná adresa URL je v tomto prípade //api.github.com/repos/eugenp/tutorials.

Upozorňujeme, že nepomenované parametre sú založené na indexoch.

2.2. Parametre dopytu

Ďalej sa pozrime, ako môžeme určiť parametre dotazu pomocou queryParam ():

@ Test public void whenUseQueryParam_thenOK () {given (). QueryParam ("q", "john"). When (). Get ("/ search / users") .then (). StatusCode (200); given (). param ("q", "john"). when (). get ("/ search / users") .then (). statusCode (200); }

The param () metóda bude pôsobiť ako queryParam () s požiadavkami GET.

Na pridanie viacerých parametrov dotazu môžeme spojiť niekoľko queryParam () metódy alebo pridať parametre do a queryParams () metóda:

@Test public void whenUseMultipleQueryParam_thenOK () {int perPage = 20; given (). queryParam ("q", "john"). queryParam ("per_page", perPage) .when (). get ("/ search / users") .then (). body ("items.size () ", je (na stránku)); given (). queryParams ("q", "john", "per_page", perPage) .when (). get ("/ search / users") .then (). body ("items.size ()", je (na stránku)); }

2.3. Parametre formulára

Nakoniec môžeme určiť parametre formulára pomocou formParam ():

@Test public void whenUseFormParam_thenSuccess () {given (). FormParams ("username", "john", "password", "1234"). Post ("/"); given (). params ("používateľské meno", "john", "heslo", "1234"). príspevok ("/"); }

The param () metóda bude konať život formParam () pre požiadavky POST.

Všimnite si to tiež formParam () dodáva a Druh obsahu hlavička s hodnotou “application / x-www-form-urlencoded“.

3. Nastavenie hlavičiek

Ďalšie, môžeme prispôsobiť naše hlavičky požiadaviek pomocou hlavička ():

@ Test public void whenUseCustomHeader_thenOK () {given (). Header ("User-Agent", "MyAppName"). When (). Get ("/ users / eugenp") .then (). StatusCode (200); }

V tomto príklade sme použili hlavička () nastaviť User-Agent hlavička.

Rovnakou metódou môžeme pridať aj hlavičku s viacerými hodnotami:

@ Test public void whenUseMultipleHeaderValues_thenOK () {given (). Header ("My-Header", "val1", "val2") .when (). Get ("/ users / eugenp") .then (). StatusCode (200 ); }

V tomto príklade budeme mať požiadavku s dvoma hlavičkami: Moja hlavička: val1 a Moja hlavička: val2.

Na pridanie viacerých hlavičiek použijeme hlavičky () metóda:

@Test public void whenUseMultipleHeaders_thenOK () {given (). Header ("User-Agent", "MyAppName", "Accept-Charset", "utf-8") .when (). Get ("/ users / eugenp") .potom (). statusCode (200); }

4. Pridávanie cookies

Môžeme tiež určiť vlastný súbor cookie pre našu požiadavku pomocou cookie ():

@ Test public void whenUseCookie_thenOK () {given (). Cookie ("session_id", "1234"). When (). Get ("/ users / eugenp") .then (). StatusCode (200); }

Náš cookie môžeme tiež prispôsobiť pomocou cookie Staviteľ:

@Test public void whenUseCookieBuilder_thenOK () {Cookie myCookie = nový Cookie.Builder ("session_id", "1234") .setSecured (true) .setComment ("session id cookie") .build (); given (). cookie (myCookie) .when (). get ("/ users / eugenp") .then (). statusCode (200); }

5. Záver

V tomto článku sme si ukázali, ako môžeme určiť parametre požiadavky, hlavičky a súbory cookie pri použití zaistenia REST.

Celý zdrojový kód príkladov je ako vždy k dispozícii na GitHub.


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