精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

日本一级片免费| 一区二区三区国产免费| 人妻少妇一区二区三区| 99riav1国产精品视频| 亚洲国产精品小视频| 久久综合久久色| av中文字幕在线观看| www.欧美色图| 91精品久久久久久综合乱菊| 精品视频一区二区在线观看| 国产一区二区三区四区二区| 91精品一区二区三区在线观看| 国产www免费| 一广人看www在线观看免费视频| 成人晚上爱看视频| 国产精品偷伦一区二区| 日本少妇性高潮| 国产精品久久观看| 精品亚洲aⅴ在线观看| 欧美国产在线一区| 日本精品不卡| 亚洲高清视频的网址| 亚洲一一在线| 黄色片免费在线| 成人免费视频视频| 亚洲va欧美va在线观看| 91青青草视频| 亚久久调教视频| 欧美高清视频免费观看| 美女网站视频色| 国产日产一区 | 亚洲欧美激情国产综合久久久| 日韩精品乱码免费| 97在线免费观看视频| a在线视频播放观看免费观看| 精品国产乱码久久久| 亚洲国产精品小视频| 精品人妻一区二区免费| 国产一区二区三区免费在线| 欧美日韩综合在线| 噼里啪啦国语在线观看免费版高清版| 欧美aaaaa性bbbbb小妇| 亚洲国产欧美另类丝袜| 国产免费一区二区三区四在线播放| 粉嫩av在线播放| 国产情人综合久久777777| 久久精品国产第一区二区三区最新章节| 性欧美videos另类hd| 黄网站免费久久| 成人日韩在线电影| 国产精品视频第一页| 蜜桃视频在线一区| 国产精品亚洲网站| 一区二区视频网| 免费在线欧美视频| 国产精品视频永久免费播放| 天堂av免费在线观看| 日本成人中文字幕| 国产精品亚洲欧美导航| 92久久精品一区二区| 久久9热精品视频| 91九色视频导航| 国产情侣av在线| 国产乱人伦偷精品视频免下载| 成人高清视频观看www| 国产精品久久久久久久久毛片 | yourporn在线观看视频| 欧美国产亚洲另类动漫| 亚洲蜜桃在线| 理论片午午伦夜理片在线播放| 亚洲人成亚洲人成在线观看图片 | 国内精品久久久久久野外| 中文字幕一区在线| av动漫在线免费观看| 黑人极品ⅴideos精品欧美棵| 亚洲福利视频一区| 国语对白做受xxxxx在线中国| 视频在线日韩| 欧美精品亚洲二区| 在线xxxxx| 自拍自偷一区二区三区| 在线看片第一页欧美| 国产精品国产三级国产传播| 亚洲黄色影院| 国产成人精品免高潮费视频| 亚洲一级黄色大片| 成人综合在线观看| 青青草成人网| 在线观看男女av免费网址| 性欧美大战久久久久久久久| 美女黄色片视频| 精品国产鲁一鲁****| 亚洲精品久久久久久下一站 | 一区二区三区在线视频观看58| 91免费黄视频| 精品久久在线| 欧美精品一区二区三区高清aⅴ | 4438全国亚洲精品在线观看视频| 成人小视频在线播放| 激情综合网最新| 激情五月综合色婷婷一区二区| 99re在线视频| 激情av一区二区| 三级一区二区三区| 日韩美女精品| 久久精品小视频| 无码人妻精品一区二区50| 精油按摩中文字幕久久| 美国av一区二区三区| 91小视频xxxx网站在线| 在线免费av一区| 性农村xxxxx小树林| 色999日韩| 97在线看福利| 丰满人妻一区二区三区免费视频 | 亚洲一区二区三区色| 国产不卡123| 91精品国产综合久久久蜜臀粉嫩| 国产特黄级aaaaa片免| 综合在线一区| 国产精品偷伦视频免费观看国产 | 亚洲综合五月天婷婷丁香| 99久久综合国产精品| 久久人妻无码一区二区| 欧美国产视频| 亚洲香蕉av在线一区二区三区| 国产一级理论片| 国产制服丝袜一区| 亚洲a∨一区二区三区| 自拍偷拍欧美视频| 精品国产91洋老外米糕| 美国黄色小视频| 久久97超碰色| 一区精品视频| 成人做爰免费视频免费看| 亚洲美女精品成人在线视频| 日本少妇在线观看| 成人激情免费网站| 国产乱人伦精品一区二区三区| 亚洲高清影院| 日韩亚洲欧美中文高清在线| 91丨九色丨海角社区| 久久品道一品道久久精品| 日本十八禁视频无遮挡| 精品欧美午夜寂寞影院| 欧美极品美女电影一区| 亚洲精品久久久久久动漫器材一区| 亚洲欧美日韩在线不卡| 天天干天天色天天干| 国产精品久久久久蜜臀| 91精品国产综合久久久久久久久 | 高清一区二区三区四区五区| 亚洲第一色视频| 亚洲午夜国产一区99re久久| 日本久久久久久久久久| 国产欧美短视频| 蜜桃视频在线观看91| 91av亚洲| 国产亚洲a∨片在线观看| 久久久久久久久久一级| 国产精品视频一二三| 成 人 黄 色 小说网站 s色| 999视频精品| 97视频热人人精品| zzzwww在线看片免费| 亚洲欧美精品一区二区| 国产99久久久久久免费看| 中文字幕制服丝袜成人av| 国产精品久久久久久9999| 午夜久久99| 狠狠色狠狠色综合人人| 极品美女一区| 久久精品小视频| 欧美一区二区三区成人片在线| 狠狠久久亚洲欧美专区| 免费成人深夜天涯网站| 激情综合网最新| 青草青青在线视频| 精品久久久久久久久久久aⅴ| 国产精品自拍小视频| 色网在线观看| 日韩电影免费观看中文字幕| 伊人网免费视频| 一区二区三区中文字幕精品精品| 无码人妻aⅴ一区二区三区 | 午夜精品福利一区二区三区av| 欧美色图亚洲激情| 裸体在线国模精品偷拍| 日本黄色片一级片| 精品久久精品| 国产精品12| 99久久亚洲国产日韩美女| 九九九久久久久久| 激情小说 在线视频| 欧美一区二区视频免费观看| 色网站在线播放| 国产精品乱人伦| 亚洲天堂av网站| 极品少妇一区二区三区精品视频| 337p粉嫩大胆噜噜噜鲁| 中文字幕亚洲精品乱码| 欧美久久久久久久| 亚洲专区**| 国产欧洲精品视频| 性国裸体高清亚洲| 欧美成人黑人xx视频免费观看| 免费福利在线观看| 欧美成人性战久久| 一级片aaaa| 色婷婷精品大在线视频| 国产一级特黄视频| 亚洲欧洲在线观看av| 精品无码一区二区三区| 国产成人无遮挡在线视频| 一区二区在线免费看| 校园激情久久| 久久久久久免费看| 女同性一区二区三区人了人一 | 91久久精品美女高潮| 神马电影网我不卡| 7777免费精品视频| 精品一性一色一乱农村| 色系列之999| 亚洲色图久久久| 99热这里只有精品5| 欧美日韩国产页| 三级影片在线看| 国产肉丝袜一区二区| 国产精品第七页| 成人性色生活片| 一级片免费在线观看视频| 美国欧美日韩国产在线播放| 91视频最新入口| 影音先锋久久| 日b视频免费观看| 自产国语精品视频| 亚洲在线视频一区二区| 国产一区二区区别| 青青草成人激情在线| 国产欧美日韩影院| 欧美一进一出视频| 你懂的视频欧美| 六月婷婷久久| 日韩精品免费一区二区夜夜嗨| 国产免费高清一区| 成人三级av在线| 国产v亚洲v天堂无码| 国内露脸中年夫妇交换精品| 国产一区二区在线网站| 精品中国亚洲| 精品一区二区不卡| 偷拍亚洲色图| 欧美午夜免费| 欧美日韩色图| 亚洲欧美成人一区| 久久人体视频| 精品日韩在线播放| 国产综合婷婷| 国内精品视频一区二区三区| 日韩午夜av| 欧美a在线视频| 丝袜亚洲另类丝袜在线| 一区二区xxx| 国产又粗又猛又爽又黄91精品| 污免费在线观看| 成人免费精品视频| 成人无码www在线看免费| 久久精品亚洲精品国产欧美kt∨ | 亚洲大片免费观看| 欧美在线小视频| 国产美女免费视频| 亚洲国产精品福利| 国产永久av在线| 超薄丝袜一区二区| а√在线中文在线新版| 日本精品久久电影| 四虎国产精品成人免费影视| 91久久爱成人| 一道在线中文一区二区三区| 一本一本a久久| 在线免费高清一区二区三区| 国产一区亚洲二区三区| 国精品**一区二区三区在线蜜桃 | 日韩视频免费大全中文字幕| 欧美极品少妇videossex| 国产国语刺激对白av不卡| av一级久久| 久久久水蜜桃| 91精品啪在线观看国产81旧版| 妞干网在线观看视频| 日本在线不卡视频| 性生交大片免费看l| 91色|porny| 欧洲第一无人区观看| 日韩欧美国产黄色| 国产黄色免费大片| 亚洲人成在线观看| 日本小视频在线免费观看| 国产91精品在线播放| 一区二区三区在线免费看| 亚洲福利av| 亚洲精品人人| 亚洲一区二区偷拍| 国产日韩欧美麻豆| 全部毛片永久免费看| 91精品国产综合久久婷婷香蕉| 男女视频在线观看免费| 久久久久久久久中文字幕| 91精品国产经典在线观看| 久久久久久精| 亚洲看片一区| 性鲍视频在线观看| 国产午夜亚洲精品午夜鲁丝片| 国产精品白浆一区二小说| 在线成人小视频| 91在线网址| 日本中文字幕成人| 精品国产导航| 999久久欧美人妻一区二区| 久久精品国产**网站演员| 9.1成人看片| 亚洲成av人影院在线观看网| 精品国产九九九| 色青青草原桃花久久综合| 台湾佬中文娱乐久久久| 国产一区二区在线网站| 红桃视频欧美| 国产精品二区视频| 亚洲丝袜精品丝袜在线| 一区二区视频网站| 在线观看国产精品日韩av| 欧美特大特白屁股xxxx| 久久国产手机看片| 99综合精品| 久久久老熟女一区二区三区91| 一区二区三区在线不卡| 国产乱码一区二区| 另类图片亚洲另类| 国产免费av国片精品草莓男男| 一级做a爰片久久| 美女视频一区在线观看| 天天操天天舔天天射| 欧美亚洲日本国产| 成人性爱视频在线观看| 国产精品激情av电影在线观看| 精品国产一区二区三区噜噜噜| 黄色高清无遮挡| 国产日韩综合av| 中文字幕在线观看你懂的| 在线观看国产精品91| 青青在线精品| 91成人在线视频观看| 国产精品99久久久| 成人免费看片98| 亚洲国产欧美久久| 在线手机中文字幕| 日韩高清三级| 久久国产精品色| 538精品在线观看| 精品免费国产二区三区| caoprom在线| 麻豆精品视频| 蜜臀av一区二区三区| 日韩欧美国产成人精品免费| 日韩免费观看高清完整版在线观看| 天天色天天射天天综合网| 国产丝袜不卡| 久久婷婷激情| 久久av红桃一区二区禁漫| 日韩欧美一级二级三级久久久| 免费在线看电影| 欧美一区二区视频在线| 美女一区二区三区在线观看| 欧美在线视频第一页| 精品成人a区在线观看| xx欧美视频| 久久久一二三四| 成人福利在线看| 中文字幕+乱码+中文| 欧美二区乱c黑人| 亚洲影院天堂中文av色| 一级黄色录像在线观看| 亚洲午夜羞羞片| youjizz在线播放| 97视频热人人精品| 日产欧产美韩系列久久99| 欧美精品99久久久| 亚洲深夜福利网站| 日韩精品中文字幕吗一区二区| 成年网站在线免费观看| 亚洲视频一区二区在线观看| 凸凹人妻人人澡人人添| 国产日韩欧美另类| 国产精品免费看| 成人黄色短视频| 日韩黄色高清视频| 欧美午夜网站| 在线观看免费污视频| 精品国产精品自拍| 91福利国产在线观看菠萝蜜|