Índice
HttpBody(mensaje)
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.
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 sin métodos de streaming:
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. El resto de las funciones seguirán funcionando sin cambios.
| Campos | |
|---|---|
content_ |
El valor del encabezado HTTP Content-Type que especifica el tipo de contenido del cuerpo. |
data |
Cuerpo de la solicitud o de la respuesta HTTP como datos binarios sin procesar. |
extensions[] |
Metadatos de respuestas específicos de la aplicación. Debe definirse en la primera respuesta de las APIs de streaming. |