什麼是適當的REST兼容方法,允許客戶調用RESTful服務以將(大)文檔轉換爲目標格式?對於文件轉換服務,什麼是有效的REST方法?
我想類似這樣的東西:
- 客戶端發出一個
POST
上/conversion/request
資源與轉換配置(目標類型,安全密鑰,通知資源URL形式http://host_to_be_notified/notification/status/id)將返回一個請求ID 。轉換請求將被添加到內部隊列中,只要轉換未開始,客戶端就可以修改/刪除轉換請求。 - 一旦轉換開始
/conversion/request/id
由服務器 - 一旦轉換完成後,服務器創建一個
/conversion/result/id
資源(同樣在1如上ID),那麼就在通知狀態資源PUT(設置它刪除,以「準備就緒」,並提供關鍵),這將通知其請求的完成客戶端 - 當準備好客戶端發出的
/conversion/result/id
資源GET
獲得轉換後的文檔 - 如果客戶因任何原因去下線,他可以嘗試檢索4中的結果。如果文檔沒有準備好,客戶端只需等待發送通知。
但是......
- 它是一個有效的方法?
- 我應該忘記使用REST,而應該考慮使用SOAP(並且有阻止調用,知道我寧願避免阻塞調用)或JMS(所有方法都有其優點/缺點,以及對JMS的一個重大缺點在我的上下文中,它需要爲可能被拒絕的所有客戶端設置隊列)(注意:這就是爲什麼我還爲此問題添加了「SOAP」和「JMS」標籤)
- 任何有關如何改進在進一步研究之前我應該考慮哪些問題?
在此先感謝您的幫助!
米歇爾
感謝您的回答。我的錯誤:我在考慮通知,而不是真正的回調。服務器試圖盡最大努力修改狀態,如果客戶端無法訪問,服務器沒有特殊要求。我想避免投票,因爲我寫的JMS可能不被接受(恕我直言,恕我直言,但我希望能夠提供一個可行的儘可能聰明的選擇)。我根據這個答案修改了我的帖子。 – Kraal