אינדקס
HttpBody
(מֶסֶר)
HttpBody
הודעה שמייצגת גוף HTTP שרירותי. יש להשתמש בו רק בפורמטים של מטען ייעודי (payload) שלא ניתן לייצג בפורמט JSON, כמו קובץ בינארי גולמי או דף HTML.
אפשר להשתמש בהודעה הזו גם בשיטות API של סטרימינג וגם בשיטות שאינן סטרימינג במסגרת הבקשה, וגם בתגובה.
ניתן להשתמש בו כשדה בקשה ברמה העליונה, וזה נוח אם רוצים לחלץ פרמטרים מכתובת ה-URL או מתבנית ה-HTTP לתוך שדות הבקשה וגם רוצים גישה לגוף ה-HTTP הגולמי.
דוגמה:
message GetResourceRequest {
// A unique request id.
string request_id = 1;
// The raw HTTP body is bound to this field.
google.api.HttpBody http_body = 2;
}
service ResourceService {
rpc GetResource(GetResourceRequest)
returns (google.api.HttpBody);
rpc UpdateResource(google.api.HttpBody)
returns (google.protobuf.Empty);
}
דוגמה לשיטות סטרימינג:
service CaldavService {
rpc GetCalendar(stream google.api.HttpBody)
returns (stream google.api.HttpBody);
rpc UpdateCalendar(stream google.api.HttpBody)
returns (stream google.api.HttpBody);
}
שימוש מהסוג הזה משנה רק את אופן הטיפול בבקשות ובגוף התגובה, וכל שאר התכונות ימשיכו לפעול ללא שינוי.
שדות | |
---|---|
content_type |
ערך הכותרת HTTP Content-Type שמציין את סוג התוכן של הגוף. |
data |
גוף הבקשה/התשובה של ה-HTTP כבינארי גולמי. |
extensions[] |
מטא-נתונים של תגובות ספציפיות לאפליקציה. חובה להגדיר זאת בתגובה הראשונה לממשקי API לסטרימינג. |