HttpBody

Messaggio che rappresenta un corpo HTTP arbitrario. Deve essere utilizzato solo per i formati di payload che non possono essere rappresentati come JSON, ad esempio un programma binario raw o una pagina HTML.

Questo messaggio può essere utilizzato nei metodi API in streaming e non in streaming, sia nella richiesta sia nella risposta.

Può essere utilizzato come campo di richiesta di livello superiore, il che è utile se si vogliono estrarre dei parametri dall'URL o dal modello HTTP per i campi della richiesta e si vuole anche l'accesso al corpo HTTP raw.

Esempio:

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);
}

Esempio con metodi in streaming:

service CaldavService {
  rpc GetCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);
  rpc UpdateCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);
}

L'utilizzo di questo tipo modifica solo il modo in cui vengono gestiti i corpi di richiesta e risposta; tutte le altre funzionalità continueranno a funzionare in modo invariato.

Rappresentazione JSON
{
  "contentType": string,
  "data": string,
  "extensions": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Campi
contentType

string

Il valore dell'intestazione Content-Type HTTP che specifica il tipo di contenuto del corpo.

data

string (bytes format)

Il corpo della richiesta/risposta HTTP come file binario non elaborato.

Una stringa con codifica base64.

extensions[]

object

Metadati di risposta specifici dell'applicazione. Devono essere impostati nella prima risposta per le API in streaming.

Un oggetto che contiene campi di tipo arbitrario. Un campo aggiuntivo "@type" contiene un URI che identifica il tipo. Esempio: { "id": 1234, "@type": "types.example.com/standard/id" }.