API介面開發簡述示例

2021-07-29 23:13:10 字數 3073 閱讀 5521

先了解下 api :

1、api 比開發 web 更簡潔,但可能邏輯更複雜,api 只返回結果,也就是只完成資料輸出,不呈現頁面,

2、web 開發,更多的是 get 和 post 請求,api 還有 put、delete 請求

3、和 web 開發一樣,首先需要一些相關的引數,這些引數,都會由客戶端傳過來,也許是 get 也許是 post,這個需要開發團隊相互之間約定好,或者制定統一規範

4、有了引數,根據應用需求,完成資料處理,例如:獲取使用者資訊、發朋友圈、發訊息、一局遊戲結束資料提交等等

5、資料邏輯處理完之後,返回客戶端所需要用到的相關資料,例如:使用者資訊陣列、朋友圈列表、訊息狀態、遊戲結果資料等等,那資料是怎麼返給客戶端呢?常見有xml、json,設定相應的header並把要返回的資料直接列印出來即可

6、客戶端獲取到你返回的資料後,在客戶端本地和使用者進行互動

所以我們大概知道,api 其實不存在web領域的 mvc 架構模式,若要分層的,api 也只有 m 和 c 兩層,當然,後端可能會有更加複雜的架構!

通過下面乙個http協議的api例項來理解php怎麼開發api:

<?php

/*** 比較標準的介面輸出函式

* @param string $info 訊息

* @param integer $code 介面錯誤碼,很關鍵的引數

* @param array $data 附加資料

* $param string $location 重定向

* @return array

*/function var_json($info = '', $code = 10000, $data = array(), $location = '')

$a = empty($_get['a']) ? '' : $_get['a'];

$qq = empty($_get['qq']) ? 0 : intval($_get['qq']);

//假設這是資料來源,如mysql

$data = array();

$data[979136] = array('qq'=>979136, 'vip'=>5,'level'=>128, 'reg_time'=>1376523234, 'qb'=>300);

$data[979137] = array('qq'=>979137, 'vip'=>8,'level'=>101, 'reg_time'=>1377123144, 'qb'=>300);

preg_match('/^[a-za-z]+$/', $a) || var_json('非法呼叫');

isset($data[$qq]) || var_json('使用者不存在', 100001);

switch ($a)

介面輸出示例,返回的是一串json:

,

"location": ""

}

json具有很強的跨平台性,幾乎每種語言都有解析json的函式,下面是乙個php作為客戶端呼叫的示例:

if ($response === false) elseif ($httpcode != 200) else頁面輸出結果:

array(4) 

["location"]=>string(0) ""

}

實際專案中,我們在開發 api 時應該注意的幾個點(僅供參考)

1、單檔案實現多介面的形式有很多種,例如:if..elseif.. 或 switch 或 很多框架裡用到的統一入口通過呼叫類函式的形式實現

2、資料輸出建議使用json,json具有很強的跨平台性,大多程式語言都支援json解析,json正在逐步取代xml,成為網路資料的通用格式

3、為了保證介面安全,一定要加入鑑權體系

4、對於線上的api,務必關閉所有錯誤顯示,可以把錯誤寫到日誌裡,php中,可以通過 error_reporting(0) 遮蔽所有錯誤

這樣做的目的,一方面是保護介面安全,防止輸出不該列印的錯誤資訊

另一方面是保證輸出的是正確的資料格式,如json,假如不是標準的json格式,客戶端在解析時就會出錯,由此影響客戶端的正常運轉

7、不要隨便使用一些 php 開源框架,原因概括起來有兩點:

1)如6所述,客戶端一般對 api 響應速度有極高要求,目前php領域的開源框架非常多,根據筆者的了解,目前比較流行的框架,普遍做的比較重,而且基本都是為web而生,因此,框架多了很多 api 用不到的東西,框架在載入和執行冗餘檔案時,實際是在消耗你的效能

2)如4和5所述,框架對於web開發,是件很幸福的事,但對於 api 而言,你實在不敢想象它會給你出什麼岔子,因為很多框架並沒有全面的考慮到 api 場景

API 介面開發規範

api與使用者的通訊協議,總是使用https協議,確保互動資料的傳輸安全。應該盡量將api部署在專用網域名稱之下。如果確定api很簡單,不會有進一步擴充套件,可以考慮放在主網域名稱下。應該將api的版本號放入url。v 另一種做法是,將版本號放在http頭資訊中,但不如放入url方便和直觀。gith...

PHP開發API介面

在實際工作中,使用php寫api介面是經常做的,php寫好介面後,前台就可以通過鏈結獲取介面提供的資料,而返回的資料一般分為兩種情況,xml和json,在這個過程中,伺服器並不知道,請求的 是什麼,有可能是別人非法呼叫我們的介面,獲取資料,因此就要使用安全驗證。從圖中可以看得很清楚,前台想要呼叫介面...

API介面開發規範

整體規範建議採用restful方式來實施。協議 api與使用者的通訊協議,應該使用https協議,確保互動資料的安全傳輸。網域名稱 應該盡量將api部署在專用網域名稱下。如 api版本控制 方法一 將api的版本號放入uri,如 方法二 將版本號放在http頭資訊中。這種方法不如放入url中方便和直...