一, 接口簡介
軟體開發中,接口是一個非常重要的概念。所謂接口,是指兩個對象進行通信的方式和協定。
在軟體設計領域,小到一個軟體子產品,大到一個軟體系統,都會有若幹接口,實作不同子產品、不同系統之間的通信。
每個接口都應該事先一個具體的功能,接口需要有明确的輸入,以及明确的輸出(也可以輸出為Null)。例如,調用單據字段查詢接口時,需要傳入單據内部ID,執行後傳回單據字段值。
在不同的團隊,跨子產品的軟體開發中,接口的設計需要在最初的設計方案時就協商好,然後各方團隊各自開發,在約定的時間一起連調,進行內建測試。
API (Application Programming Interface)即應用程式接口,可以是一個軟體元件或者一個Web服務與外界進行互動的接口。

在Web後端開發中,接口接受前端(Browser,App, Client)傳入的資料,處理之後要麼傳回給前端資料(JSON)要麼将資料存儲到資料庫中(MySQL, Redis)
二, 接口文檔
接口文檔又叫(規範性文檔)。接口文檔有規範的格式和内容要求,後端按照接口協定接收前端傳遞的合法資料和傳回符合的規範的資料,前端按照接口協定傳遞符合規範的資料和對後端傳回的資料依據展示的需要做處理
三, 接口文檔編寫規範
1. 内容
- 文檔包括以下内容:
- 接口說明
- 請求方式(GET/POST/RETRIEVE/UPDATE)
- 調用URL(接口位址)
- 請求參數,包含參數類型及其限制條件
- 傳回參數說明(傳回包結構體)
2. 示例
接口說明:注冊接口/建立單據接口/查詢接口等
傳回資料:JSON
四, 了解接口同步異步互動模式
接口之間的調用模式分為同步互動模式和異步互動模式兩種。
-同步互動模式
同步互動:指發送一個請求,需要等待傳回,然後才能夠發送下一個請求,有個等待過程;
同步的思想是:所有的操作都做完,才傳回給使用者。這樣使用者線上等待的時間太長,給使用者一種卡死了的感覺(就是系統遷移中,點選了遷移,界面就不動了,但是程式還在執行,卡死了的感覺)。這種情況下,使用者不能關閉界面,如果關閉了,即遷移程式就中斷了。
同步,是所有的操作都做完,才傳回給使用者結果。
采用同步調用模式的資料檔案查詢下載下傳頁面的設計案例。在該頁面中,使用者查詢并下載下傳csv檔案,如下圖所示。
具體互動與系統處理步驟如下:
1) 使用者設定好查詢條件,點選“下載下傳”按鈕;
2) “下載下傳”按鈕會以同步模式調用背景資料查詢接口,将前端使用者填寫的日期作為參數傳遞給後端服務接口;
3) 後端服務拼寫SQL查詢語句,執行SQL語句并等待資料庫傳回結果;
4) 資料庫傳回結果後,後端服務接口組裝資料,生成csv檔案,并傳回給前端浏覽器。在這個過程中,使用者在浏覽器端一直處于等待狀态(浏覽器左下角可能會有提示文字:等待伺服器響應);
5) 浏覽器收到伺服器傳回的資料檔案,彈出視窗,提示使用者選擇檔案的儲存位置,并執行檔案下載下傳操作。
-異步互動模式
異步互動:指發送一個請求,不需要等待傳回,随時可以再發送下一個請求,即不需要等待。
差別:一個需要等待,一個不需要等待,在部分情況下,我們的項目開發中都會優先選擇不需要等待的異步互動方式。
将使用者請求放入消息隊列,并回報給使用者,系統遷移程式已經啟動,你可以關閉浏覽器了。然後程式再慢慢地去寫入資料庫去。這就是異步。但是使用者沒有卡死的感覺,會告訴你,你的請求系統已經響應了。你可以關閉界面了。
一般耗時比較長的處理工作會采用異步調用模式,調用方會給被調用方提供一個回調接口,意思是“你處理時間比較長,等你處理完以後,再調用這個回調接口,通知我接口吧!”
我們依然以檔案查詢下載下傳為例來看看異步調用模式下的産品設計。在上一個案例中,資料查詢有可能非常耗時,如果讓使用者停留在前端頁面等待,體驗并不友好,是以我們考慮對功能進行改進,通過異步調用模式重新設計功能,互動效果如下圖所示,具體執行步驟如下:
1. 使用者設定好查詢條件,點選“下載下傳”按鈕。
2. 前端提示“下載下傳任務已送出,請耐心等待。”後端的下載下傳任務排程管理程式開始執行,在資料庫生成一條狀态“進行中”的任務記錄,同時異步調用後端資料查詢服務接口,并提供回調接口。
3. 後端服務接口拼寫SQL語句并執行,資料庫傳回結果後,程式将資料處理成csv格式,儲存在伺服器,并調用回調接口,後端服務接口程式執行結束,将任務狀态更新為“成功”,并提供資料下載下傳的連結。
4. 如果後端服務接口長時間沒有得到資料庫傳回結果,超過規定時間後,下載下傳任務排程管理程式會将任務狀态更新為“失敗”。