Operation

يمثّل هذا المورد عملية طويلة الأمد ناتجة عن طلب بيانات من واجهة برمجة التطبيقات للشبكة.

تمثيل 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 وواجهات RPC API. وتستخدمه gRPC. تحتوي كل رسالة في Status على ثلاثة أجزاء من البيانات: رمز الخطأ، ورسالة الخطأ، وتفاصيل الخطأ.

يمكنك الاطّلاع على المزيد من المعلومات حول نموذج الخطأ هذا وكيفية استخدامه في دليل تصميم واجهة برمجة التطبيقات.

تمثيل JSON
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
الحقول
code

integer

رمز الحالة الذي يجب أن يكون قيمة تعداد google.rpc.Code.

message

string

تظهر رسالة خطأ لمطوّر البرامج باللغة الإنجليزية. يجب ترجمة أي رسالة خطأ مواجهة للمستخدم وإرسالها في الحقل google.rpc.Status.details، أو ترجمتها من قِبل البرنامج.

details[]

object

قائمة بالرسائل التي تحتوي على تفاصيل الخطأ. هناك مجموعة شائعة من أنواع الرسائل التي يمكن استخدامها في واجهات برمجة التطبيقات.

عنصر يحتوي على حقول من نوع عشوائي. يحتوي الحقل الإضافي "@type" على معرف موارد منتظم (URI) يحدد النوع. مثال: { "id": 1234, "@type": "types.example.com/standard/id" }.