雖然研究異步操作我碰到下面的設計模式運行基於REST的API:REST:HTTP 303是否被認爲對異步操作有害?
POST uri:longOperation
回報:
- HTTP 202
- 地點:URI:pendingOperation
GET uri:pendingOperation
回報:
- 如果正在運行操作
- 返回進度報告。
- 如果操作完成
- HTTP 303
- 位置:URI:operationResponse
GET uri:operationResponse
- 的非同步的響應ronous operation
我發現最後一步有問題。考慮一下如果異步操作完成時發生的錯誤代碼對HTTP GET
沒有意義,比如HTTP 409 ("Conflict")
。
- 是不是
HTTP 303
需要指向與URI相關聯的應答:pendingOperation,而不是URI:operationResponse? - 正在使用
HTTP 303
這樣認爲有害嗎?如果不是,爲什麼? - 這是我們能做的最好的,還是有更好的方法?