Paquete google.api

Índice

HttpBody

Se trata de un mensaje que representa un cuerpo HTTP arbitrario. Solo debe usarse en formatos de carga útil que no se pueden representar como JSON; por ejemplo, archivos binarios sin procesar o páginas HTML.

Este mensaje se puede usar tanto en los métodos de la API en streaming como en los que no lo son, y se puede incluir en la solicitud y en la respuesta.

También puede incluirse en las solicitudes como campo de nivel superior, lo que puede resultar útil si se quieren extraer parámetros de la URL o la plantilla HTTP para rellenar campos de la solicitud y, además, se quiere acceder al cuerpo HTTP sin procesar.

Ejemplo:

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

Ejemplo con métodos de 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);
}

Al utilizar este tipo, solo cambia la forma en la que se gestionan los cuerpos de las solicitudes y las respuestas; no hay cambios en las demás funciones.

Campos
content_type

string

La cadena del encabezado HTTP "Content-Type" que representa el tipo de contenido del cuerpo.

data

bytes

Datos binarios del cuerpo HTTP.

extensions[]

Any

Metadatos de respuestas específicos de la aplicación. Debe definirse en la primera respuesta de las API de streaming.