開放内部API接口更省心省力省時間的解決方案
基于已有的内部API接口,或者現有的資料庫,當需要給外部開放和提供API接口時,有哪些工具或解決方案,能快速實作企業自建API接口開放平台的需求?
如果打算從零開始,自建接口開放平台,無疑将會面臨成本投入大、項目周期長、上線後對接不穩定、系統産品功能考慮不周等痛苦和問題。
于是,選擇和使用符合産品需求、技術選型吻合的工具和解決方案,将會讓你在接口平台搭建上事半功倍。
接口大師(PhalApi-Pro),就是這樣一套研發、管理和開放API接口的軟體源代碼和解決方案,它基于PhalApi開源接口架構+Vue前後端分離,可用于快速搭建各類企業級接口平台。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAnYldHL0FWby9mZvwFN4ETMfdHLkVGepZ2XtxSZ6l2clJ3LcV2Zh1Wa9M3clN2byBXLzN3btgHL9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yM5EGO0YjM2IzMmN2YyYzX4UTNwITMyEzLcdDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
接口大師的三大特色
接口大師,在開放平台的産品設計上,有完整的接口生态能力。
接口大師,極大降低了API接口開發的難度和時間,讓技術人員可以更專注于API接口本身的業務開發。除此之外,它還提供了接口代碼線上生成器、支援swagger導入、自動生成線上接口文檔、支援一鍵部署安排(包括Windows/Linux/Docker/國産系統等)。
經過多年的經驗總結,企業開放接口的内部驅動力來分析,主要來自三個方面:
- 第一,基于企業内部已有的API接口,進行選擇性對外開放;
- 第二,基于企業内部已有的資料庫業務資料,進行部分資料的共享和自動化對接;
- 第三,基于新接口功能的開放、提供和服務。
結合這三大内部驅動力和開放APi接口最常用的開發模式,接口大師提供了三種快速生成、開發和開放API接口的特色能力。
- 特色1:一鍵導入swagger,即刻開放内部APi接口
- 特色2:資料庫動态配置,輕松開放資料API接口
- 特色3:普通API接口源代碼線上生成器
特色1:一鍵導入swagger,即刻開放内部APi接口
在API接口管理背景,可以一鍵導入swaager.json檔案,然後選擇性地開放你的API接口。
導入前的swagger接口清單:
上傳導入時,勾選需要開放的swagger接口:
導入後,對API接口的二次開發和調整:
前台開放接口文檔的浏覽效果,類似如下:
外部開發者注冊後,可以檢視自己已經授權的API接口,并根據接口文檔進行接口的調用。
最後,接口管理背景可以檢視和統計開發者的接口流量使用情況,對接口進行權限配置設定、配額設定、IP白名單設定、應用有效日期、接口流量包、接口流量統計等進行管理。
例如,接口管理背景的首頁統計。
特色2:資料庫動态配置,輕松開放資料API接口
接口大師,支援:MySQL、Sql Server、Oracle、PostgreSQL等常用資料庫。
如果需要快速開放你内部的資料庫資料給外部開發者,可以先動态配置好你的資料庫,然後再快速生成資料庫的API開放接口。全程操作支援界面化操作,以及低代碼的開發方式,不需要專業的後端開發工程師,根據教程配置和使用,即可實作程式設計。
首先,添加你的資料庫配置。進入資料庫配置管理,
添加新資料庫配置,根據資料庫配置表單填寫,并測試資料庫連接配接是否正常。
配置好你的資料庫後,檢查你的資料庫是否正确。
然後,進入接口管理,并添加新接口。在接口設計類型時,選擇【生成資料庫表接口API】,然後選擇你的資料庫,以及對應的資料庫表。根據提示,補充其他接口的開放資訊,例如接口的參數、接口的請求方式等。
确認沒問題後,點選生成代碼,儲存草稿。
可以看到,系統自動生成的接口PHP源代碼如下:
<?php
namespace App\Api;
use App\Common\DataApi as Api;
// use App\Domain\ClassNameAds as ClassNameAdsDomain;
/**
* 請輸入接口子產品Ads
*/
class ClassNameAds extends Api {
/**
* 接口參數規則配置
*/
public function getRules(){
$rules = parent::getRules();
$curRules = array(
'ActionNameAds' => array(
//
),
);
return array_merge($rules, $curRules);
}
/**
* 請輸入interface_title
* @desc 請輸入接口功能描述
* @version
public function ActionNameAds(){
// 接口參數擷取
// 接口參數擷取
// 結果傳回
$rs = array();
// 擷取使用者ID,未登入時異常傳回
// $uid = $this->tryToGetUid();
// 擷取app_key,未指定時異常傳回
// $appKey = $this->tryToGetAppKey();
// TODO:
// $domain = new ClassNameAdsDomain();
// 動态查詢參數
$whereParams = array(
);
// 擷取資料庫的表執行個體,可以切換你的資料庫和其他表
$table = \PhalApi\DI()->db_yesdev_db_dev->pp_ads;
// 根據SQL查詢資料庫,需要帶表字首
// 更多資料庫操作請見:http://docs.phalapi.net/#/v2.0/database-usage
$sql = 'SELECT * FROM pp_ads WHERE 1=1 LIMIT 0, 100';
$rows = $table->queryAll($sql, $whereParams);
// 對資料的加工處理
foreach ($rows as &$itRef) {
// 對每一行資料的處理……
// $itRef['id'] = $itRef['id'];
}
// 傳回資料
$rs['rows'] = $rows;
return $rs;
}
// 綁定資料庫模型
protected function getDataModel(){
return new \App\Model\ClassNameAds();
}
}
你可以對上面的接口源代碼進行調整和修改,也可以直接使用。核心是,可以修改以下代碼片段,以便實作你的資料SQL查詢邏輯。
// 根據SQL查詢資料庫,需要帶表字首
// 更多資料庫操作請見:http://docs.phalapi.net/#/v2.0/database-usage
$sql = 'SELECT * FROM pp_ads WHERE 1=1 LIMIT 0, 100';
$rows = $table->queryAll($sql, $whereParams);
接口資料的SQL查詢和操作确認後,進行接口的釋出。如果選擇了CURD接口,系統會同時提供預設的增删改查接口。在接口清單你将可以看到類似以下的資料API接口。
進入到剛才新建立的資料API接口文檔,可以檢視接口文檔,以及進行線上接口測試。
後續的接口使用、管理和前面類似,不再贅述。
特色3:普通API接口源代碼線上生成器
最後,如果是需要開發和開放新的接口功能和接口服務,可以在接口源代碼線上生成器中,選擇普通API接口,并且進行線上接口程式設計。
如果需要進行源代碼的接口快速開發,可以參考 PhalApi Pro 技術文檔。
或者參考PhalApi開源接口架構(https://www.phalapi.net/)的開發文檔。
接口大師 v3.13 版本釋出與更新的内容
本次 v3.13.0 版本更新内容主要有:
PhalApi專業版 3.13.0 (2022-07)
- 支援MySQL動态資料庫源管理和配置、使用,DI資料庫服務使用延時初始化,保證資料庫連接配接性能
- 完善管理背景的菜單權限配置
- 開放平台接口權限狀态同步與優化
- 支援API接口版本@version配置和顯示、以及請求方式的文檔顯示優化
- 支援swaager批量導入,支援多個接口的勾選、覆寫導入和快速釋出
- 管理背景統計增加表格合計
- api開發工具優化,生成資料API接口時可以選擇資料庫和資料庫表
- 一些已知的bugfixed和産品優化
- 優化修複:
- 1、生成資料接口Api時,支援駝峰類名與蛇形命名法的資料庫表名關聯
- 2、低代碼接口開發,文案調整,以及生成HTTP網關接口API時,微調生成的接口模闆
- 3、接口低代碼開發,支援GET/POST方法設定
- 4、接口套餐建立後,不可更改套餐類型
- 5、支援Oracle資料庫連接配接
如何更新到接口大師v3.13 新版本?
在擷取到最新版v3.13.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、資料庫更新