色色一区二区三区,一本大道道久久九九AV综合,国产香蕉97碰碰视频va碰碰看,综合亚洲国产2020

    <legend id="mljv4"><u id="mljv4"><blockquote id="mljv4"></blockquote></u></legend>

    <sub id="mljv4"><ol id="mljv4"><abbr id="mljv4"></abbr></ol></sub>
      <mark id="mljv4"></mark>
      教育培訓 > 前后端同時開發(fā)怎么定義接口?

      前后端同時開發(fā)怎么定義接口?

      2020-07-24 02:53閱讀(79)

      前后端同時開發(fā)怎么定義接口?:前后端同時開發(fā)怎么定義接口?一般有兩種方式,1、為每個邏輯都定義單獨接口(適用于對外接口,?趯S貌怀鲥e)2、定義一個通:-

      1

      前后端同時開發(fā)怎么定義接口?

      一般有兩種方式,

      1、為每個邏輯都定義單獨接口(適用于對外接口,?趯S貌怀鲥e)

      2、定義一個通用接口,通過參數(shù)中的id區(qū)分業(yè)務邏輯函數(shù)(適用于公司內(nèi)部項目,一口多用方便靈活)

      我的做法是先畫一個前端和后端交互的時序圖,把前后端之間的通訊邏輯理清楚,然后根據(jù)具體每一步的執(zhí)行順序邏輯去定義接口,

      如下圖是用戶登錄系統(tǒng)的時序圖,

      圖中,app和后臺之間有兩個箭頭,由此我們可以知道,前端app和后端服務器之間兩個接口:

      1、發(fā)送請求

      2、返回登錄結(jié)果

      登錄系統(tǒng)是最長用的也是最基礎(chǔ)的系統(tǒng),雖然簡單卻也涵蓋了前端和后端交互的基本原理,另外圖中還標明了,客戶端的頁面驗證邏輯,和服務端的數(shù)據(jù)庫請求邏輯。

      下圖是一張支付接口的時序圖

      支付邏輯相對復雜一些,但有圖的幫助,接口會變得很清晰。

      前后端數(shù)據(jù)交互頻繁,可以定義一個數(shù)據(jù)接口,然后通過數(shù)據(jù)中的id來區(qū)分要執(zhí)行的函數(shù)。這樣的好處是,接口一個就夠,靈活性高。同一個項目適用這種方式。不適合做對外的接口。

      2

      在開發(fā)之前一定要先定義好接口規(guī)范,至于接口應該由前端來定還是后端來定,這個還得看公司的具體情況,但一定要讓前后端都確認無誤,特別是接口協(xié)商要點,以免出現(xiàn)前后端分離之后最容易出現(xiàn)的扯皮現(xiàn)象。

      由前端和后端一起協(xié)定接口規(guī)范的內(nèi)容,確定每一個接口的地址(URL), 輸入?yún)?shù)和返回值,必要的時候詳細注釋每一個字段的含義和數(shù)據(jù)類型。

      定義接口可以參照以下三方面:

      1、資源接口:系統(tǒng)涉及到哪些資源,按照 RESTful 方式定義的細粒度接口。

      2、操作接口:頁面涉及到哪些操作,例如修改用戶信息等等,也可以使用 RESTful 方式來定義。

      3、頁面接口:頁面涉及到太多接口,如果是一個個地調(diào)用,會需要很多次請求,有可以影響到前

      端的性能和用戶體驗, 因此可能需要將這些接口的數(shù)據(jù)合并到一起,作成一個聚合型接口提供

      給前端來使用。

      接口需要前后端一起確認的信息如下:

      1、接口必須返回統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)。

      2、接口查詢不到數(shù)據(jù)時,即空數(shù)據(jù)的情況下返回給前端怎樣的數(shù)據(jù)。建議返回非 null 的對應數(shù)據(jù)類型初始值,例如對象類型的返回空對象({}),數(shù)組類型的返回空數(shù)組([]),其他原始數(shù)據(jù)類型也使用對應的默認值。這樣可以減少前端很多瑣碎的非空判斷,直接使用接口中的數(shù)據(jù)。

      3、調(diào)用接口業(yè)務失敗的常用錯誤碼,例如未授權(quán)時調(diào)用需要授權(quán)的接口返回 \"status\": “fail”。

      4、接口需要登錄時如何處理,特別是同時涉及到 Web 端/微信端/App 端,需要前端針對運行環(huán)境判斷如何跳轉(zhuǎn)到登錄頁面。

      5、返回數(shù)據(jù)中圖片 URL 是完整的還是部分的。

      a.http://image.com/image/a/img.png 這就是完整的,前端直接使用這個 URL。

      b./image/a/img.png 這就是部分的, 一般省略域名部分, 前端需要自己拼接后才能使用

      'https://image.com' + '/image/a/img.png'。

      6、返回數(shù)據(jù)中頁面跳轉(zhuǎn)的 URL 是給完整的還是部分的。

      a.內(nèi)部頁面返回部分的,或者只給ID,由前端自己拼接,例如只給出商品ID,讓前端自己拼接商品

      詳情頁的 URL。

      b.外部頁面返回完整的,例如廣告位要跳轉(zhuǎn)去谷歌。

      7、返回數(shù)據(jù)中日期的格式,是使用時間戳還是格式化好的文字。

      a.對于需要前端再次處理的日期值(例如根據(jù)日期計算倒計時),可以使用時間戳。

      b.對于純展示用的日期值,推薦返回為格式化好的文字。

      8、對于大數(shù)字(例如 Java 的 long 類型),返回給前端時需要設(shè)置為字符串類型,否則 JavaScript 會發(fā)生溢出, 造成得到的數(shù)值錯誤

      9、分頁參數(shù)和分頁信息

      a.如何限制只返回 N 條數(shù)據(jù)(limit 參數(shù))

      b.如何控制每頁的數(shù)據(jù)條數(shù)(pageSize 參數(shù))

      c.如何加載某一頁的數(shù)據(jù)(page 參數(shù))

      d.如何避免無限滾動加載可能出現(xiàn)的重復數(shù)據(jù)

      e.分頁信息包含什么(total、page、pageSize)

      當然以上只是列舉了部分項,實際操作中應該盡量全面的在接口協(xié)議中些清楚。因為一旦開發(fā)中有分歧的,都要以接口協(xié)議定義的為準。

      3

      根據(jù)需求定義 再商量著來吧

      4

      這個得看你們公司的實際情況,一般是分前端主導還是后臺主導。首先不管是前端主導還是后臺主導,需要先定義好返回的通用對象格式,比如統(tǒng)一返回格式

      {

      code:200,

      message:\"ok\

      5

      使用文檔定義,開發(fā)遵從文檔,文檔先行,前后端先對接好需求,只關(guān)心對方的接口,內(nèi)部怎么實現(xiàn)的對自己來說是透明的。

      6

      mock簡單快速