精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

聊聊前后端分離接口規范

開發 前端
本文的主要初衷就是規范約定先行,盡量避免溝通聯調產生的不必要的問題,讓大家身心愉快地專注于各自擅長的領域。

 1、前言

隨著互聯網的高速發展,前端頁面的展示、交互體驗越來越靈活、炫麗,響應體驗也要求越來越高,后端服務的高并發、高可用、高性能、高擴展等特性的要求也愈加苛刻,從而導致前后端研發各自專注于自己擅長的領域深耕細作。

然而帶來的另一個問題:前后端的對接界面雙方卻關注甚少,沒有任何接口約定規范情況下各自干各自的,導致我們在產品項目開發過程中,前后端的接口聯調對接工作量占比在30%-50%左右,甚至會更高。往往前后端接口聯調對接及系統間的聯調對接都是整個產品項目研發的軟肋。

本文的主要初衷就是規范約定先行,盡量避免溝通聯調產生的不必要的問題,讓大家身心愉快地專注于各自擅長的領域。

2、為何要分離

參考兩篇文章:

http://blog.jobbole.com/65509/

http://blog.jobbole.com/56161/

目前現有前后端開發模式:“后端為主的MVC時代”,如下圖所示:

后端為主的MVC時代

代碼可維護性得到明顯好轉,MVC 是個非常好的協作模式,從架構層面讓開發者懂得什么代碼應該寫在什么地方。為了讓 View 層更簡單干脆,還可以選擇 Velocity、Freemaker 等模板,使得模板里寫不了 Java 代碼。

看起來是功能變弱了,但正是這種限制使得前后端分工更清晰。然而依舊并不是那么清晰,這個階段的典型問題是:

前端開發重度依賴開發環境,開發效率低。

這種架構下,前后端協作有兩種模式:一種是前端寫demo,寫好后,讓后端去套模板 。淘寶早期包括現在依舊有大量業務線是這種模式。好處很明顯,demo 可以本地開發,很高效。不足是還需要后端套模板,有可能套錯,套完后還需要前端確定,來回溝通調整的成本比較大。

另一種協作模式是前端負責瀏覽器端的所有開發和服務器端的 View 層模板開發,支付寶是這種模式。好處是 UI 相關的代碼都是前端去寫就好,后端不用太關注,不足就是前端開發重度綁定后端環境,環境成為影響前端開發效率的重要因素。

前后端職責依舊糾纏不清。

Velocity 模板還是蠻強大的,變量、邏輯、宏等特性,依舊可以通過拿到的上下文變量來實現各種業務邏輯。這樣,只要前端弱勢一點,往往就會被后端要求在模板層寫出不少業務代碼。還有一個很大的灰色地帶是 Controller,頁面路由等功能本應該是前端最關注的,但卻是由后端來實現。Controller 本身與 Model 往往也會糾纏不清,看了讓人咬牙的業務代碼經常會出現在 Controller 層。這些問題不能全歸結于程序員的素養,否則 JSP 就夠了。

對前端發揮的局限。

性能優化如果只在前端做空間非常有限,于是我們經常需要后端合作才能碰撞出火花,但由于后端框架限制,我們很難使用Comet、Bigpipe等技術方案來優化性能。

總上所述,就跟為什麼要代碼重構一樣:

  •  關注點分離
  •  職責分離
  •  對的人做對的事
  •  更好的共建模式
  •  快速的反應變化

3、什么是分離

我們現在要做的前后分離第一階段:“基于 Ajax 帶來的 SPA 時代”,如圖:

基于 Ajax 帶來的 SPA 時代

這種模式下,前后端的分工非常清晰,前后端的關鍵協作點是 Ajax 接口。看起來是如此美妙,但回過頭來看看的話,這與 JSP 時代區別不大。復雜度從服務端的 JSP 里移到了瀏覽器的 JavaScript,瀏覽器端變得很復雜。類似 Spring MVC,這個時代開始出現瀏覽器端的分層架構:

瀏覽器端的分層架構

對于這一SPA階段,前后端分離有幾個重要挑戰:

