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

App架構設計經驗談:接口的設計

開發 架構
關于接口設計,暫時想到的就這么多了。各位看官看完覺得有遺漏或有哪些需要優化的歡迎提出一起討論。

App與服務器的通信接口如何設計得好,需要考慮的地方挺多的,在此根據我的一些經驗做一些總結分享,旨在拋磚引玉。

[[161737]]

安全機制的設計

現在,大部分App的接口都采用RESTful架構,RESTFul最重要的一個設計原則就是,客戶端與服務器的交互在請求之間是無狀態的,也就是說,當涉及到用戶狀態時,每次請求都要帶上身份驗證信息。實現上,大部分都采用token的認證方式,一般流程是:

  1. 用戶用密碼登錄成功后,服務器返回token給客戶端;

  2. 客戶端將token保存在本地,發起后續的相關請求時,將token發回給服務器;

  3. 服務器檢查token的有效性,有效則返回數據,若無效,分兩種情況:

    • token錯誤,這時需要用戶重新登錄,獲取正確的token

    • token過期,這時客戶端需要再發起一次認證請求,獲取新的token

然而,此種驗證方式存在一個安全性問題:當登錄接口被劫持時,黑客就獲取到了用戶密碼和token,后續則可以對該用戶做任何事情了。用戶只有修改密碼才能奪回控制權。

如何優化呢?***種解決方案是采用HTTPS。HTTPS在HTTP的基礎上添加了SSL安全協議,自動對數據進行了壓縮加密,在一定程序可以防止 監聽、防止劫持、防止重發,安全性可以提高很多。不過,SSL也不是絕對安全的,也存在被劫持的可能。另外,服務器對HTTPS的配置相對有點復雜,還需 要到CA申請證書,而且一般還是收費的。而且,HTTPS效率也比較低。一般,只有安全要求比較高的系統才會采用HTTPS,比如銀行。而大部分對安全要 求沒那么高的App還是采用HTTP的方式。

我們目前的做法是給每個接口都添加簽名。給客戶端分配一個密鑰,每次請求接口時,將密鑰和所有參數組合成源串,根據簽名算法生成簽名值,發送請求時 將簽名一起發送給服務器驗證。類似的實現可參考OAuth1.0的簽名算法。這樣,黑客不知道密鑰,不知道簽名算法,就算攔截到登錄接口,后續請求也無法 成功操作。不過,因為簽名算法比較麻煩,而且容易出錯,只適合對內的接口。如果你們的接口屬于開放的API,則不太適合這種簽名認證的方式了,建議還是使 用OAuth2.0的認證機制。

我們也給每個端分配一個appKey,比如Android、iOS、微信三端,每個端分別分配一個appKey和一個密鑰。沒有傳appKey的請求將報錯,傳錯了appKey的請求也將報錯。這樣,安全性方面又加多了一層防御,同時也方便對不同端做一些不同的處理策略。

另外,現在越來越多App取消了密碼登錄,而采用手機號+短信驗證碼的登錄方式,我在當前的項目中也采用了這種登錄方式。這種登錄方式有幾種好處:

  1. 不需要注冊,不需要修改密碼,也不需要因為忘記密碼而重置密碼的操作了;

  2. 用戶不再需要記住密碼了,也不怕密碼泄露的問題了;

  3. 相對于密碼登錄其安全性明顯提高了。

接口數據的設計

接口的數據一般都采用JSON格式進行傳輸,不過,需要注意的是,JSON的值只有六種數據類型:

  • Number:整數或浮點數

  • String:字符串

  • Boolean:true 或 false

  • Array:數組包含著方括號[]中

  • Object:對象包含在大括號{}中

  • Null:空類型

所以,傳輸的數據類型不能超過這六種數據類型。以前,我們曾經試過傳輸Date類型,它會轉為類似于”2016年1月7日 09時17分42秒 GMT+08:00″這樣的字符串,這在轉換時會產生問題,不同的解析庫解析方式可能不同,有的可能會轉亂,有的可能直接異常了。要避免出錯,必須做特殊 處理,自己手動去做解析。為了根除這種問題,***的解決方案是用毫秒數表示日期。

