接口大師v3.10.0 零代碼/低代碼,把內(nèi)部接口變成OpenAPI開(kāi)放接口的妙招
把內(nèi)部接口快速變成開(kāi)放接口的妙招
如果原來(lái)已經(jīng)有一批內(nèi)部的API接口,現(xiàn)在需要調(diào)整成對(duì)外開(kāi)放的API接口,有沒(méi)快速的辦法,能即刻實(shí)現(xiàn)?最好是當(dāng)天就能部署上線,對(duì)外開(kāi)放使用的解決方案?
如果需要把內(nèi)部接口變成開(kāi)放接口,至少需要解決以下問(wèn)題:
為外部開(kāi)發(fā)者提供注冊(cè)的頁(yè)面
開(kāi)放指定的API接口權(quán)限給外部開(kāi)發(fā)者
提供在線接口文檔
和內(nèi)部API接口進(jìn)行對(duì)接
使用新的對(duì)外域名,例如:open.xxx.com
選擇合適的工具和解決方案,能快速實(shí)現(xiàn)你想要的效果,并且最快當(dāng)天就能上線。
零代碼/低代碼的API解決方案
我們先來(lái)看一個(gè)例子。
假設(shè)原來(lái)使用Java實(shí)現(xiàn)的某個(gè)內(nèi)部接口是:Hello Wolrd示例接口,路徑是:/api/Hello/World?,F(xiàn)在需要轉(zhuǎn)成外部API接口。下面介紹零代碼或低代碼的解決方案。
首先,進(jìn)入接口大師的管理后臺(tái)-接口管理-可視化接口設(shè)計(jì)-添加接口。然后在接口設(shè)計(jì)類(lèi)型選擇【接口對(duì)接API】,隨后在表單中依次填寫(xiě)接口服務(wù)名稱、接口模塊、接口標(biāo)題、接口參數(shù)、接口返回示例等,這些都是新API接口對(duì)外展示的內(nèi)容。

關(guān)鍵的一步,是點(diǎn)擊頁(yè)面上的【生成代碼】,系統(tǒng)會(huì)自動(dòng)根據(jù)你填寫(xiě)的表單,生成和內(nèi)部接口對(duì)接的PHP代碼。

我們把生成的代碼復(fù)制出來(lái),類(lèi)似:
namespace App\Api;
use App\Common\Api;
// use App\Domain\JavaHello as JavaHelloDomain;
/**
* 內(nèi)部Java示例接口
*/
class JavaHello extends Api {
/**
* 接口參數(shù)規(guī)則配置
*/
public function getRules() {
$rules = parent::getRules();
$curRules = array(
'World' => array(
'city' => array (
'name' => 'city',
'type' => 'string',
'require' => true,
),
),
);
return array_merge($rules, $curRules);
}
/**
* 內(nèi)部Java接口對(duì)接示例
* @desc 內(nèi)部Java接口對(duì)接示例
*
*/
public function World() {
// 接口參數(shù)獲取
$city = $this->city; // 參數(shù)
// 結(jié)果返回
$rs =array();
// 獲取用戶ID,未登錄時(shí)異常返回
// $uid = $this->tryToGetUid();
// 獲取app_key,未指定時(shí)異常返回
// $appKey = $this->tryToGetAppKey();
// TODO: 實(shí)現(xiàn)你的業(yè)務(wù)邏輯……
// $domain = new JavaHelloDomain();
// API接口對(duì)接(內(nèi)部接口,或上游接口)
$apiParams = array(
'city' => $city, //
);
// TODO: 接口地址,請(qǐng)更換成你需要請(qǐng)求的接口地址
$apiUrl = 'http://api.xxxx.com/';
// POST請(qǐng)求
$curl = new \PhalApi\CUrl();
$curlRs = $curl->post($apiUrl, $apiParams);
// GET請(qǐng)求
// $curlRs = $curl->get($apiUrl . (strpos($apiUrl, '?') ? '&' : '?') . http_build_query($apiParams));
$rs['backend_data_raw'] = $curlRs;
$rs['backend_data'] = json_decode($curlRs, true);
return $rs;
}
// 綁定數(shù)據(jù)庫(kù)模型
protected function getDataModel() {
return new \App\Model\JavaHello();
}
}你只需要根據(jù)上面生成的代碼模板,把內(nèi)部API接口的路徑,填寫(xiě)到$apiUrl這個(gè)變量即可。你還可以補(bǔ)充和添加額外的請(qǐng)求參數(shù)。

下一步,保存和生成接口代碼,你可以在在線接口文檔看到剛剛生成的OpenAPI接口。

自動(dòng)生成新的接口文檔如下:

通過(guò)在線測(cè)試,可以直接調(diào)用此API接口,例如返回以下數(shù)據(jù):

接口大師v3.10.0版本更新
接口大師,是一套研發(fā)、管理和開(kāi)放API接口的軟件源代碼和解決方案。
本次 v3.10.0 版本更新內(nèi)容主要有:
PhalApi專業(yè)版 3.10.0 (2022-04)
1、注冊(cè)時(shí)支持同時(shí)創(chuàng)建默認(rèn)應(yīng)用,可配置
2、接口生成支持API對(duì)接模式
3、支持后臺(tái)套餐的搜索賬號(hào)和接口
4、后臺(tái)-訂單管理,支持訂單搜索和訂單經(jīng)營(yíng)統(tǒng)計(jì)
5、管理后臺(tái)-工單列表,優(yōu)化顯示
6、token支持唯一性的判斷和配置
7、修復(fù)接口編輯,保存并發(fā)布時(shí)使用最新手工編寫(xiě)的代碼
8、一些已知的bugfixed和細(xì)節(jié)優(yōu)化
如何升級(jí)到接口大師v3.10.0?
在聯(lián)系我們,獲取到最新版v3.10.0源代碼,源代碼后,本次版本更新的主要內(nèi)容有:
注意!升級(jí)前,請(qǐng)注意原有的代碼備份!!
1、替換./public/platform目錄,更新Platform開(kāi)放平臺(tái)的編譯包代碼(如果原來(lái)已經(jīng)改動(dòng)Platform源代碼,需要合并源碼后再編譯打包更新,可以使用git的分支合并進(jìn)行新版本的對(duì)比和升級(jí))
2、替換./public/admin目錄,更新Admin管理后臺(tái)的編譯包代碼(如果原來(lái)已經(jīng)改動(dòng)Admin源代碼,需要合并源碼后再編譯打包更新,可以使用git的分支合并進(jìn)行新版本的對(duì)比和升級(jí))
3、PHP源代碼更新
對(duì)比并替換./src/base目錄,對(duì)比并替換./src/admin目錄,對(duì)比并替換./src/platform目錄,對(duì)比并替換./public/api目錄??梢允褂胓it的分支合并進(jìn)行新版本的對(duì)比和升級(jí)。
4、數(shù)據(jù)庫(kù)更新
請(qǐng)見(jiàn)./data/phalapi_pro_v3.10.0.sql 數(shù)據(jù)庫(kù)文件變更,并執(zhí)行。
5、配置更新,對(duì)比更新 ./src/config/app.php文件,主要添加了enable_app_and_user_unique_token等配置