前后端接口的約定。

如果后端的接口一塌糊涂,如果后端的業務模型不夠穩定,那么前端開發會很痛苦。這一塊在業界有 API Blueprint 等方案來約定和沉淀接口,==在阿里,不少團隊也有類似嘗試,通過接口規則、接口平臺等方式來做。有了和后端一起沉淀的接口規則,還可以用來模擬數據,使得前后端可以在約定接口后實現高效并行開發。== 相信這一塊會越做越好。

前端開發的復雜度控制。

SPA 應用大多以功能交互型為主,JavaScript 代碼過十萬行很正常。大量 JS 代碼的組織,與 View 層的綁定等,都不是容易的事情。典型的解決方案是業界的 Backbone,但 Backbone 做的事還很有限,依舊存在大量空白區域需要挑戰。

4、如何做分離

4.1 職責分離

職責分離

  •  前后端僅僅通過異步接口(AJAX/JSONP)來編程
  •  前后端都各自有自己的開發流程,構建工具,測試集合
  •  關注點分離,前后端變得相對獨立并松耦合

4.2 開發流程

  •  后端編寫和維護接口文檔,在 API 變化時更新接口文檔
  •  后端根據接口文檔進行接口開發
  •  前端根據接口文檔進行開發 + Mock平臺
  •  開發完成后聯調和提交測試

Mock 服務器根據接口文檔自動生成 Mock 數據,實現了接口文檔即API:

開發流程

4.3 具體實施

現在已基本完成了,接口方面的實施:

  •  接口文檔服務器:可實現接口變更實時同步給前端展示;
  •  Mock接口數據平臺:可實現接口變更實時Mock數據給前端使用;
  •  接口規范定義:很重要,接口定義的好壞直接影響到前端的工作量和實現邏輯;具體定義規范見下節;

接口文檔+Mock平臺服務器

5、接口規范V1.0.0

5.1 規范原則

  •  接口返回數據即顯示:前端僅做渲染邏輯處理;
  •  渲染邏輯禁止跨多個接口調用;
  •  前端關注交互、渲染邏輯,盡量避免業務邏輯處理的出現;
  •  請求響應傳輸數據格式:JSON,JSON數據盡量簡單輕量,避免多級JSON的出現;

5.2 基本格式

5.2.1 請求基本格式

GET請求、POST請求==必須包含key為body的入參,所有請求數據包裝為JSON格式,并存放到入參body中==,示例如下:

GET請求: 

  1. xxx/login?body={"username":"admin","password":"123456","captcha":"scfd","rememberMe":1} 

POST請求:

5.2.2 響應基本格式 

  1.  
  2.     code: 200,  
  3.     data: {  
  4.         message: "success"  
  5.     }  

code : 請求處理狀態

  •  200: 請求處理成功
  •  500: 請求處理失敗
  •  401: 請求未認證,跳轉登錄頁
  •  406: 請求未授權,跳轉未授權提示頁

data.message: 請求處理消息

  •  code=200 且 data.message="success": 請求處理成功
  •  code=200 且 data.message!="success": 請求處理成功, 普通消息提示:message內容
  •  code=500: 請求處理失敗,警告消息提示:message內容

5.3 響應實體格 

  1.  
  2.     code: 200,  
  3.     data: {  
  4.         message: "success",  
  5.         entity: {  
  6.             id: 1,  
  7.             name: "XXX",  
  8.             code: "XXX"  
  9.         }  
  10.     }  

data.entity: 響應返回的實體數據

5.4 響應列表格式

data.list: 響應返回的列表數據

5.5 響應分頁格式 

  1.  
  2.     code: 200,  
  3.     data: {  
  4.         recordCount: 2, 
  5.         message: "success",  
  6.         totalCount: 2,  
  7.         pageNo: 1,  
  8.         pageSize: 10,  
  9.         list: [  
  10.             {  
  11.                 id: 1,  
  12.                 name: "XXX",  
  13.                 code: "H001"  
  14.             },  
  15.             {  
  16.                 id: 2,  
  17.                 name: "XXX",  
  18.                 code: "H001"  
  19.             } ],  
  20.         totalPage: 1  
  21.     }  
  •  data.recordCount: 當前頁記錄數
  •  data.totalCount: 總記錄數
  •  data.pageNo: 當前頁碼
  •  data.pageSize: 每頁大小
  •  data.totalPage: 總頁數