另外,以前的項目中還出現過字符串的”true”和”false”,或者字符串的數字,甚至還出現過字符串的”null”,導致解析錯誤,尤其 是”null”,導致App奔潰,后來查了好久才查出來是該問題導致的。這都是因為服務端對數據沒處理好,導致有些數據轉為了字符串。所以,在客戶端,也 不能完全信任服務端傳回的數據都是對的,需要對所有異常情況都做相應處理。

服務器返回的數據結構,一般為:

  1.     code:0 
  2.     message: "success" 
  3.     data: { key1: value1, key2: value2, ... } 
  • code: 狀態碼,0表示成功,非0表示各種不同的錯誤

  • message: 描述信息,成功時為”success”,錯誤時則是錯誤信息

  • data: 成功時返回的數據,類型為對象或數據

不同錯誤需要定義不同的狀態碼,屬于客戶端的錯誤和服務端的錯誤也要區分,比如1XX表示客戶端的錯誤,2XX表示服務端的錯誤。這里舉幾個例子:

  • 0:成功

  • 100:請求錯誤

  • 101:缺少appKey

  • 102:缺少簽名

  • 103:缺少參數

  • 200:服務器出錯

  • 201:服務不可用

  • 202:服務器正在重啟

錯誤信息一般有兩種用途:一是客戶端開發人員調試時看具體是什么錯誤;二是作為App錯誤提示直接展示給用戶看。主要還是作為App錯誤提示,直接展示給用戶看的。所以,大部分都是簡短的提示信息。

data字段只在請求成功時才會有數據返回的。數據類型限定為對象或數組,當請求需要的數據為單個對象時則傳回對象,當請求需要的數據是列表時,則 為某個對象的數組。這里需要注意的就是,不要將data傳入字符串或數字,即使請求需要的數據只有一個,比如token,那返回的data應該為:

// 正確
data: { token: 123456 }

// 錯誤
data: 123456

接口版本的設計

接口不可能一成不變,在不停迭代中,總會發生變化。接口的變化一般會有幾種:

  • 數據的變化,比如增加了舊版本不支持的數據類型

  • 參數的變化,比如新增了參數

  • 接口的廢棄,不再使用該接口了

為了適應這些變化,必須得做接口版本的設計。實現上,一般有兩種做法:

  1. 每個接口有各自的版本,一般為接口添加個version的參數。

  2. 整個接口系統有統一的版本,一般在URL中添加版本號,比如http://api.domain.com/v2。

大部分情況下會采用***種方式,當某一個接口有變動時,在這個接口上疊加版本號,并兼容舊版本。App的新版本開發傳參時則將傳入新版本的version。

如果整個接口系統的根基都發生變動的話,比如微博API,從OAuth1.0升級到OAuth2.0,整個API都進行了升級。

有時候,一個接口的變動還會影響到其他接口,但做的時候不一定能發現。因此,***還要有一套完善的測試機制保證每次接口變更都能測試到所有相關層面。

寫在***

關于接口設計,暫時想到的就這么多了。各位看官看完覺得有遺漏或有哪些需要優化的歡迎提出一起討論。

責任編輯:王雪燕 來源: Keegan小鋼
相關推薦

2012-07-13 14:25:59

2018-10-29 11:41:22

架構MVCAndroid

2009-08-03 10:13:13

開發框架

2009-11-02 11:11:07

VB.NET OOP設

2018-09-18 09:28:05

PCB布線數字布線經驗

2011-09-09 09:50:40

Oracle

2009-01-15 09:43:51

Web架構設計緩存

2015-09-23 14:01:51

2017-11-17 07:06:27

互聯網分層架構APP

2021-07-21 16:30:38

iOSAPP架構

2011-08-15 10:27:48

2011-06-21 16:26:19

SEO內部優化

2015-09-16 10:13:16

游戲性能

2024-05-28 07:01:29

2015-10-16 14:35:05

SaaSCRM架構設計

2012-08-06 09:27:59

2009-09-14 15:04:44

2010-01-14 20:05:43

虛擬化數據中心

2013-04-25 09:41:33

網管高級網管網絡管理

2014-03-13 09:20:38

jQueryAngularJs
點贊
收藏

51CTO技術棧公眾號

