Índice
HttpBody
(mensagem)
HttpBody
É a mensagem que representa um corpo HTTP arbitrário. Use-a somente para formatos de payload que não podem ser representados como JSON, por exemplo, binário bruto ou uma página HTML.
É possível usar essa mensagem em métodos de API de streaming e não streaming na solicitação e na resposta.
Ela pode ser usada como um campo de solicitação de nível superior, o que será conveniente se você quiser extrair parâmetros do modelo de URL ou HTTP para os campos da solicitação e também quiser acessar o corpo HTTP bruto.
Exemplo:
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);
}
Exemplo com 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);
}
O uso desse tipo altera somente o modo como os corpos de solicitação e resposta são tratados. Todos os outros recursos continuarão a funcionar sem alteração.
Campos | |
---|---|
content_type |
O valor do cabeçalho HTTP Content-Type que especifica o tipo de conteúdo do corpo. |
data |
O corpo da solicitação/resposta HTTP como binário bruto. |
extensions[] |
Metadados de resposta específicos do aplicativo. Precisam ser definidos na primeira resposta para APIs de streaming. |