Í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.
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 |
La cadena del encabezado HTTP "Content-Type" que representa el tipo de contenido del cuerpo. |
data |
Datos binarios del cuerpo HTTP. |
extensions[] |
Metadatos de respuestas específicos de la aplicación. Debe definirse en la primera respuesta de las API de streaming. |