5.6 特殊內容規范

5.6.1 下拉框、復選框、單選框

由后端接口統一邏輯判定是否選中,通過isSelect標示是否選中,示例如下: 

  1.  
  2.     code: 200,  
  3.     data: {  
  4.         message: "success",  
  5.         list: [{  
  6.             id: 1,  
  7.             name: "XXX", 
  8.             code: "XXX",  
  9.             isSelect: 1  
  10.         }, {  
  11.             id: 1,  
  12.             name: "XXX",  
  13.             code: "XXX", 
  14.             isSelect: 0  
  15.         }]  
  16.     }  

禁止下拉框、復選框、單選框判定選中邏輯由前端來處理,統一由后端邏輯判定選中返回給前端展示;

5.6.2 Boolean類型

關于Boolean類型,JSON數據傳輸中一律使用1/0來標示,1為是/True,0為否/False;

5.6.3 日期類型

關于日期類型,JSON數據傳輸中一律使用字符串,具體日期格式因業務而定;

6、未來的大前端

目前我們現在用的前后端分離模式屬于第一階段,由于使用到的一些技術jquery等,對于一些頁面展示、數據渲染還是比較復雜,不能夠很好的達到復用。對于前端還是有很大的工作量。

下一階段可以在前端工程化方面,對技術框架的選擇、前端模塊化重用方面,可多做考量。也就是要迎來“==前端為主的 MV* 時代==”。大多數的公司也基本都處于這個分離階段。

最后階段就是==Node 帶來的全棧時代==,完全有前端來控制頁面,URL,Controller,路由等,后端的應用就逐步弱化為真正的數據服務+業務服務,做且僅能做的是提供數據、處理業務邏輯,關注高可用、高并發等。

這兩個階段僅做簡單介紹,有興趣的可以參考下面的資料。

7、參考資料

https://www.zhihu.com/question/28207685

http://taobaofed.org/

http://2014.jsconf.cn/slides/herman-taobaoweb

http://blog.jobbole.com/65509/

https://blog.kaolafed.com/

http://blog.jobbole.com/65513/

http://blog.jobbole.com/65534/

http://blog.jobbole.com/65541/

http://blog.jobbole.com/56161/ 

 

責任編輯:龐桂玉 來源: Web開發
相關推薦

2019-07-09 05:44:35

前后端分離架構接口規范

2019-07-19 09:05:39

前后分離接口

2019-06-12 19:00:14

前后端分離AppJava

2023-02-08 16:29:58

前后端開發

2017-02-15 10:18:32

架構前后端分離

2020-09-25 11:50:12

前后端分離架構Web

2014-04-18 14:43:07

前后端分離NodeJS

2021-10-20 18:21:18

項目技術開發

2022-02-28 09:31:02

開發環境后端前端

2017-06-26 09:55:31

前端后端開發

2022-04-06 07:50:57

JWT后端Spring

2017-11-15 07:01:33

互聯網分層架構前后端

2016-08-22 13:31:05

前端架構前后端分離

2015-07-01 15:32:39

前端前后端分離

2019-12-04 08:44:59

前后端分離開發

2016-09-21 10:11:19

2022-05-27 10:40:04

前后端權限控制設計

2017-11-06 08:41:53

互聯網分層架構前后端

2015-11-12 10:32:27

前端后端分離

2020-09-29 07:42:34

互聯網分層架構前后端分離
點贊
收藏

51CTO技術棧公眾號

