Indice
HttpBody
(messaggio)
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.
Campi | |
---|---|
content_type |
Il valore dell'intestazione Content-Type HTTP che specifica il tipo di contenuto del corpo. |
data |
Il corpo della richiesta/risposta HTTP come file binario non elaborato. |
extensions[] |
Metadati di risposta specifici dell'applicazione. Devono essere impostati nella prima risposta per le API in streaming. |