[英]Data transport optimization with Google cloud endpoints
我正在通過Google Cloud端點從Google App Engine(java)向JavaScript發送List<Item>
。
Item
:
public class Item implements Serializable {
private String item1;
private Integer item2;
private String item3;
//(...) item (4-39)
private String item40;
//Constructor, Getters, setters, +functions
}
在javascript中,我收到的數據具有以下每個項目的結構:
{item1:"v1",item2:"v2"}
同樣在每個對象的末尾,我收到很多我不明白為什么發送的數據。
'?' 數據不是我定義的功能。 我認為這是可序列化的對象函數,但是我不明白為什么發送。
我需要以以下格式發送數據: {"v1","v2"}
而不是{item1:"v1",item2:"v2", a lot of functions}
以減少數據大小。
我認為可以解決在Java的List<String>
中發送數據的問題。
但這有點復雜和“丑陋”,因為例如Item
對象的某些屬性是結構化對象。
谷歌雲端點中有沒有描述這種方式發送數據的方法?
有什么方法可以設置端點僅發送“必需的”數據?
首先,我說這不是一個好主意,但是您可以使用轉換器控制對象的序列化方式。 但是,如果使用生成的客戶端庫,則將丟失所有信息-它們只會將事物視為字符串列表。 端點應自動為您壓縮內容,這將有助於節省大量帶寬。 您應該比較兩個完整的5000列表,並准確地節省多少帶寬。 請記住,端點也不會傳輸空屬性,因此,如果未同時設置許多屬性,則會自動節省帶寬。
有關如何使用變壓器的詳細信息,請參見此頁面 。 基本上,您需要一個class ItemTransformer implements Transformer<Item, List<String>>
帶有相關注釋的class ItemTransformer implements Transformer<Item, List<String>>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.