|
今天是劉小愛自學(xué)Java的第169天。 感謝你的觀看,謝謝你。 學(xué)習(xí)計(jì)劃安排如下:
一、搜索頁面發(fā)送請(qǐng)求使用axios發(fā)送請(qǐng)求,當(dāng)然為了后續(xù)方便,axios被封裝到了自定義的common組件中。 所以后續(xù)需要發(fā)送請(qǐng)求時(shí),直接使用ly.http即能發(fā)送請(qǐng)求,就等價(jià)于使用axios一樣。 自定義組件中配置了axios的基礎(chǔ)請(qǐng)求路徑baseURL,所以請(qǐng)求的完整路徑是baseURL加上post方法中編寫的請(qǐng)求路徑。 其中存在有一個(gè)跨域問題,目前來說我們一共定義了4個(gè)域名:
當(dāng)然這些域名目前都是假的,但是真實(shí)的開發(fā)中會(huì)使用到真的域名。 無論是后臺(tái)管理系統(tǒng)還是前臺(tái)門戶系統(tǒng),它們發(fā)送請(qǐng)求時(shí)都要跨域到網(wǎng)關(guān),所以需要解決跨域問題。 在第144天學(xué)習(xí)筆記中有解決跨域問題的完整方案,我做一個(gè)簡(jiǎn)單的說明: 本來是要使用cors調(diào)用api給各個(gè)相關(guān)屬性設(shè)定值,但是在springBoot中可以使用yam配置文件說明。 上述就是給各個(gè)屬性設(shè)定了對(duì)于的值,核心屬性就是allowedOrigins,意味著允許跨域的域名。 因?yàn)槎际且缬虻骄W(wǎng)關(guān),所以需要在網(wǎng)關(guān)微服務(wù)中做好配置。 二、Java后臺(tái)代碼1請(qǐng)求相關(guān)說明 ①請(qǐng)求參數(shù) 因?yàn)檎?qǐng)求參數(shù)為json數(shù)據(jù),所以創(chuàng)建一個(gè)實(shí)體類SearchRequest和其對(duì)應(yīng)。 在controller層中使用注解@RequestBody將請(qǐng)求參數(shù)轉(zhuǎn)換成SearchRequest對(duì)象。 其中要注意的是: 在后臺(tái)管理系統(tǒng)中管理人員可以自行設(shè)定分頁大小,但是在前臺(tái)門戶系統(tǒng)中一般分頁大小都會(huì)設(shè)定好一個(gè)固定的值,不會(huì)讓用戶自行決定。 ②請(qǐng)求方式和請(qǐng)求路徑 Post請(qǐng)求,真實(shí)路徑為page。 ③返回值 為商品分頁數(shù)據(jù),關(guān)于分頁實(shí)體類很早的時(shí)候就配置在了common微服務(wù)中。 但凡是需要分頁的,直接調(diào)用該實(shí)體類即可。 2service層代碼 ①獲取請(qǐng)求參數(shù)并校驗(yàn) 我們昨天就以京東為例說明過,搜索參數(shù)不能為空,如果為空會(huì)查不到數(shù)據(jù)。 key字段雖然在前端也有校驗(yàn)不能為空,但是前端校驗(yàn)只能防君子不能防小人,所以后臺(tái)最好也要加一個(gè)校驗(yàn)。 ②原生的查詢 queryBuilder這個(gè)對(duì)象可以鏈?zhǔn)骄幊?,說明查詢相關(guān),api都是以with開頭:
③搜索查詢結(jié)果 通過goodsRepository調(diào)用search查詢,參數(shù)即為queryBuilder調(diào)用build()方法。 反正這種以Builder為后綴的類,最后要用build()方法結(jié)尾。 3關(guān)于Repository Repository本身就是倉庫、資源庫的意思,其就相當(dāng)于以前一直接觸的mapper層。 只不過在索引庫搜索中是使用Repository,繼承ElasticsearchRepository接口即可使用了。 上述代碼中索引庫的原生查詢?cè)?strong style="color: rgb(119, 48, 152);">第162天學(xué)習(xí)筆記中就詳細(xì)學(xué)過,如果忘記了可以做一個(gè)回顧。 至于前端拿到響應(yīng)的數(shù)據(jù)后,如何完成頁面的渲染就不說明,暫且沒時(shí)間學(xué)完這些。 最后行有不得反求諸己,我是@劉小愛 一個(gè)白天上班晚上學(xué)習(xí)的95后滬漂,不為其它,只為學(xué)會(huì)自律做好自己,也愿我的每日打卡能給你帶來勇氣,歡迎點(diǎn)贊關(guān)注和評(píng)論。 |
|
|