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.