כותרות, עוגיות ופרמטרים עם REST מובטח

1. סקירה כללית

במדריך מהיר זה, נחקור כמה תרחישים מתקדמים המובטחים על ידי REST. בדקנו REST- מובטח לפני כן במדריך מדריך למנוחות REST.

להמשיך, נסקור דוגמאות המראות כיצד להגדיר כותרות, קובץ cookie ופרמטרים לבקשותינו.

ההתקנה זהה למאמר הקודם, אז בואו נצלול לדוגמאות שלנו.

2. הגדרת פרמטרים

כעת, בואו נדון כיצד לציין פרמטרים שונים לבקשתנו - החל בפרמטרים של נתיב.

2.1. פרמטרים של נתיב

אנחנו יכולים להשתמש pathParam (שם פרמטר, ערך) כדי לציין פרמטר נתיב:

@ מבחן ציבורי בטל כאשר UsPathParam_thenOK () {נתון (). PathParam ("משתמש", "eugenp"). כאשר (). קבל ("/ משתמשים / {משתמש} / repos"). ואז (). StatusCode (200); }

כדי להוסיף מספר פרמטרים של נתיב נשתמש ב- pathParams () שיטה:

@ מבחן ציבורי בטל כאשר UseMultiplePathParam_thenOK () {נתון (). PathParams ("בעל", "eugenp", "repo", "מדריכים"). כאשר (). קבל ("/ repos / {owner} / {repo}") .then (). statusCode (200); given (). pathParams ("owner", "eugenp"). when (). get ("/ repos / {owner} / {repo}", "tutorials") .then (). statusCode (200); }

בדוגמה זו השתמשנו בפרמטרים של נתיב בשם, אך אנו יכולים גם להוסיף פרמטרים ללא שם, ואפילו לשלב בין השניים:

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

כתובת האתר המתקבלת, במקרה זה, היא //api.github.com/repos/eugenp/tutorials.

שים לב שהפרמטרים ללא שם הם מבוססי אינדקס.

2.2. פרמטרי שאילתה

לאחר מכן, בואו נראה כיצד אנו יכולים לציין פרמטרים של שאילתה באמצעות queryParam ():

@ מבחן פומבי בטל כאשר UsQueryParam_thenOK () {נתון (). QueryParam ("q", "john"). כאשר (). Get ("/ search / משתמשים") .then (). StatusCode (200); נתון (). param ("q", "john"). כאשר (). get ("/ search / users") .then (). statusCode (200); }

ה param () השיטה תתנהג כמו queryParam () עם בקשות GET.

להוספת מספר פרמטרים של שאילתה, נוכל לשרשר כמה queryParam () שיטות, או הוסף את הפרמטרים ל- a queryParams () שיטה:

@ מבחן ציבורי בטל כאשר UsMultipleQueryParam_thenOK () {int perPage = 20; given (). queryParam ("q", "john"). queryParam ("per_page", perPage). when (). get ("/ search / users") .then (). body ("items.size () ", הוא (perPage)); given (). queryParams ("q", "john", "per_page", perPage). when (). get ("/ search / users"). then (). body ("items.size ()", is (perPage)); }

2.3. פרמטרים של טופס

לבסוף, אנו יכולים לציין פרמטרים של טופס באמצעות formParam ():

@ מבחן ציבורי בטל כאשר UseformParam_thenSuccess () {נתון (). FormParams ("שם משתמש", "ג'ון", "סיסמה", "1234"). פוסט ("/"); נתון (). params ("שם משתמש", "ג'ון", "סיסמה", "1234"). פוסט ("/"); }

ה param () השיטה תפעל בחיים formParam () לבקשות POST.

שימו לב גם לכך formParam () מוסיף א סוג תוכן כותרת עם הערך “יישום / x-www-form-urlencoded“.

3. הגדרת כותרות

הַבָּא, אנו יכולים להתאים אישית את כותרות הבקשה באמצעות כּוֹתֶרֶת():

@ מבחן ציבורי בטל כאשר UsCustomHeader_thenOK () {נתון (). כותרת ("User-Agent", "MyAppName"). כאשר (). Get ("/ users / eugenp") .then (). StatusCode (200); }

בדוגמה זו השתמשנו כּוֹתֶרֶת() להגדיר את סוכן משתמש כּוֹתֶרֶת.

אנו יכולים להוסיף כותרת עם מספר ערכים באותה שיטה:

@ מבחן ציבורי בטל כאשר UsMultipleHeaderValues_thenOK () {נתון (). כותרת ("הכותרת שלי", "val1", "val2"). כאשר (). קבל ("/ משתמשים / eugenp"). ואז (). StatusCode (200 ); }

בדוגמה זו תהיה לנו בקשה עם שני כותרות: הכותרת שלי: val1 ו הכותרת שלי: val2.

להוספת כותרות מרובות נשתמש ב- כותרות () שיטה:

@ מבחן ציבורי בטל כאשר UsMultipleHeaders_thenOK () {נתון (). כותרת ("User-Agent", "MyAppName", "Accept-Charset", "utf-8"). When (). Get ("/ users / eugenp") .then (). statusCode (200); }

4. הוספת עוגיות

אנו יכולים גם לציין קובץ cookie מותאם אישית לבקשתנו באמצעות עוגייה():

@ מבחן ציבורי בטל כאשר UsCookie_thenOK () {נתון (). קובץ cookie ("session_id", "1234"). מתי (). קבל ("/ משתמשים / eugenp"). ואז (). StatusCode (200); }

אנו יכולים גם להתאים אישית את העוגיה שלנו באמצעות קובץ cookie בּוֹנֶה:

@ מבחן ציבורי בטל כאשר UsCookieBuilder_thenOK () {Cookie myCookie = Cookie.Builder חדש ("session_id", "1234"). SetSecured (נכון). SetComment ("cookie מזהה מושב"). בניין (); נתון (). קובץ cookie (myCookie). When (). קבל ("/ משתמשים / eugenp") .then (). statusCode (200); }

5. מסקנה

במאמר זה, הראינו כיצד אנו יכולים לציין פרמטרים של בקשות, כותרות ועוגיות בעת שימוש ב- REST.

וכמו תמיד, קוד המקור המלא של הדוגמאות זמין ב- GitHub.