后端之路第二站(正片)——SprintBoot之:設置請求接口

這一篇講怎么簡單結合模擬云接口,嘗試簡單的后端接接口、接受并傳數據

一、下載Apifox接口文檔軟件

目前的企業都是采用前后端分離開發的,在開發階段前后端需要統一發送請求的接口,前端也需要在等待后端把數據存到數據庫之前,自己也要有一些數據用來測試前端頁面的,那么這時就需要一個前后端開發合作的接口軟件

黑馬視頻李推薦的是postman,但是我不建議,我強烈推薦Apifox!!

第一、他是中文的,別的是英文的

第二、操作方便,基本很多企業、團隊都在用

下載很簡單,應用商店、官網都可以下載安裝

二、在“請求處理類”里寫一個【請求方法】模擬接口

上一篇我講過一個springboot的“請求處理類”怎么寫,然后里面的一個“請求方法(請求接口)”大概格式就是這樣:

@RestController
public class 請求處理類 {@RequestMapping("/方法名(接口路徑名)")public String 方法名(接口路徑名)(請求參數){//......發請求【后端】看到的return 發送請求后【前端】看到的}}

然后別忘了到【啟動類】重新啟動運行一次spring boot

三、怎么用Apifox模擬請求?

點進軟件,到【個人空間】—>【個人項目】

到【接口管理】—>【示例項目】—>【“+”添加接口】

然后就可以定義我們的接口,就跟填表格一樣

然后點保存,然后到【文檔】選【正式環境】點【運行】

這里這幾個需要改一下:

然后點擊【發送】就可以有結果了

前端看到的

后端看到的

四、post跟get有所不同

大部分步驟一樣,還是創建請求方法,然后運行啟動類,然后到Apifox創建接口.......

但是留意這里一點,post的請求參數是在請求體里的,所以在創建接口時,我們要把參數寫到Body里

前端看到的

后端看到的

這里解釋一下,這是根據http協議解析

當我們打開瀏覽器摁F12檢測時,安裝下面步驟可以看到我們發的請求詳情

然后一個請求包含的信息有:

然后我們要的信息一般看【Headers】就夠了

【Header】里我們會看到【Response?Headers】和【Request Headers】

一個是【服務器響應端的請求頭信息】一個是【發送請求端的請求頭信息】

(提示:圖片原作者來自于作者“良辰真不戳”)

那么【GET】方法的傳過去的參數信息包含在【Request Headers】的【第一行】

然后【POST】方法的傳過去的參數信息在【Payload】

所以我們在設置post接口的時候是在請求體里設置

五、前面是簡單參數請求,現在是正式參數格式請求

但是學過前端的兄弟們會留意到,我們剛剛返回給前端的數據是什么鬼?

【name:岑梓銘 age:23】這樣的數據根本沒法用啊,而且數據量大的情況下更不可能給你【return "name:"+name+" age:"+age;】這樣一個數據一個數據拼接傳輸,所以一個正常的參數應該是以【對象】的形式傳送,所有信息包含在一個對象

那么就回到java知識,我們需要自定義好一個JavaBean類

(提示【Alt + insert】自動生成一個JavaBean類的構造方法、getter、setter等方法)

然后回到【請求處理類】,還是寫一個【請求方法/請求接口】

此時參數就可以寫一個,就是我們剛剛創建好的類就行了(別忘了導入類,這是兩不同地方的文件)

然后,Apifox還是一樣的邏輯設置好對應的接口,然后就能看到包著多個信息的對象顯示出來

六、個別形式參數(數組、集合)留意點

假如前端傳回多個同名參數的參數值,那就要用數組或者集合來獲取

但是需要留意一點:集合參數需要在形參前面加一個【@RequestParam】

七、日期參數

后端接收前端時間參數時,要采用@DateTimeFormat(pattern="格式")的方式來規定好時間的格式,不能一會“xxxx年xx月xx日”一會“xxxx.xx.xx”一會“xxxx-xx-xx”,然后還有形參那里時間的變量類型是LocalDateTime

八、正式的JSON格式參數

(雖然我不知道為什么,但還是學一下吧)

有的情況可能前端會傳JSON格式的參數給回后端(雖然我不知道到底有沒有這種情況),那這個情況該怎么傳參呢?

首先spring boot里面寫代碼,加一個@RequestBody,就可以把前端傳過來的JSON參數值【封裝進】我們寫的類里

然后Apifox里直接按post接口流程來,但是這里得把“x-www-form-.....”改成“json”

然后注意!!這里可能會出現一個問題:返回代碼500,說明后端這邊出現問題

我檢查半天愣是找不出半點問題,直到我一個后端的大佬朋友跟我說......我用來獲取、封裝這個JSON參數值的JavaBean類里缺少了【無參構造方法】!

如果正常的對象參數就沒影響,但是如果要把JSON參數值封裝進去,就一定得有【無參構造方法】

九、路徑參數

除了 “域名?參數1=值1&參數2=值2” 這種方式傳參,還有一種常見的是 “域名/路徑/{參數值1}/{參數值2}” 這種直接拼接在路徑的傳遞方式

那么這種傳遞參數的方式在spring boot代碼編寫方面要注意兩點:

1、方法名 跟 @RequestMapping("...")的名不用一樣,因為路徑參數里@RequestMapping("...")綁定的是參數,而不是該方法

2、形參那,每個參數前要有一個“@PathVariable”來聲明這個參數是在自路徑那的

然后在Apifox接口設置處注意:

1、參數不是把形參名字接在路徑、然后在參數填表格就行了

2、路徑參數不支持中文值傳遞

下面這兩個是錯的

而是直接把參數值寫在路徑對應的參數處,然后只能傳英文

下面這是對的

下一篇講設置【響應】

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14770.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14770.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14770.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

初始MyBatis ,詳細步驟運行第一個MyBatis程序,同時對應步驟MyBatis底層剖析

1. 初始MyBatis ,詳細步驟運行第一個MyBatis程序,同時對應步驟MyBatis底層剖析 文章目錄 1. 初始MyBatis ,詳細步驟運行第一個MyBatis程序,同時對應步驟MyBatis底層剖析每博一文案2. 前沿知識2.1 框架(framework&#…

剪畫小程序:3個方法:告訴你如何將普通的照片轉換成動漫二次元風格!

Hello!親愛的小伙伴們! 你是否還在糾結于自己的自拍太普通,每次分享到社交賬號上都覺得平平無奇,引不起波瀾? 假如,你和朋友們一起出去玩,大家都開心地拍著自拍。你看著自己的照片&#xff0c…

藍橋杯-數三角(ac代碼時間復雜度分析)

問題描述 小明在二維坐標系中放置了 ( n ) 個點,他想在其中選出一個包含三個點的子集,這三個點能組成三角形。然而這樣的方案太多了,他決定只選擇那些可以組成等腰三角形的方案。請幫他計算出一共有多少種選法可以組成等腰三角形&#xff1f…

WXML模板語法-事件綁定

一、 1.事件 事件是渲染層到邏輯層的通訊方式,通過事件可以將用戶在渲染層產生的行為,反饋到邏輯層進行業務的處理 2.小程序中常用的事件 3.事件對象的屬性列表 當事件回調觸發的時候,會收到一個事件對象event,其屬性為&#x…

在uni-app 插件市場下載 SKU 插件之后,引入項目報錯問題

引入&#xff1a; git 提交報錯&#xff1a; 原因&#xff1a;項目使用了 eslint 語法檢查 解決&#xff1a;禁用 eslint 語法規則 在<script> 標簽下面添加 /* eslint-disable */ 重新提交即可

Winform 界面管理

winform 打開多個界面時&#xff0c;如果使用 Form.Show 方法&#xff0c;有時候沒注意就把同一個窗體打開多次&#xff0c;這可能會導致數據混亂&#xff0c;如果去判斷窗體是否打開也很麻煩&#xff0c;需要寫一堆的代碼才能實現&#xff0c;為了解決這個問題&#xff0c;我做…

【網絡技術】【Kali Linux】Wireshark嗅探(十四)QUIC(快速UDP互聯網連接)協議報文捕獲及分析

往期 Kali Linux 上的 Wireshark 嗅探實驗見博客&#xff1a; 【網絡技術】【Kali Linux】Wireshark嗅探&#xff08;一&#xff09;ping 和 ICMP 【網絡技術】【Kali Linux】Wireshark嗅探&#xff08;二&#xff09;TCP 協議 【網絡技術】【Kali Linux】Wireshark嗅探&…

【Python快速上手(三十一)】- Python MongoDB 詳解

目錄 Python快速上手&#xff08;三十一&#xff09;Python MongoDB 詳解1. 安裝 pymongo2. 連接 MongoDB3. 創建和刪除集合4. CRUD 操作5. 查詢操作6. 索引7. 聚合8. 其他操作9. 連接池和超時10. 實際應用案例 Python快速上手&#xff08;三十一&#xff09; Python MongoDB …

移動硬盤容量消失無法讀取的解決方案

在數字化時代&#xff0c;數據的存儲和備份變得尤為重要。移動硬盤作為一種便捷、大容量的存儲設備&#xff0c;受到許多人的青睞。然而&#xff0c;有時我們可能會遭遇這樣的問題&#xff1a;移動硬盤不顯示容量且無法訪問。這種情況無疑給我們的數據存儲和管理帶來了巨大的困…

uniapp移動端骨架屏流程

1.使用微信開發者工具來生成骨架屏&#xff1b;在分窗模式下選擇頁面信息&#xff0c;下拉選擇生成骨架屏&#xff1b;他會基于當前頁面生成骨架屏的樣式 點擊確定&#xff1b; 會自動生成這兩個文件&#xff1b;一個是html結構文件&#xff0c;一個是css樣式文件。 然后把這兩…

黃石首家Pearson VUE國際認證考試中心落戶湖北理工學院

Pearson VUE 作為 Pearson 集團的專門從事計算機化考試服務的公司&#xff0c;到目前為止&#xff0c;已在全世界165 個國家授權了 4400 多個考試中心以及超過 230 家 PVUE 自有考試中心&#xff0c;其中在中國的有三百多個授權考點和 4 個自有考試中心。Pearson VUE 以其技術和…

LLaMa系列模型詳解(原理介紹、代碼解讀):LLaMA 3

LLaMA 3 2024年4月18日&#xff0c;Meta 重磅推出了Meta Llama 3&#xff0c;Llama 3是Meta最先進開源大型語言模型的下一代&#xff0c;包括具有80億和700億參數的預訓練和指令微調的語言模型&#xff0c;能夠支持廣泛的應用場景。這一代Llama在一系列行業標準基準測試中展示…

2021遼寧省大學生程序設計競賽(正式賽)

比賽經過&#xff1a;寫了七八題&#xff0c;有一個topsort寫錯地方了&#xff0c;本場題目都較為簡單考的知識都比較明顯 補題&#xff1a;有些題目還得多思考其實也不難 目錄 B.阿強的路 C.傳染病統計 D.阿強與網格 E.生活大爆炸 F.Capslock G.字節類型 H.制造游戲幣…

AI模型:開源VS閉源,誰主沉浮?

簡介&#xff1a;評價一個AI模型“好不好”“有沒有發展”&#xff0c;首先就躲不掉“開源”和“閉源”兩條發展路徑。對于這兩條路徑&#xff0c;你更看好哪一種呢&#xff1f; 開源AI模型的優點。 開源AI模型的最大優勢在于其開放性和可訪問性。通過將AI模型的源代碼公開&a…

java學習四

Random 隨機數 數組 靜態初始化數組 數組在計算機中的基本原理 數組的訪問 什么是遍歷 數組的動態初始化 動態初始化數組元素默認值規則 Java內存分配介紹 數組在計算機中的執行原理 使用數組時常見的一個問題 案例求數組元素最大值 public class Test1 {public static void ma…

<工控><PLC>匯川Easy521系列PLC與匯川SV630N伺服進行EtherCat通訊的相關配置及指令編寫

前言 本系列是關于PLC相關的博文&#xff0c;包括PLC編程、PLC與上位機通訊、PLC與下位驅動、儀器儀表等通訊、PLC指令解析等相關內容。 PLC品牌包括但不限于西門子、三菱等國外品牌&#xff0c;匯川、信捷等國內品牌。 除了PLC為主要內容外&#xff0c;PLC相關元器件如觸摸屏…

父子級分類統計分類下數量sql

1 SELECTA.* FROM(SELECTA.project_id,COALESCE ( A.category_id, 0 ) category_id,( -- 其它沒有查詢的分類, 就會是null, 所以會歸為其它CASEWHEN COALESCE ( A.category_name, 其他分類 ) 其他分類 THEN 其他 WHEN COALESCE ( A.category_name, 其他分類 ) 強電系統 THE…

【Unity3D美術】URP渲染管線學習01

掃盲簡介 URP渲染管線是Unity3d提供的一種視覺效果更好的渲染模式&#xff0c;類似的還有Built RP&#xff08;默認最普通的渲染模式&#xff09;\ HDRP(超高清&#xff0c;對設備要求高)&#xff0c;視覺效果好&#xff0c;而且占用資源少&#xff01;成為主流渲染管線模式&a…

基于Docker部署GitLab環境搭建

文件在D:\E\學習文檔子目錄壓縮\專項進階&#xff0c;如ngnix,webservice,linux,redis等\docker 建議虛擬機內存2G以上 1.下載鏡像文件 docker pull beginor/gitlab-ce:11.0.1-ce.0 注意&#xff1a;一定要配置阿里云的加速鏡像 創建GitLab 的配置 (etc) 、 日志 (log) 、數…

成功案例(IF=7.4)| 代謝組+16s聯合分析助力房顫代謝重構的潛在機制研究

研究背景 心房顫動&#xff08;AF&#xff09;是臨床上最常見的持續性心律失常&#xff0c;具有顯著的發病率和死亡率。高齡是房顫發病率、患病率和進展最顯著的危險因素。與年齡在50-59歲之間的參與者相比&#xff0c;80-89歲之間的參與者患房顫的風險增加了9.33倍。目前尚不…