簡體   English   中英

RESTful API - 批量操作的分塊響應

[英]RESTful API - chunked response for bulk operation

我正在研究類似REST的API,它將支持某些資源上的批量操作。 由於完成此類請求可能需要一些時間,因此我希望在分塊響應中返回操作的狀態。 媒體類型應為JSON。 如何使用JAX-RS?

(我知道有StreamingOutput,但它需要手動序列化數據。)

Chunked Transfer編碼通常用於發件人開始傳輸數據時內容長度未知的情況。 接收器可以處理每個塊,而服務器仍在生成新的塊。 這意味着服務器正在發送整個時間。 我不認為發送I'm still working|I'm still working|I'm still working|太有意義了I'm still working|I'm still working|I'm still working| 在塊中,據我所知,大多數應用服務器透明地處理分塊傳輸編碼。 當響應大於特定大小時,它們會自動切換。

用例的常見模式如下所示:

客戶端觸發批量操作:

POST /batch-jobs HTTP/1.1

服務器創建描述作業狀態的資源,並在Location頭中返回URI:

HTTP/1.1 202 Accepted
Location: /batch-jobs/stats/4711

客戶端檢查此資源並收到200:

GET /batch-jobs/stats/4711 HTTP/1.1

此示例使用JSON,但您也可以返回純文本或添加緩存標頭,告訴客戶端他應該等待下一輪詢的時間。

HTTP/1.1 200 OK
Content-Type: application/json

{ "status" : "running", "nextAttempt" : "3000ms" }

如果作業完成,服務器應回答303和他創建的資源的URI:

HTTP/1.1 303 See other
Location: /batch-jobs/4711

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM