第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

REST - 下載用戶列表

REST - 下載用戶列表

慕容3067478 2021-10-28 10:00:57
語境:我想編寫一個(gè)端點(diǎn),它將Collection根據(jù)用戶名返回一個(gè)用戶。這些用戶名應(yīng)該如何傳遞到 REST 端點(diǎn) -請注意,我可以(可能)有很多用戶名(比如 > 5000)?解決方案#1:使用GET端點(diǎn),連接客戶端的用戶名并將它們作為單個(gè)請求參數(shù)傳遞。在服務(wù)器端拆分請求參數(shù)以獲取用戶名列表。@RestControllerpublic class UserController {     @GetMapping    // able to deserialize `filename1,filename2` to List out of the box    public Collection<User> getUser(@RequestParam List<String> usernames) {        return userService.getUsersByUsername(usernames);    }}解決方案#2:使用POST端點(diǎn)并將用戶名列表作為請求正文傳遞。雖然從編碼的角度來看更清晰,但我最終使用 aPOST來獲取數(shù)據(jù)。@RestControllerpublic class UserController {     @PostMapping    public Collection<User> getUser(@RequestBody List<String> usernames) {        return userService.getUsersByUsername(usernames);    }}問題:這兩種解決方案中的哪一種是更好的方法?您是否有更好的方法將用戶名列表傳遞到端點(diǎn)?編輯:我已經(jīng)根據(jù)答案中的建議更新了第一個(gè)解決方案的簽名。春天是能夠反序列化filename1,filename2,列出對框@RequestParam。
查看完整描述

3 回答

?
慕田峪9158850

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超7個(gè)贊

POST 在這種情況下看起來更干凈,因?yàn)?-

  1. 在 URL 中發(fā)送一個(gè)巨大的字符串不是一個(gè)好主意,并且存在錯(cuò)誤的余地

  2. 您需要編寫額外的代碼(邏輯)來在前端創(chuàng)建字符串并在后端拆分它。

  3. 在 URL 中發(fā)送一個(gè)巨大的字符串是不可擴(kuò)展的,因?yàn)?URL 的長度是有限制的。


查看完整回答
反對 回復(fù) 2021-10-28
?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊

我同意上面給出的所有答案。我想再指定一點(diǎn),如果您要發(fā)布請求,則可能必須增加服務(wù)器可以接收的有效負(fù)載容量,spring boot 的默認(rèn)發(fā)布容量(最大字節(jié)數(shù))為 2mb(基于您的服務(wù)器) )。雖然測試您的代碼可能適用于 1000-2000 個(gè)用戶名,但請確保更改該屬性以接受請求中的更多字節(jié)。


查看完整回答
反對 回復(fù) 2021-10-28
  • 3 回答
  • 0 關(guān)注
  • 117 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號