日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何设计一个良好的接口?

發布時間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何设计一个良好的接口? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在設計接口時,有很多因素要考慮,如接口的業務定位,接口的安全性,接口的可擴展性、接口的穩定性、接口的跨域性、接口的協議規則、接口的路徑規則、接口單一原則、接口過濾和接口組合等諸多因素,本篇文章將簡要分析這些因素。

一 規范性建議

1.職責原則

在設計接口時,必須明確接口的職責,即接口類型,接口應解決什么業務問題等

2.單一性原則

在明確接口職責的條件下,盡量做到接口單一,即一個接口只做一件事,而非兩件以上。很多非資深接口設計者,在設計接口時,總認為接口所做的事越多,越牛叉,這是非常嚴重的錯誤認識。

3.協議規范

在設計接口時,應明確接口協議,是采用HTTP協議,HTTPS協議還是FTP協議,要根據具體情況來定。

  • FTP協議(File Transfer Protocol,簡稱FTP),是一套標準的文件傳輸協議,用于傳輸文件,如.txt,.csv等,一般文件傳輸,采用FTP協議

  • HTTP協議,適用一般對安全性要求比較低或沒要求的業務情景

  • HTTPS=HTTP+SSL,適用于對安全性要求較高的業務情景

4.路徑規則

由于api獲取的是一種資源,所以網址中盡量為名詞,而非動詞

/api/v1.0/Pruduct/2019
/api/v1.0/Users/2019

5.http請求方式

接口基本訪問協議:get(獲取),post(新增),put(修改)和delete(刪除)

  • get /users:列出所有用戶

  • get /users/id:根據id獲取用戶

  • post /user:新增用戶

  • put /user/id:根據用戶id更新用戶

  • delete /user/id:根據用戶id刪除用戶

6.域名

一般地,域名分為主域名和專有域名,主域名適合api長期不變或變化較少的業務,專有域名是解決具體的專有業務的

以百度舉例:

(1)主域名:www.baidu.com

(2)產品服務類

  • 百度文庫:https://wenku.baidu.com/

  • 百度知道:https://zhidao.baidu.com/

  • 百度資訊: https://zhidao.baidu.com/

(3)市場活動類

  • 百度公益:http://gongyi.baidu.com

  • 百度logo:http://logo.baidu.com/

  • 百度世界:https://baiduworld.baidu.com

7.跨域考慮

在明確域名的情況下,一定要考慮接口是否跨域,以及跨域應采用的技術手段等。

8.api版本

對于接口的url,應加版本號http://api.demo.com/vozvdkddzhkzd/,如 ,其中d表示版本號,如v1.0,v2.0

例子:獲取產品號為2019,版本號為v1.0的版本號的產品信息

/api/v1.0/Pruducts/2019

9.適度過濾信息

當記錄數比較多時(如 SELECT * FROM TBName),因適當添加一些條件對數據進行過濾,如TOP,分頁,分組,排序和WHERE條件等

下面是一些常見的參數。

  • ?limit=100:返回100條數據

  • ?offset=101:從第101條數據開始返回

  • ?page=10:指第10頁

  • per_page=100:每頁100條數據

  • ?sortby=name:排序字段

  • ?order=desc:降序

  • ?group=groupName:分組

  • ?producy_type=1:篩選條件

10.返回數據格式

返回數據格式,一般包括三個字段:

(1)失敗情況(狀態碼、錯誤碼和錯誤描述)

