Operation

Ten zasób reprezentuje długotrwałą operację, która jest wynikiem wywołania sieciowego interfejsu API.

Zapis 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.
}
Pola
name

string

Nazwa przypisana przez serwer, która jest unikalna tylko w obrębie tej samej usługi, która pierwotnie została zwrócona. Jeśli używasz domyślnego mapowania HTTP, pole name powinno być nazwą zasobu kończącą się na operations/{unique_id}.

metadata

object

Metadane specyficzne dla usługi powiązane z operacją. Zwykle zawiera on informacje o postępach i typowe metadane, takie jak czas utworzenia. Niektóre usługi mogą nie udostępniać takich metadanych. Każda metoda zwracająca długotrwałą operację powinna udokumentować typ metadanych, jeśli taki istnieje.

Obiekt zawierający pola dowolnego typu. Dodatkowe pole "@type" zawiera identyfikator URI identyfikujący typ. Przykład: { "id": 1234, "@type": "types.example.com/standard/id" }.

done

boolean

Jeśli wartość to false, oznacza to, że operacja jest nadal w toku. Jeśli true, operacja jest ukończona i dostępna jest wartość error lub response.

Pole sumy result. Wynik operacji, którym może być error lub prawidłowy response. Jeśli done == false, nie ustawiono error ani response. Jeśli done == true, można ustawić dokładnie jedną z tych wartości error lub response. Niektóre usługi mogą nie dawać oczekiwanych rezultatów. result może mieć tylko jedną z tych wartości:
error

object (Status)

Wynik błędu operacji w przypadku niepowodzenia lub anulowania.

response

object

Normalna, udana odpowiedź operacji. Jeśli pierwotna metoda nie zwróci żadnych danych o powodzeniu, np. Delete, odpowiedź będzie miała postać google.protobuf.Empty. Jeśli pierwotna metoda to standardowa metoda Get/Create/Update, odpowiedzią powinna być zasób. W przypadku innych metod odpowiedź powinna mieć typ XxxResponse, gdzie Xxx to pierwotna nazwa metody. Jeśli na przykład pierwotna nazwa metody to TakeSnapshot(), typ odpowiedzi to TakeSnapshotResponse.

Obiekt zawierający pola dowolnego typu. Dodatkowe pole "@type" zawiera identyfikator URI identyfikujący typ. Przykład: { "id": 1234, "@type": "types.example.com/standard/id" }.

Stan

Typ Status określa logiczny model błędów odpowiedni dla różnych środowisk programowania, w tym interfejsów API typu REST i RPC. Jest używany przez gRPC. Każdy komunikat Status zawiera 3 elementy danych: kod błędu, komunikat o błędzie i szczegóły błędu.

Więcej informacji na temat tego modelu błędów i sposobu jego działania znajdziesz w przewodniku API Design Guide (w języku angielskim).

Zapis JSON
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Pola
code

integer

Kod stanu, który powinien być wartością wyliczeniową równą google.rpc.Code.

message

string

komunikat o błędzie widoczny dla dewelopera. Powinien być w języku angielskim; Każdy komunikat o błędzie widoczny dla użytkowników powinien zostać zlokalizowany i wysłany w polu google.rpc.Status.details lub zlokalizowany przez klienta.

details[]

object

Lista komunikatów ze szczegółami błędu. Istnieje typowy zestaw typów wiadomości, których mogą używać interfejsy API.

Obiekt zawierający pola dowolnego typu. Dodatkowe pole "@type" zawiera identyfikator URI identyfikujący typ. Przykład: { "id": 1234, "@type": "types.example.com/standard/id" }.