欧美 日韩 国产 成人 在线 91| 国产一二三四视频| 免费毛片b在线观看| 久久夜色精品国产欧美乱极品| 国产精品2018| 少妇被躁爽到高潮无码文| 成人av影音| 欧美艳星brazzers| 久久av高潮av| www.亚洲资源| 成人涩涩免费视频| 国产精品国产三级国产aⅴ9色| 欧美特级一级片| 国产成人ay| 精品久久久久久久久久久久久久久 | 欧美人成在线观看| av在线电影观看| www.日韩在线| 成人淫片在线看| 日韩精品一区不卡| 韩国一区二区三区在线观看| 亚洲网址你懂得| 欧产日产国产精品98| 二吊插入一穴一区二区| 亚洲一区二区三区四区在线 | 天天色综合天天| 在线成人av电影| 亚洲人成色777777精品音频| 国产又粗又猛又爽又黄91精品| 日韩免费观看av| 懂色av.com| 黄色亚洲免费| 欧美成人在线网站| 少妇愉情理伦三级| 一本色道久久综合亚洲精品酒店| 亚洲成av人影院在线观看| gogogo高清免费观看在线视频| 欧美色网一区| 欧美午夜视频一区二区| 日韩精品综合在线| jizz性欧美10| **网站欧美大片在线观看| 日韩久久不卡| 精品亚洲综合| 久久久久久夜精品精品免费| 波多野结衣在线一区| 午夜精品久久久久久99热| 无码人妻精品一区二区三区夜夜嗨| 北岛玲日韩精品一区二区三区| 成人精品视频网站| 99re国产视频| 亚洲AV无码成人片在线观看| 国产精品18久久久| 波多野结衣一区二区三区在线观看 | 欧美激情成人| www.美女亚洲精品| 欧美肥妇bbwbbw| 婷婷亚洲最大| 麻豆国产精品va在线观看不卡| 肉色超薄丝袜脚交69xx图片| 99re66热这里只有精品8| 少妇久久久久久| 中日韩一级黄色片| 一区二区三区国产精华| 欧美成人性色生活仑片| 国产一级片免费| 国产日韩一区| 国产大片精品免费永久看nba| 男人天堂视频网| 久久成人久久爱| 亚洲综合在线中文字幕| 国产黄色片免费| 99国产精品视频免费观看| 久久久久综合一区二区三区| 九色网友自拍视频手机在线| 国产精品久久午夜| 大片在线观看网站免费收看| 99在线视频影院| 欧美午夜片在线免费观看| 一道本视频在线观看| 24小时成人在线视频| 日韩欧美你懂的| 国产伦精品一区二区三区妓女| 欧美男同视频网| 精品国产一区二区三区久久狼5月 精品国产一区二区三区久久久狼 精品国产一区二区三区久久久 | 国产精品一区二区免费不卡| 国产伦视频一区二区三区| 日本一区二区三区在线观看视频| 久久久久久久电影| 亚洲AV无码成人精品一区| 国产三级伦理在线| 欧洲一区二区三区在线| 色男人天堂av| 欧美日韩123| 久久国产精品亚洲| www.中文字幕在线观看| 久久99热这里只有精品| 国产日韩久久| 日本电影在线观看网站| 亚洲成人久久影院| 日韩爱爱小视频| 第一区第二区在线| 中文字幕亚洲综合久久筱田步美| 免费麻豆国产一区二区三区四区| 久久久久久色| 电影午夜精品一区二区三区| 成人免费黄色网页| 亚洲午夜一区二区| 国产美女视频免费看| 日韩电影在线观看完整免费观看| 久久激情视频久久| 丰满少妇xoxoxo视频| 国产ts人妖一区二区| 色狠狠久久av五月综合| 精品精品导航| 欧美剧在线免费观看网站| 男男做爰猛烈叫床爽爽小说| 一区二区电影| 91精品久久久久久久久久另类| 亚洲AV成人无码一二三区在线| 一区在线观看免费| 亚洲成色www.777999| 麻豆一区二区| 久久久久久久香蕉网| 91国在线视频| 日本一二三不卡| 欧美 国产 小说 另类| 51vv免费精品视频一区二区 | 欧美污视频久久久| 欧美男男video| 欧美一区二区精品| 欧美xxxooo| 欧美aaa在线| 欧美重口乱码一区二区| 99riav视频在线观看| 欧美一二三四在线| 日韩精品一区二区亚洲av性色 | av小片在线| 色猫猫国产区一区二在线视频| 制服丝袜第二页| 亚洲精品美女91| 国产精品久久久对白| 污污影院在线观看| 91精品国产综合久久精品| www.黄色com| 捆绑紧缚一区二区三区视频| 神马影院一区二区| 成人在线观看免费播放| 一本一道久久a久久精品逆3p | 456成人影院在线观看| 亚洲欧美日韩成人| 久久久999久久久| 欧美激情一区二区三区全黄| 亚洲色图 在线视频| 日韩精品水蜜桃| 国产精自产拍久久久久久| 在线观看免费网站黄| 欧美日韩在线播放| 特黄一区二区三区| 国产揄拍国内精品对白| www.在线观看av| 噜噜噜天天躁狠狠躁夜夜精品 | av在线亚洲一区| 欧美成aaa人片免费看| 亚洲精品911| 精品久久久国产精品999| 丝袜美腿中文字幕| 日韩成人av影视| av动漫免费观看| 视频精品一区二区三区| 国内精品久久久久久| 五月天婷婷激情网| 在线视频一区二区免费| 操她视频在线观看| 国产精品亚洲午夜一区二区三区 | 亚洲国产精品va在看黑人| www..com国产| 欧美国产乱子伦| 国产精品欧美性爱| 香蕉亚洲视频| 资源网第一页久久久| 超碰成人福利| 国产精品视频资源| 日韩三级电影视频| 亚洲欧美国产精品久久久久久久| 在线观看中文字幕码| 亚洲综合色视频| 黄色片网站免费| 国产精品中文字幕日韩精品 | 国产小视频在线看| 久久伊99综合婷婷久久伊| 天天av天天操| 欧美一级专区| 国产成人亚洲综合无码| 久久不见久久见中文字幕免费| 成人综合网网址| 在线人成日本视频| 久久影院模特热| 麻豆导航在线观看| 欧美www视频| 一区二区国产欧美| 精品二区三区线观看| 91麻豆精品成人一区二区| 91亚洲资源网| 中文字幕人妻无码系列第三区| 免费在线观看成人av| 国产911在线观看| 欧美精品一区二区三区精品| 91久久大香伊蕉在人线| 91天天综合| 2019中文在线观看| gogo在线观看| 中文欧美日本在线资源| 偷拍自拍在线| 精品日韩成人av| 99热这里精品| 欧美精品粉嫩高潮一区二区| 免费黄色网址在线| 亚洲午夜电影网| 国产一区二区视频在线观看免费| 久久久久久99精品| www.色天使| 99国内精品久久| 蜜臀视频在线观看| 狠狠网亚洲精品| 一级在线免费视频| 久色成人在线| 成人综合视频在线| 亚洲激情国产| 日本福利视频一区| 欧美精品三区| 男女爱爱视频网站| 日本久久精品| 先锋影音一区二区三区| 国产精品自拍区| 欧美在线视频二区| 亚洲另类av| 欧美激情第一页在线观看| 国产一区丝袜| 国产美女精品在线观看| 亚洲精品a区| 亚洲自拍偷拍视频| 欧美影院在线| 官网99热精品| 国产乱人伦精品一区| 肥熟一91porny丨九色丨| 亚洲天堂中文字幕在线观看| 98国产高清一区| 北条麻妃一区二区三区在线观看 | 亚洲最新在线观看| 国产一级做a爱免费视频| 亚洲一区二区三区激情| 日韩欧美一区二区一幕| 精品动漫一区二区三区| 国产伦精品一区二区三区视频网站| 色婷婷综合五月| 亚洲第一区av| 69久久夜色精品国产69蝌蚪网| 国产精品国产三级国产普通话对白| 欧美肥胖老妇做爰| 国产精品久久久久精| 日韩精品中文字幕一区| 成人免费视频国产| 日韩av一区二区在线观看| 日韩欧美电影在线观看| 国产一区二区美女视频| 免费a级毛片在线播放| 毛片精品免费在线观看| 韩国成人免费视频| 欧美整片在线观看| 日韩毛片在线| 亚洲一区国产精品| 国产精品毛片视频| 欧美一区二区在线| 99视频精品视频高清免费| 4444在线观看| 亚洲综合不卡| 久久精品国产露脸对白| 成人久久久精品乱码一区二区三区| 中文字幕在线播放视频| 欧美国产日韩亚洲一区| 五月综合色婷婷| 亚洲动漫第一页| 亚洲自拍偷拍另类| 精品国产乱码久久久久久图片| 男女网站在线观看| 久久偷看各类女兵18女厕嘘嘘| 国产无遮挡裸体视频在线观看| 国产精品久久久久久久久久久新郎| а天堂中文最新一区二区三区| 国产三区精品| 91亚洲国产| 欧美色图另类小说| 久久国产日韩欧美精品| 国产黑丝一区二区| 亚洲同性gay激情无套| 日本一区二区三区精品| 91精品国产综合久久婷婷香蕉| 性感美女一级片| 久久成人精品视频| 欧洲av一区二区| 国产精品自拍首页| 婷婷综合网站| 日本三区在线观看| 国产激情视频一区二区在线观看 | 欧美色视频在线| 欧美 日韩 国产 精品| 俺也去精品视频在线观看| 亚洲人体视频| 国产精品久久久对白| 婷婷综合五月| 美女网站色免费| 国产香蕉久久精品综合网| 麻豆91精品91久久久| 欧美日韩视频不卡| 日本大片在线观看| 久久免费视频观看| 婷婷综合国产| 国产又爽又黄ai换脸| 日韩黄色一级片| 右手影院亚洲欧美| 亚洲国产日韩综合久久精品| 国产精品欧美激情在线| 国产亚洲精品高潮| 亚洲天堂手机| 国产一区免费在线| 欧美另类视频| 成人欧美精品一区二区| 亚洲日本欧美天堂| 91麻豆成人精品国产| 在线观看欧美日韩| 免费欧美电影| 日韩精品无码一区二区三区| 久久免费国产| 精品人伦一区二区三电影| 黄色成人在线播放| 午夜视频免费在线| 午夜精品一区二区三区av| 国产成人在线中文字幕| av在线免费观看国产| 国产成人亚洲综合a∨猫咪| 北条麻妃在线观看视频| 欧美日韩三级视频| 95在线视频| 成人xxxx视频| 欧美福利在线| 无码成人精品区在线观看| 亚洲va国产va欧美va观看| 亚洲av片一区二区三区| 欧美一区二区.| 红桃成人av在线播放| 中文字幕国内自拍| 国产精品久久久久久久久晋中 | 亚洲视频在线观看| 欧美大胆性生话| 一本久久a久久精品vr综合| 精品在线亚洲视频| 丁香花五月激情| 精品国产乱码久久久久久免费| 国产福利电影在线播放| 久久久人人爽| 免费成人美女在线观看| 日韩国产第一页| 精品国产免费人成电影在线观看四季| 国产777精品精品热热热一区二区| 免费看污久久久| 麻豆精品视频在线观看| 国产suv一区二区三区| 亚洲电影天堂av| 在线成人av观看| 亚洲一区二区三区四区中文| 国产一区二三区好的| 国产精品第56页| 国产一区二区三区视频| 先锋影音一区二区| 亚洲色成人www永久在线观看| 久久亚洲综合av| 国产麻豆免费观看| 亚洲**2019国产| 成人中文在线| 影音先锋资源av| 欧美在线一二三| 视频在线这里都是精品| 欧美精品一区二区三区四区五区| 久久97超碰色| 国产精品视频免费播放| 久久精品99无色码中文字幕| 卡通动漫精品一区二区三区| 天天操天天爱天天爽| 一二三区精品视频| 国产在线观看网站| 不卡一区二区三区视频| 日韩精品三区四区| 久久久久久久久久一区二区三区| 亚洲欧美成人网| 国产图片一区| 亚洲自拍第三页| 欧美视频在线观看一区| av美女在线观看| 亚洲av综合色区|