97精品久久久久中文字幕 | 日本成a人片在线观看| 麻豆国产一区二区| 九九热99久久久国产盗摄| 艳妇乳肉豪妇荡乳xxx| 少妇精品视频一区二区免费看| 亚洲日本在线看| 国产不卡一区二区在线观看| 精品久久久久久久久久久久久久久久久久| 婷婷六月综合| 亚洲欧美色图片| a级大片免费看| 国产成人精品一区二三区在线观看 | 国产又粗又猛又爽又黄的视频小说| 一道本在线免费视频| 福利片在线看| 久久男人av| 在线一区二区观看| wwwwww欧美| av网在线观看| 日本中文字幕一区二区有限公司| 久操成人在线视频| av黄色在线免费观看| 99国产精品免费网站| 欧美三日本三级三级在线播放| 精品少妇人欧美激情在线观看| 99精品老司机免费视频| 97se狠狠狠综合亚洲狠狠| 成人免费视频a| 久久久久久久久久一级| 亚洲免费一区二区| 日韩精品在线第一页| 国产高清999| 电影亚洲一区| 色爱区综合激月婷婷| 成人性生活视频免费看| 成人日日夜夜| 中文字幕日本乱码精品影院| 欧美日韩国产综合视频在线| 人妻妺妺窝人体色www聚色窝| 国内不卡的二区三区中文字幕 | 北条麻妃国产九九精品视频| 国产精品老牛影院在线观看| youjizz亚洲女人| 久久99精品国产自在现线| 欧美成人三级电影在线| 在线观看免费看片| 精品国产亚洲一区二区三区| 精品视频色一区| 免费看污污网站| 亚洲四虎影院| 欧美中文字幕一区二区三区| 成人在线观看a| 欧美91看片特黄aaaa| 日韩欧美在线播放| 热久久精品国产| 丝袜美腿诱惑一区二区三区| 一本色道亚洲精品aⅴ| 青娱乐自拍偷拍| 范冰冰一级做a爰片久久毛片| 欧美视频裸体精品| 国产成人a亚洲精v品无码| 成人免费看黄| 欧洲人成人精品| 午夜精品中文字幕| 国产亚洲高清一区| 精品91自产拍在线观看一区| 日韩免费高清一区二区| 亚洲精品一级二级三级| 色爱精品视频一区| 疯狂试爱三2浴室激情视频| 午夜精品偷拍| 68精品国产免费久久久久久婷婷| 国产精品国产三级国产专业不 | 国产精品一卡二卡在线观看| 97人人模人人爽人人少妇| 韩国av在线免费观看| 久久亚区不卡日本| 在线一区高清| av在线私库| 日本韩国欧美三级| 亚洲一区二区偷拍| 亚洲97av| 欧美成人激情在线| 成人精品在线看| 老司机一区二区| 成人片在线免费看| 黄色片视频在线观看| 国产成人综合精品三级| 精品综合久久| 日本视频在线| 精品高清美女精品国产区| www.日本xxxx| 国内精彩免费自拍视频在线观看网址 | 超碰超碰人人人人精品| 欧美日本一区二区在线观看| 秘密基地免费观看完整版中文 | 成人日韩视频| 亚洲国内精品视频| 下面一进一出好爽视频| 免费日韩一区二区三区| 日韩中文在线中文网三级| 国产在线视频卡一卡二| 日韩av成人高清| 国产精品免费在线播放| 午夜视频在线观看网站| 五月婷婷综合网| 北条麻妃亚洲一区| 欧美亚洲激情| 欧美一区二区三区免费观看| 日产精品久久久久久久| 免费成人你懂的| 国产偷久久久精品专区| 日本中文字幕在线视频| 精品欧美国产一区二区三区| 天美一区二区三区| 色婷婷精品国产一区二区三区| 九色在线观看视频| 亚洲综合色自拍一区| 亚洲成人18| caoporn视频在线| 51精品视频一区二区三区| 午夜理伦三级做爰电影| 尤物网精品视频| 91亚洲精品在线| av一本在线| 一本色道久久综合亚洲91| 99re久久精品国产| 亚洲免费毛片| 久久久久久中文字幕| 国产精品人人爽| 国产精品日日摸夜夜摸av| 日韩精品视频久久| 日韩大尺度在线观看| 亚洲欧美精品一区| 日韩av在线播放观看| 高清不卡在线观看av| 久久av免费一区| 成人免费高清观看| 日韩精品一区二区三区三区免费 | 91一区二区三区四区| 国产成人av网址| 成人在线二区| 91搞黄在线观看| 国产肥白大熟妇bbbb视频| 国产欧美日韩亚洲一区二区三区| 国产高清自拍一区| 波多野结衣视频一区二区| 精品欧美一区二区三区精品久久| 丁香花五月激情| 国产盗摄一区二区三区| 少妇一晚三次一区二区三区| 日韩一区二区三区色| 欧美区在线播放| 亚洲国产精品18久久久久久| 亚洲国产精品久久人人爱蜜臀| 中文字幕天堂av| 野花国产精品入口| 乱一区二区三区在线播放| 国产精品迅雷| 中文字幕欧美在线| 国产精品天天操| 一区二区三区高清| 人妻体内射精一区二区三区| 一区二区三区国产在线| 日韩av影视| 亚洲欧美专区| 色综合五月天导航| 天天综合网天天综合| 日本精品视频一区二区| 久久噜噜色综合一区二区| 国产精品自拍网站| 9久久9毛片又大又硬又粗| 一区二区小说| 91在线视频成人| 搞黄网站在线看| 亚洲乱亚洲乱妇无码| 中日韩av在线| 一区二区在线观看免费| 中文字幕欧美人妻精品一区| 日韩成人精品一区二区| 91偷拍精品一区二区三区| 欧美巨大丰满猛性社交| 日韩免费视频一区| 久草视频在线观| 亚洲欧洲成人精品av97| 亚洲一区二区在线免费| 男人的天堂久久精品| 欧美激情亚洲天堂| 国产毛片一区二区三区| 久久久久女教师免费一区| 午夜视频福利在线观看| 欧美日精品一区视频| 久久精品这里有| 亚洲国产经典视频| 人妻av一区二区| 黄色资源网久久资源365| 9久久9毛片又大又硬又粗| 99久久九九| 麻豆精品蜜桃一区二区三区| 高清一区二区| 国产不卡av在线免费观看| 四虎影院观看视频在线观看| 亚洲人成在线观看| 国产77777| 欧美男男青年gay1069videost | 久久国产精品99国产| 黑人巨大国产9丨视频| 亚洲激情播播| 成人综合色站| 国产欧美日韩电影| 国产精品精品视频一区二区三区| av在线网页| 另类专区欧美制服同性| 在线观看中文字幕2021| 午夜精品爽啪视频| 国产极品国产极品| 国产精品久久网站| 人妻丰满熟妇aⅴ无码| 国产99久久精品| 亚洲综合123| 免费精品99久久国产综合精品| 亚洲熟妇无码一区二区三区| 欧美日韩亚洲一区三区| 亚洲最新免费视频| 欧美日韩国产在线观看网站| 久久精品国产第一区二区三区最新章节 | avove在线播放| 国产精品久线在线观看| 国产传媒国产传媒| 久久久蜜桃精品| 超碰97在线资源站| 成人涩涩免费视频| 人妻激情偷乱频一区二区三区| 国产精品1024| 樱花草www在线| 精品一区二区三区免费毛片爱| 色悠悠久久综合网| 日韩电影在线观看电影| 成人免费无码av| 久久久久久久波多野高潮日日| 青青草原av在线播放| 亚洲免费网站| 成年人视频在线免费| 日韩精彩视频在线观看| 日韩精品无码一区二区三区免费| 尤物在线精品| 亚洲 欧美 日韩 国产综合 在线 | 国产性生交xxxxx免费| 性色一区二区| 日韩一级片播放| 免费观看日韩电影| www.超碰97.com| 国产麻豆视频一区| 99久久久无码国产精品性波多 | 久久久久久久久一区二区| 欧美一区 二区| 欧美久久综合性欧美| 韩日一区二区三区| 一本色道久久综合亚洲精品婷婷| 成人影院中文字幕| 国产一区二区视频在线免费观看| 日韩高清影视在线观看| 日韩精品一区二区三区丰满| 999精品视频| 中文精品无码中文字幕无码专区| 亚洲免费大片| 日本www.色| 国产一区二区在线免费观看| 日韩女优在线视频| 久久这里只有精品6| 亚洲色图100p| 亚洲国产aⅴ成人精品无吗| 亚洲欧美自拍视频| 欧美精品少妇一区二区三区| 亚洲国产精品suv| 亚洲欧美日韩中文在线| av文字幕在线观看| 91av国产在线| www.久久草.com| 精品亚洲一区二区三区四区五区高| 欧美日韩国产高清电影| 日韩不卡视频一区二区| 国产亚洲午夜| 亚洲另类第一页| 成人av网站在线| 国产极品视频在线观看| 久久久亚洲国产美女国产盗摄| 少妇太紧太爽又黄又硬又爽小说| 亚洲男同性视频| 五月婷婷激情视频| 欧美一级视频精品观看| 牛牛影视精品影视| 色综合色综合网色综合| 日本一道高清亚洲日美韩| 国产不卡一区二区三区在线观看| 精品一级毛片| 男人天堂av片| 久久精品免费观看| 国产伦精品一区二区三区妓女| 亚洲欧美综合另类在线卡通| 国产午夜性春猛交ⅹxxx| 538在线一区二区精品国产| 人成在线免费视频| 日韩福利视频在线观看| 姝姝窝人体www聚色窝| 最好看的2019年中文视频| 国产精品论坛| 成人在线小视频| 精品久久影视| 国产免费黄色av| 国产不卡视频一区| 亚洲一区电影在线观看| 色综合 综合色| 天堂网av在线播放| 久久91精品国产91久久久| 99久久亚洲国产日韩美女| 久久伊人资源站| 日韩视频久久| 成人啪啪18免费游戏链接| 成+人+亚洲+综合天堂| 手机看片国产日韩| 色综合视频一区二区三区高清| 成人午夜视频一区二区播放| 久久精品电影网| 国产亚洲精彩久久| 五月天国产一区| 日韩精品高清不卡| 无码人妻精品一区二区三应用大全| 亚洲国产精品一区二区尤物区| 精品国自产在线观看| 亚洲精品mp4| 欧美bbbxxxxx| 99久久99久久| 欧美视频官网| 久久久男人的天堂| 一区二区三区久久久| 午夜精品久久久久久久第一页按摩 | 91久久在线视频| 99久久精品费精品国产风间由美 | 草莓视频18免费观看| 精品小视频在线| 神马电影网我不卡| 亚洲v国产v在线观看| 蜜桃免费网站一区二区三区| www.99热| 欧美日本国产视频| 粗大黑人巨茎大战欧美成人| 91九色视频在线| 欧美三区在线| 欧美熟妇精品黑人巨大一二三区| 色综合色狠狠综合色| 第一页在线观看| 国产在线视频2019最新视频| 亚洲一区二区| 俄罗斯黄色录像| 欧美日韩国产在线播放| 九色视频在线观看免费播放| 国产精品久久久久久久久免费看| 成人91在线| 9191在线视频| 天天操天天色综合| 国产香蕉视频在线看| 国产精品无av码在线观看| 一区二区三区午夜探花| 中文字幕在线国产| 欧美日韩一区二区三区 | 欧美黑人xxxⅹ高潮交| 91精品入口| 欧美 激情 在线| 国产精品乱码一区二区三区软件| 国产视频一二三四区| 午夜精品久久久久久久男人的天堂 | 性欧美xxx69hd高清| 视频一区亚洲| 国产福利一区在线观看| 国产精品人人人人| 日韩日本欧美亚洲| 成人在线tv视频| 午夜久久久精品| 亚洲一区二区三区中文字幕| 免费在线一级视频| 成人免费xxxxx在线观看| 亚洲精品极品| 五月天免费网站| 亚洲国产日韩欧美在线图片 | 亚洲欧美视频一区二区三区| av资源在线免费观看| 亚洲成人网在线| 久久亚洲资源中文字| 国产成a人亚洲精v品在线观看| 久久精品免费在线观看| 性猛交富婆╳xxx乱大交天津| 日产精品99久久久久久| 中文一区一区三区免费在线观看| 韩国无码一区二区三区精品| 67194成人在线观看| 久久青青视频| 农民人伦一区二区三区| 国产精品久久久久久久久图文区|