2016-02-29 38 views
0

我有一個可以返回日誌數據的服務。基本上,API是類似logs?from=1/1/15,結果是從給定日期的所有日誌行。REST:關於日誌數據格式的建議

問題是,這可能是巨大的數據。假設客戶端可以下載它,如果它在xml/json中,那麼解析它到DOM將需要大量的內存或崩潰客戶端。使用SAX或pull解析器需要客戶端提供大量非平凡的代碼。

最簡單的方法是將每個日誌行都作爲json行而不換行,然後客戶端可以通過換行符打破輸入,甚至在接收數據時執行該操作。

這是一種標準的做事方式嗎?這裏的MIME類型是什麼?

+0

怎樣發送壓縮數據? – dit

+0

這不會幫助客戶端解析 – IttayD

+1

爲什麼不發送日誌行?爲什麼用JSON或XML對它們進行編碼?任何理解日誌文件的客戶端都可以逐行處理它們。 – 2016-02-29 21:13:50

回答

1

我認爲這是分頁的好例子。您擁有一組資源(日誌行),並且您需要一部分資源。讓他們指定一個偏移量和一個限制,然後以任何你想要支持的格式(json,csv,whatever)給它們許多行。這將使客戶能夠靈活地採集儘可能多的數據,因爲它們處理起來很舒服,並且可以讓您將線路劃分爲合理的屬性(日期,消息等)。

我會非常依賴JSON內的換行符來定位記錄邊界。空白明確地不是以這種方式使用。

MIME類型取決於您。如果是JSON,那麼application/jsonapplication/vnd.whatever+json

+0

分頁會創建更多的網絡電話。 – IttayD

+0

@IttayD是的,它會的。 –