Package google.api

אינדקס

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

string

ערך הכותרת HTTP Content-Type שמציין את סוג התוכן של הגוף.

data

bytes

גוף הבקשה/התשובה של ה-HTTP כבינארי גולמי.

extensions[]

Any

מטא-נתונים של תגובות ספציפיות לאפליקציה. חובה להגדיר זאת בתגובה הראשונה לממשקי API לסטרימינג.