Indeks
HttpBody
(komunikat)
HttpBody
Komunikat dotyczący dowolnej treści HTTP. Powinien być używany wyłącznie w przypadku formatów ładunku, których nie da się zapisać jako JSON, takich jak pliki binarne RAW lub strony HTML.
Komunikat może być używany w żądaniu oraz w odpowiedzi zarówno w strumieniowych, jak i niestrumieniowych metodach API.
Może służyć jako pole żądania najwyższego poziomu, co jest wygodne, gdy chcesz wyodrębnić parametry z szablonu URL lub HTTP i użyć ich w polach żądania oraz gdy potrzebujesz dostępu do treści HTTP w formacie RAW.
Przykład
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);
}
Przykład z metodami strumieniowymi:
service CaldavService {
rpc GetCalendar(stream google.api.HttpBody)
returns (stream google.api.HttpBody);
rpc UpdateCalendar(stream google.api.HttpBody)
returns (stream google.api.HttpBody);
}
Użycie tego typu treści zmienia tylko sposób obsługi treści żądania i odpowiedzi – pozostałe funkcje działają bez zmian.
Pola | |
---|---|
content_type |
Wartość nagłówka HTTP Content-Type określająca typ treści treści. |
data |
Treść żądania/odpowiedzi HTTP w postaci nieprzetworzonego pliku binarnego. |
extensions[] |
Metadane odpowiedzi aplikacji. W przypadku strumieniowych interfejsów API muszą być przesłane w pierwszej odpowiedzi. |