במסמך הזה מפורטות כמה שיטות שיכולות לעזור לכם לשפר את הביצועים של את האפליקציה שלך. במקרים מסוימים נעשה שימוש בדוגמאות מממשקי API אחרים שהוטמעו. כדי להמחיש את הרעיונות שמוצגים. עם זאת, אותם המושגים רלוונטיים לרשת המדיה Video 360 API
עבודה עם משאבים חלקיים
דרך נוספת לשפר את ביצועי הקריאות ל-API היא לבקש החלק של הנתונים הרצויים. כך האפליקציה מאפשרת להימנע מהעברה, ניתוח ואחסון של שדות שאינם נחוצים, כדי להשתמש כמו רשת, מעבד (CPU) וזיכרון, בצורה יעילה יותר.
תשובה חלקית
כברירת מחדל, השרת שולח חזרה ייצוג מלא של משאב לאחר בתהליך עיבוד בקשות. לביצועים טובים יותר, אפשר לבקש מהשרת לשלוח רק את השדות שנחוצים לכם בפועל ולקבל תשובה חלקית במקום.
כדי לבקש תשובה חלקית, צריך להשתמש בפרמטר הבקשה fields
כדי לציין
בשדות שרוצים שיחזרו. אפשר להשתמש בפרמטר הזה בכל בקשה
שמחזירה נתוני תגובה.
דוגמה
בדוגמה הבאה מוצג השימוש בפרמטר fields
עם
תצוגה ו Video 360 API
בקשה פשוטה: בקשת ה-HTTP הזו מסוג GET
משמיטה את הפרמטר fields
ו
מחזירה את המשאב המלא.
GET https://displayvideo.googleapis.com/v3/advertisers?partnerId=1
תגובה מלאה למקור המידע: נתוני המשאבים המלאים כוללים את הפרטים הבאים לצד שדות רבים אחרים שהושמטו עקב קוצר.
200 OK
{
"advertisers": [
{
"name": "advertisers/1",
"advertiserId": "1",
"partnerId": "1",
"displayName": "Example Advertiser 1",
"entityStatus": "ENTITY_STATUS_ACTIVE",
"updateTime": "2019-01-01T00:00:00.000000Z",
"generalConfig": {
"domainUrl": "http://example.com",
"timeZone": "America/New_York",
"currencyCode": "USD",
"address": {
}
},
"adServerConfig": {
"thirdPartyOnlyConfig": {
}
},
"creativeConfig": {
},
"dataAccessConfig": {
"sdfConfig": {
"sdfConfig": {
"version": "VERSION_3_1"
}
}
},
"integrationDetails": {
}
},
{
"name": "advertisers/2",
"advertiserId": "2",
"partnerId": "1",
"displayName": "Example Advertiser 2",
"entityStatus": "ENTITY_STATUS_ACTIVE",
"updateTime": "2019-01-01T00:00:00.000000Z",
"generalConfig": {
"domainUrl": "http://example.com",
"timeZone": "America/New_York",
"currencyCode": "USD",
"address": {
}
},
"adServerConfig": {
"thirdPartyOnlyConfig": {
}
},
"creativeConfig": {
},
"dataAccessConfig": {
"sdfConfig": {
"sdfConfig": {
"version": "VERSION_3_1"
}
}
},
"integrationDetails": {
}
},
...
],
"nextPageToken": "..."
}
בקשה לתשובה חלקית: הבקשה הבאה לאותו משאב
משתמש בפרמטר fields
כדי לצמצם באופן משמעותי את כמות הנתונים שמוחזרים.
GET https://displayvideo.googleapis.com/v3/advertisers?partnerId=1&fields=advertisers(advertiserId,partnerId,displayName)
תגובה חלקית: בתגובה לבקשה שלמעלה, השרת שולח חזרה תשובה שמכילה מערך מפרסמים מצומצם שכולל רק את מזהה המפרסם, השם המוצג ומזהה השותף של כל מפרסם, אם כיום.
200 OK
{
"advertisers": [
{
"advertiserId": "1",
"partnerId": "1",
"displayName": "Example Advertiser 1"
},
{
"advertiserId": "2",
"partnerId": "1",
"displayName": "Example Advertiser 2"
},
...
]
}
חשוב לשים לב שהתגובה היא אובייקט JSON שכולל רק את השדות שנבחרו ואת האובייקטים המצורפים של ההורה.
בשלב הבא מופיעים פרטים על הפורמט של הפרמטר fields
, ואחריו
פרטים נוספים על המידע המדויק שמוחזר בתשובה.
סיכום התחביר של הפרמטרים של השדות
הפורמט של ערך הפרמטר של הבקשה fields
מבוסס באופן חלש על XPath
תחביר. מידע לגבי התחביר הנתמך מופיע בהמשך, ודוגמאות נוספות
שמפורטות בקטע הבא.
משתמשים ברשימה שמופרדת בפסיקים כדי לבחור כמה שדות.
אפשר להשתמש ב-
a/b
כדי לבחור שדהb
שנמצא בתוך השדהa
; להשתמש ב-a/b/c
כדי לבחור שדהc
שמוצב בתוךb
.להשתמש בבורר משנה כדי לבקש קבוצה של שדות משנה ספציפיים של מערכים או אובייקטים על ידי הוספת ביטויים בסוגריים "
( )
".לדוגמה:
fields=advertisers(advertiserId,generalConfig/domainUrl)
מחזירה רק את מזהה המפרסם ואת כתובת ה-URL של הדומיין עבור כל רכיב מערך המפרסמים. אפשר גם לציין שדה משנה אחד, שבו הערךfields=advertisers(advertiserId)
זהה ל-fields=advertisers/advertiserId
.
דוגמאות נוספות לשימוש בפרמטר של השדות
הדוגמאות הבאות כוללות תיאורים של האופן שבו ערך הפרמטר fields
משפיעה על התגובה.
- מזהים את השדות שרוצים להחזיר, או בוחרים את השדות שנבחרו.
ערך הפרמטר של הבקשה
fields
הוא רשימת שדות שמופרדת בפסיקים, כל שדה מצוין ביחס לשורש התגובה. לכן, אם מבצעים פעולתlist
, התגובה היא אוסף, כוללת באופן כללי מערך של משאבים. אם אתם מבצעים פעולה שמחזירה משאב יחיד, מצוינים שדות ביחס משאב. אם השדה שבחרת הוא (או חלק מ) מערך, השרת מחזירה את החלק הנבחר מתוך כל הרכיבים במערך.הנה כמה דוגמאות ברמת האוסף:
דוגמה השפעה advertisers
החזרת כל הרכיבים ב- מערך advertisers
, כולל את כל השדות בכל רכיב, אבל אין שדות אחרים.advertisers,nextPageToken
הפונקציה מחזירה את גם המאפיין nextPageToken
וכל הרכיבים מערךadvertisers
.advertisers/advertiserId
הפונקציה מחזירה רק את הערך advertiserId
לכל הרכיבים מערךadvertisers
.
בכל פעם ששדה מקונן מוחזרת, התשובה כוללת את האובייקטים של ההורה המצורף. שדות ההורה לא כוללים שדות צאצא אחרים, אלא אם גם הם נבחרו במפורש.advertisers/generalConfig/domainUrl
פונקציה זו מחזירה את השדה domainUrl
לאובייקטgeneralConfig
, והוא עצמו מקונן מתחת מערךadvertisers
.ריכזנו כאן כמה דוגמאות ברמת המשאב:
דוגמה השפעה advertiserId
פונקציה זו מחזירה את השדה advertiserId
של המשאב המבוקש.generalConfig/domainUrl
פונקציה זו מחזירה את השדה domainUrl
לאובייקטgeneralConfig
במשאב המבוקש.- ניתן לבקש רק חלקים משדות ספציפיים באמצעות בחירות משנה.
כברירת מחדל, אם הבקשה מציינת שדות מסוימים, השרת מחזיר את האובייקטים או את רכיבי המערך בשלמותם. אפשר לציין את התשובה שכולל רק שדות משנה מסוימים. הפעולה הזו מתבצעת באמצעות '
( )
' של בחירת המשנה, כמו בדוגמה הבאה.דוגמה השפעה advertisers(advertiserId,generalConfig/domainUrl)
הפונקציה מחזירה רק את ערכים של advertiserId
ו-GeneralConfigdomainUrl
עבור כל רכיב ב-advertisers
מערך.
טיפול בתשובות חלקיות
אחרי שהשרת מעבד בקשה תקינה שכוללת את השאילתה fields
הוא שולח חזרה את קוד הסטטוס 200 OK
של HTTP, יחד עם הבקשה
. אם בפרמטר השאילתה fields
יש שגיאה או שהוא לא תקין מסיבה אחרת,
השרת מחזיר את קוד הסטטוס 400 Bad Request
של HTTP, יחד עם הודעת השגיאה
שאומרת מה הבעיה בבחירת השדות (לדוגמה,
"Invalid field selection a/b"
).