日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一、規(guī)范性建議

1.職責原則

在設(shè)計接口時,必須明確接口的職責,即接口類型,接口應(yīng)解決什么業(yè)務(wù)問題等

2.單一性原則

在明確接口職責的條件下,盡量做到接口單一,即一個接口只做一件事,而非兩件以上。

很多非資深接口設(shè)計者,在設(shè)計接口時,總認為接口所做的事越多,越牛叉,這是非常嚴重的錯誤認識。

3.協(xié)議規(guī)范

在設(shè)計接口時,應(yīng)明確接口協(xié)議,是采用HTTP協(xié)議,HTTPS協(xié)議還是FTP協(xié)議,要根據(jù)具體情況來定。

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

(2)HTTP協(xié)議,適用一般對安全性要求比較低或沒要求的業(yè)務(wù)情景

(3)HTTPS=HTTP+SSL,適用于對安全性要求較高的業(yè)務(wù)情景

4.路徑規(guī)則

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

/api/v1.0/Product/2019

/api/v1.0/Users/2019

5.http請求方式

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

get /users:列出所有用戶

get /users/id:根據(jù)id獲取用戶

post /user:新增用戶

put /user/id:根據(jù)用戶id更新用戶

delete /user/id:根據(jù)用戶id刪除用戶

6.域名

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

以百度舉例:

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

(2)產(chǎn)品服務(wù)類

百度文庫: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.跨域考慮

在明確域名的情況下,一定要考慮接口是否跨域,以及跨域應(yīng)采用的技術(shù)手段等

8.api版本

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

例子:獲取產(chǎn)品號為2019,版本號為v1.0的版本號的產(chǎn)品信息

/api/v1.0/Pruducts/2019

9.適度過濾信息

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

下面是一些常見的參數(shù)。

?limit=100:返回100條數(shù)據(jù)

?offset=101:從第101條數(shù)據(jù)開始返回

?page=10:指第10頁

per_page=100:每頁100條數(shù)據(jù)

?sortby=name:排序字段

?order=desc:降序

?group=groupName:分組

?producy_type=1:篩選條件

10.返回數(shù)據(jù)格式

返回數(shù)據(jù)格式,一般包括三個字段:

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

 

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

(2)成功情況(標識id,數(shù)據(jù)對象,狀態(tài)碼)

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

11.安全性原則

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

12.可擴展性原則

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

13.定義api界限

任何api,從權(quán)限上,可歸結(jié)為匿名api和非匿名api,前者不需要驗證,后者需要驗證

14.定義api返回碼

在api設(shè)計時,要定好api返回碼,如

  • 1 --授權(quán)過期
  • 404--未找到資源
  • 500--內(nèi)部服務(wù)器錯誤
  • 600--賬號被鎖

二 、反規(guī)范性建議

存在這樣一種業(yè)務(wù)場景:某個接口需要返回多個api接口組合的結(jié)果 ,在類似的業(yè)務(wù)場景下,所設(shè)計的接口,具有一定的反規(guī)范性。

1.Request

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

2.Responce

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

三 實例

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

根據(jù)本篇文章一,二部分的建議,我們來設(shè)計滿足該業(yè)務(wù)需求的接口

(一)定義統(tǒng)一參數(shù)

1.定義統(tǒng)一輸入?yún)?shù)

Java程序員必備軟素質(zhì):如何優(yōu)雅的設(shè)計系統(tǒng)接口?

 

2.定義統(tǒng)一輸出參數(shù)

Java程序員必備軟素質(zhì):如何優(yōu)雅的設(shè)計系統(tǒng)接口?

 

3.定義統(tǒng)一錯誤碼

Java程序員必備軟素質(zhì):如何優(yōu)雅的設(shè)計系統(tǒng)接口?

 

(二)定義接口授權(quán)類別

如下為定義接口授權(quán)類別

Java程序員必備軟素質(zhì):如何優(yōu)雅的設(shè)計系統(tǒng)接口?

 

(三)用戶接口

1.用戶注冊

Java程序員必備軟素質(zhì):如何優(yōu)雅的設(shè)計系統(tǒng)接口?

 

2.Request

Java程序員必備軟素質(zhì):如何優(yōu)雅的設(shè)計系統(tǒng)接口?

 

3.Responce

Java程序員必備軟素質(zhì):如何優(yōu)雅的設(shè)計系統(tǒng)接口?

 

4.code示例

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

(四)用戶登錄

1.登錄接口概述

Java程序員必備軟素質(zhì):如何優(yōu)雅的設(shè)計系統(tǒng)接口?

 

2.Request

Java程序員必備軟素質(zhì):如何優(yōu)雅的設(shè)計系統(tǒng)接口?

 

3.Responce

Java程序員必備軟素質(zhì):如何優(yōu)雅的設(shè)計系統(tǒng)接口?

 

4.Code

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

分享到:
標簽:接口 系統(tǒng) Java
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定