我需要構(gòu)建一個(gè)/search允許某人發(fā)送 POST 的 API,并檢索一個(gè)稍后可以通過(guò)單獨(dú)的/resultsAPI 查詢(xún)的 ID。我看過(guò) Spring 方法:DeferredResult
@Async但似乎都沒(méi)有證明從搜索中返回 ID。我需要一個(gè)可以記住 ID 并在有人調(diào)用 API 檢索/results特定搜索結(jié)果時(shí)引用它的系統(tǒng)。是否有 Spring 應(yīng)用程序執(zhí)行此操作的示例
1 回答

翻翻過(guò)去那場(chǎng)雪
TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊
您必須記住 Restful 服務(wù)是無(wú)狀態(tài)的,因此將搜索結(jié)果狀態(tài)保存在服務(wù)器中并不是一個(gè)好習(xí)慣。
一種解決方案是將搜索狀態(tài)存儲(chǔ)在數(shù)據(jù)庫(kù) (SQL/NoSQL) 上,并使用Spring Cache支持來(lái)縮短響應(yīng)時(shí)間。
當(dāng)用戶(hù)使用 請(qǐng)求新搜索時(shí)/search
,您必須在服務(wù)器上生成 ID,準(zhǔn)備結(jié)果并將其保存在數(shù)據(jù)庫(kù)中,然后將新 ID 發(fā)送到客戶(hù)端。稍后客戶(hù)端必須使用請(qǐng)求其結(jié)果/results/{searchId}
。
添加回答
舉報(bào)
0/150
提交
取消