{ “status”:0,//狀態碼?0-表示失敗,1-表示成功 “error_code”:”2003”,//錯誤碼,一般在設計時定義 “error_des”:”身份驗證失敗”//錯誤描述,一般在設計時定義 }

(2)成功情況(標識id,數據對象,狀態碼)

{”sid“:”sh20190111”,//token?id”users“:{”id“:”al201901111341”,//用戶id“name”:”Alan_beijing”,//用戶名“addr”:”用戶地址” },“status”:1//狀態碼?0-表示失敗,1-表示成功 }

11.安全性原則

接口暴露的考慮,接口并發量的考慮,接口防攻擊的考慮,接口跨域的考慮等

12.可擴展性原則

在設計接口時,充分考慮接口的可擴展性。

13.定義api界限

任何api,從權限上,可歸結為匿名api和非匿名api,前者不需要驗證,后者需要驗證

14.定義api返回碼

在api設計時,要定好api返回碼,如

  • 1 --授權過期

  • 404--未找到資源

  • 500--內部服務器錯誤

  • 600--賬號被鎖

二 反規范性建議

存在這樣一種業務場景:某個接口需要返回多個api接口組合的結果 ,在類似的業務場景下,所設計的接口,具有一定的反規范性。

1.Request

data:[{url:'api1',type:'get',data:{...}},{url:'api2',type:'get',data:{...}}, ]

2.Response

{status:0,msg:'',data:[{status:1,msg:'',data:[]},{status:1,msg:'',data:{}}] }

三 實例

假設存在這樣一個一個業務:一個ERP系統,需要提供兩個接口,一個是用戶訪問接口(需要驗證),另一個是用戶注冊接口(不需要驗證)。

根據本篇文章一,二部分的建議,我們來設計滿足該業務需求的接口

(一)定義統一參數

1.定義統一輸入參數

2.定義統一輸出參數

3.定義統一錯誤碼

(二)定義接口授權類別

如下為定義接口授權類別

(三)用戶接口

1.用戶注冊

2.Request

3.Response

4.code示例

Request: {"mobile":13636595499,"verify_code":"987654","pwd":"123456" }Response: (1)error {"status":0,"error_code":1001,"error_desc":"手機驗證碼已失效" } (2)succed {"sid":"sh201901141529","uid":1,"status":1 }

(四)用戶登錄

1.登錄接口概述

2.Request

3.Response

4.Code

Response: 1.error {"status":0,"error_code":1002,"error_desc":"密碼錯誤" } 2.succeed {"sid":"sh201901141529","user":{"id":1,"username":"",age:0,gender:0},"status":1 }

總結

以上是生活随笔為你收集整理的如何设计一个良好的接口?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美成年人 | xx性欧美肥妇精品久久久久久 | 四虎影视永久免费 | 亚洲制服丝袜诱惑 | 视频在线中文字幕 | 毛片在线免费播放 | 国产少妇自拍 | 国产精品自产拍高潮在线观看 | 精品久久久国产 | 香蕉免费在线视频 | xx在线视频 | 青青草视频免费看 | 亚洲精品一区二区三区精华液 | 国产午夜无码视频在线观看 | 亚洲综合免费观看高清完整版 | 91黄瓜视频| 男人天堂资源 | 日韩a级片在线观看 | 四虎在线免费观看视频 | 涩涩视频在线观看免费 | 肉丝袜脚交视频一区二区 | 男人的天堂av女优 | 成年人视频网 | 伊人久久成人网 | 日韩欧美视频免费在线观看 | 三级国产三级在线 | 久久久久久久久97 | 亚洲人吸女人奶水 | 一级美女大片 | 熟妇人妻中文字幕无码老熟妇 | 亚洲一区二区观看 | 欧美毛茸茸| 天堂中文在线观看视频 | 日本资源在线 | 国产极品视频 | 99午夜| 日韩精品乱码 | 二区在线视频 | 狠狠干狠狠艹 | 99热这里只有精品66 | 国产亚洲精品久久久久久打不开 | 丰满岳乱妇一区二区 | 张柏芝54张无删码视频 | 亚洲一区二区在线免费观看 | 淫综合网| 欧美日韩一区二区在线 | 免费一级一片 | 动漫精品一区二区三区 | 中文字幕人妻一区 | 黑人一级视频 | 欧美成人手机在线 | 99riAv国产精品无码鲁大师 | 亚洲精品在线免费看 | 欧美日韩激情网 | 欧美午夜精品一区二区三区电影 | 日韩精品免费观看 | 久久久久九九九九 | 激情五月综合色婷婷一区二区 | 亚洲av日韩av高潮潮喷无码 | 亚洲一区二区三区三州 | 丝袜在线视频 | 久久精品在线视频 | 99国产精品久久久久99打野战 | 偷拍第一页 | 精品黑人一区二区三区观看时间 | 中国精品久久 | 欧美一级黑人 | 免费三级网站 | 欧美作爱视频 | 国产吞精囗交免费视频 | 成人玩具h视频 | 欧美日韩国产片 | 国产区精品区 | 日韩人妻无码一区二区三区 | 狠狠躁夜夜 | 男人的天堂毛片 | 久色在线 | 美女性生活视频 | 久久久久久欧美 | 伊人激情综合 | 青青草视频国产 | 欧美日韩www| 亚洲欧美激情另类 | 软萌小仙自慰喷白浆 | 韩国视频一区 | 国产又爽又黄的激情精品视频 | 男女高潮网站 | 年代下乡啪啪h文 | 日本在线第一页 | 久久一 | 中文字幕精品一区 | 观看毛片 | 亚洲在线网站 | 国产一卡二卡 | 在线观看免费av片 | 日韩二区三区 | 人妻系列一区 | 日韩免费在线视频观看 | 国产亚洲制服 |