Operation

המשאב הזה מייצג פעולה ממושכת שנוצרת כתוצאה מקריאה ל-API של רשת.

ייצוג JSON
{
  "name": string,
  "metadata": {
    "@type": string,
    field1: ...,
    ...
  },
  "done": boolean,

  // Union field result can be only one of the following:
  "error": {
    object (Status)
  },
  "response": {
    "@type": string,
    field1: ...,
    ...
  }
  // End of list of possible types for union field result.
}
שדות
name

string

השם שהוקצה על ידי השרת, שהוא ייחודי רק בתוך אותו שירות שמחזיר אותו במקור. אם משתמשים במיפוי ברירת המחדל של HTTP, name צריך להיות שם משאב שמסתיים ב-operations/{unique_id}.

metadata

object

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

אובייקט שמכיל שדות מסוג שרירותי. שדה נוסף "@type" מכיל URI המזהה את הסוג. לדוגמה: { "id": 1234, "@type": "types.example.com/standard/id" }.

done

boolean

אם הערך הוא false, המשמעות היא שהפעולה עדיין מתבצעת. אם הערך true, הפעולה הושלמה ואפשר להציג רק את error או response.

שדה איחוד result. תוצאת הפעולה, שיכולה להיות error או response חוקית. אם done == false, לא הוגדרו error או response. אם done == true, אפשר להגדיר רק אחד מהערכים error או response. יכול להיות ששירותים מסוימים לא יספקו את התוצאה. result יכול להיות רק אחד מהבאים:
error

object (Status)

תוצאת השגיאה של הפעולה במקרה של כישלון או ביטול.

response

object

התגובה הרגילה והמוצלחת של הפעולה. אם השיטה המקורית לא מחזירה נתונים על הצלחה, כמו Delete, התגובה היא google.protobuf.Empty. אם השיטה המקורית היא רגילה Get/Create/Update, התשובה צריכה להיות המשאב. בשיטות אחרות, התשובה צריכה להיות מסוג XxxResponse, כאשר Xxx הוא שם השיטה המקורי. לדוגמה, אם שם השיטה המקורי הוא TakeSnapshot(), סוג התשובה המשוער הוא TakeSnapshotResponse.

אובייקט שמכיל שדות מסוג שרירותי. שדה נוסף "@type" מכיל URI המזהה את הסוג. לדוגמה: { "id": 1234, "@type": "types.example.com/standard/id" }.

סטטוס

בסוג Status מוגדר מודל שגיאה לוגית שמתאים לסביבות תכנות שונות, כולל ממשקי REST API ו-RPC API. הפרמטר הזה משמש את gRPC. כל הודעת Status מכילה שלושה נתונים: קוד שגיאה, הודעת שגיאה ופרטי שגיאה.

במדריך לעיצוב API מפורט מידע נוסף על מודל השגיאה הזה והסבר איך להשתמש בו.

ייצוג JSON
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
שדות
code

integer

קוד הסטטוס, שצריך להיות ערך 'טיפוסים בני מנייה (enum)' של google.rpc.Code.

message

string

הודעת שגיאה למפתחים, שאמורה להיות באנגלית. כל הודעת שגיאה שמוצגת למשתמש צריכה לעבור לוקליזציה ולשלוח בשדה google.rpc.Status.details, או להתאים אותן לשוק המקומי על ידי הלקוח.

details[]

object

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

אובייקט שמכיל שדות מסוג שרירותי. שדה נוסף "@type" מכיל URI המזהה את הסוג. לדוגמה: { "id": 1234, "@type": "types.example.com/standard/id" }.