把內部接口快速變成開放接口的妙招
如果原來已經有一批內部的API接口,現在需要調整成對外開放的API接口,有沒快速的辦法,能即刻實現?最好是當天就能部署上線,對外開放使用的解決方案?
如果需要把內部接口變成開放接口,至少需要解決以下問題:
- 爲外部開發者提供註冊的頁面
- 開放指定的API接口權限給外部開發者
- 提供在線接口文檔
- 和內部API接口進行對接
- 使用新的對外域名,例如:open.xxx.com
選擇合適的工具和解決方案,能快速實現你想要的效果,並且最快當天就能上線。
零代碼/低代碼的API解決方案
我們先來看一個例子。
假設原來使用Java實現的某個內部接口是:Hello Wolrd示例接口,路徑是:/api/Hello/World。現在需要轉成外部API接口。下面介紹零代碼或低代碼的解決方案。
首先,進入接口大師的管理後臺-接口管理-可視化接口設計-添加接口。然後在接口設計類型選擇【接口對接API】,隨後在表單中依次填寫接口服務名稱、接口模塊、接口標題、接口參數、接口返回示例等,這些都是新API接口對外展示的內容。
關鍵的一步,是點擊頁面上的【生成代碼】,系統會自動根據你填寫的表單,生成和內部接口對接的PHP代碼。
我們把生成的代碼複製出來,類似:
<?php
namespace App\Api;
use App\Common\Api;
// use App\Domain\JavaHello as JavaHelloDomain;
/**
* 內部Java示例接口
*/
class JavaHello extends Api {
/**
* 接口參數規則配置
*/
public function getRules() {
$rules = parent::getRules();
$curRules = array(
'World' => array(
'city' => array (
'name' => 'city',
'type' => 'string',
'require' => true,
),
),
);
return array_merge($rules, $curRules);
}
/**
* 內部Java接口對接示例
* @desc 內部Java接口對接示例
*
*/
public function World() {
// 接口參數獲取
$city = $this->city; // 參數
// 結果返回
$rs =array();
// 獲取用戶ID,未登錄時異常返回
// $uid = $this->tryToGetUid();
// 獲取app_key,未指定時異常返回
// $appKey = $this->tryToGetAppKey();
// TODO: 實現你的業務邏輯……
// $domain = new JavaHelloDomain();
// API接口對接(內部接口,或上游接口)
$apiParams = array(
'city' => $city, //
);
// TODO: 接口地址,請更換成你需要請求的接口地址
$apiUrl = 'http://api.xxxx.com/';
// POST請求
$curl = new \PhalApi\CUrl();
$curlRs = $curl->post($apiUrl, $apiParams);
// GET請求
// $curlRs = $curl->get($apiUrl . (strpos($apiUrl, '?') ? '&' : '?') . http_build_query($apiParams));
$rs['backend_data_raw'] = $curlRs;
$rs['backend_data'] = json_decode($curlRs, true);
return $rs;
}
// 綁定數據庫模型
protected function getDataModel() {
return new \App\Model\JavaHello();
}
}
你只需要根據上面生成的代碼模板,把內部API接口的路徑,填寫到$apiUrl這個變量即可。你還可以補充和添加額外的請求參數。
下一步,保存和生成接口代碼,你可以在在線接口文檔看到剛剛生成的OpenAPI接口。
自動生成新的接口文檔如下:
通過在線測試,可以直接調用此API接口,例如返回以下數據:
接口大師v3.10.0版本更新
接口大師,是一套研發、管理和開放API接口的軟件源代碼和解決方案。
本次 v3.10.0 版本更新內容主要有:
PhalApi專業版 3.10.0 (2022-04)
- 1、註冊時支持同時創建默認應用,可配置
- 2、接口生成支持API對接模式
- 3、支持後臺套餐的搜索賬號和接口
- 4、後臺-訂單管理,支持訂單搜索和訂單經營統計
- 5、管理後臺-工單列表,優化顯示
- 6、token支持唯一性的判斷和配置
- 7、修復接口編輯,保存併發布時使用最新手工編寫的代碼
- 8、一些已知的bugfixed和細節優化
如何升級到接口大師v3.10.0?
在聯繫我們,獲取到最新版v3.10.0源代碼,源代碼後,本次版本更新的主要內容有:
注意!升級前,請注意原有的代碼備份!!
1、替換./public/platform目錄,更新Platform開放平臺的編譯包代碼(如果原來已經改動Platform源代碼,需要合併源碼後再編譯打包更新,可以使用git的分支合併進行新版本的對比和升級)
2、替換./public/admin目錄,更新Admin管理後臺的編譯包代碼(如果原來已經改動Admin源代碼,需要合併源碼後再編譯打包更新,可以使用git的分支合併進行新版本的對比和升級)
3、PHP源代碼更新
對比並替換./src/base目錄,對比並替換./src/admin目錄,對比並替換./src/platform目錄,對比並替換./public/api目錄。可以使用git的分支合併進行新版本的對比和升級。
4、數據庫更新
請見./data/phalapi_pro_v3.10.0.sql 數據庫文件變更,並執行。
5、配置更新,對比更新 ./src/config/app.php文件,主要添加了enable_app_and_user_unique_token等配置