你不懂API接口是什么?怎么和程序员做朋友
產品經理可能需要了解第2個技術知識點:什么是API接口?接口有那幾部分組成?怎么通過接口定位是前端bug還是后端bug?
1. 接口是什么
2. 接口地址組成部分
3. 接口請求方式
4. 接口返回內容
5. 接口文檔規范
6. 如何通過接口判斷問題是后端還是前端造成的
說到開發平臺就一定離不開接口,作為PM,我們不需要對接口了解的特別細。只需要知道接口是什么,有什么用,有哪些要素就行。
1. 接口是什么
(1) 硬件接口
生活中我們經常會接觸接口,最常見的就是HDMI接口和USB接口,而且我們知道接入某個接口就能實現某種功能。
例如筆記本電腦可以通過HDMI接口連接電視,將畫面同步顯示到電視上;Switch等游戲設備也可以通過HDMI接口連接電視,實現在電視上玩游戲。
大多數人并不需要知道HDMI接口是怎么實現的,只需要接入之后能干什么就行。(HDMI是一種高清視頻接口,可用來傳輸圖像信號和音頻信號。)
(2) 程序接口api(application program interface)
其實從實際意義上講程序的接口也和硬件一樣,將內部實現的功能封裝起來,像一個盒子一樣只留出一個口子,人們接入這個口子就能使用這個功能。
調用的人可以很方便使用這些功能,并且可以不需要知道這些功能的具體實現過程,接口API就是按照作者規定的流程去調用這些功能。
實際開發中,當前端和后端有數據交互時,前端人員都會直接向后端詢問接口寫好了沒,而不會問他具體的怎么實現的。
【舉個例子:點餐吃飯】
我們到商場店里吃飯,現在基本上都是掃碼點餐;首先掃描二維碼進入頁面,輸入就餐人數,然后劈里啪啦一頓點餐并提交訂單。點完后,服務員會跟你核對菜單,然后同步到后廚,最后我們就坐等上菜。
例子中的掃碼點餐過程就可以看成是API接口的工作過程,一個點餐的API接口,通過選中菜品(輸入參數),最后服務員上的一道道菜(輸出數據),這過程就是點餐API接口的作用。
來吃飯的顧客是接口的調用者,接口的提供者就是商家。大多數接口一定要有輸入和輸出,但是嚴格意義上不是這樣的,沒有輸入也有輸出。
接口是數據傳遞是一種表現。
【再舉個超簡單的例子:點燈開發】
接口的請求可以理解為接口就是一個電燈的開關,它在接口里面給你提供了一個參數,參數的值一個是 “開”、另一個是“關”,分別對應“燈亮”、“燈滅”。
通過這兩個例子,想必大家對接口的概念有所理解了吧,接下來我們來看看接口有那幾部分構成的。
2. 接口地址組成部分
接口地址由請求協議、IP地址、端口、接口名稱、參數組成。
(1) 請求協議
http:普通的http請求;
https:加密的http請求,傳輸數據更加安全;
ftp:文件傳輸協議,主要用來傳輸文件。
(2) 請求IP
就是指提供接口的系統所部署的服務器地址,通常用映射IP的域名來代替;
(3) 端口
如果不填端口,默認是80,否則需要填寫端口號;
(4) 接口名稱
好的接口命名能讓開發者便于閱讀和理解,如 “news/add” 和 “news/update”,一看就知道新聞添加和新聞信息編輯的接口。
(5) 接口參數/參數值
參數在接口路徑后,用“?”來表示路徑地址結束,后面跟著的都是參數,用“&”來區分參數個數(GET請求傳參方式)。
3. 接口請求方式
一般采用的是HTTP協議的POST和GET請求;GET請求方式參數通常拼接在接口地址后面;
而POST請求則不會拼接在后面,是保證了數據的安全性;
4. 接口返回內容
將參數傳過去之后,后端返回給前端一般用JSON格式,如下所示:
{
? ?//返回狀態碼
? ?code: integer,
? ?//返回信息描述
? ?message: "提現成功",
? ?//返回結果數據
? ?data: object
}
(1) CODE狀態碼
code返回狀態碼,通常是在開發按照"#1000~1999 區間表示參數錯誤、#2000~2999 區間表示用戶錯誤、#3000~3999 區間表示接口異常"等規則。(規則僅供參考) 例子如下所示:
(2) Message信息
Message字段相對理解比較簡單,就是發生錯誤時,如何友好的進行提示。一般設計時和code狀態碼一一對應,如上圖所示。
(3) data信息
返回的重要結果數據之一,下圖是完整的接口返回數據。
5. 接口文檔規范
項目開發需要前端和后端共同完成的,接口文檔通常由后端定義并編寫接口文檔,然后再前后端聯調的時候,根據接口文檔進行數據交互。
接口文檔的另一個重要作用就是規范,項目開發過程中前后端工程師有一個統一的文件進行溝通交流開發,項目維護中或者項目人員更迭的時候,方便后期人員查看、維護。
接口文檔的接口分為五部分:請求方法(POST、GET)、接口地址、請求參數、返回參數、返回結果示例。以銀行卡四元素校驗為例(https://www.juhe.cn/docs/api/id/213):
6. 如何通過接口判斷問題是后端還是前端造成的
PM:"前端,幫我看下這塊信息為什么是空白的。"
前端:"好勒,馬上看。"
2000 years later
前端:"我代碼沒問題呀,參數也傳了,你問下后端。"
PM:"后端,幫我看下這里數據為啥沒有。"
后端:"我接口沒問題呀,等等,這數據本來就是空的,快找人新增去呀。"
后端一臉嫌棄。
很多時候,當我們發現問題的時候,第一印象就是找開發人員詢問原因,很多人基本不會去先判斷這問題是屬于前端的還是后端的,導致溝通成本變大。
通過上面的介紹,我們可以通過接口的返回數據中的狀態碼,來初步判斷問題屬于哪一方?,F在介紹一下這么通過瀏覽器查看接口數據。
首先打開任意瀏覽器(建議使用谷歌),鼠標右擊后點擊“查看”或者直接按“F12鍵”打開發者工具,然后選擇"network"—>“XHR”,就會看到很多接口請求,按需找到請求接口,查看對應返回數據即可。
大多數情況下,可以通過接口狀態碼和消息提示去判斷是后端還是前端的問題。
但是有些問題比較隱蔽,即使狀態碼返回為成功的碼,但問題依舊存在,這種情況很有可能是后臺某細節錯誤。
今天內容到此結束了,點擊下方【閱讀原文】查看更多技術知識點。
最后,我建立了各大城市的產品交流群,想進群小伙伴加微信:yw5201a1??我拉你進群。
關注微信公眾號:產品劉?可領取大禮包一份。
··················END··················
今日報告:百度營銷發布《2022年百度新能源汽車行業洞察》,下載報告去公眾號:硬核劉大??后臺回復“?新能源汽車”,即可下載完整PDF文件。
申明:報告版權歸?百度營銷?獨家所有,此處僅限分享學習使用,如有侵權,請聯系小編做刪除處理。
RECOMMEND
推薦閱讀
產品經理如何催項目進度?
線下實戰2.0
從面試的這些細節就可判斷公司的好壞
面試題,你手里有幾個offer?
點擊“閱讀原文”
查看更多干貨
總結
以上是生活随笔為你收集整理的你不懂API接口是什么?怎么和程序员做朋友的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 互联网晚报 | 4月08日 星期五 |
- 下一篇: C语言再学习-- assert 断言宏