开放内部API接口更省心省力省时间的解决方案
基于已有的内部API接口,或者现有的数据库,当需要给外部开放和提供API接口时,有哪些工具或解决方案,能快速实现企业自建API接口开放平台的需求?
如果打算从零开始,自建接口开放平台,无疑将会面临成本投入大、项目周期长、上线后对接不稳定、系统产品功能考虑不周等痛苦和问题。
于是,选择和使用符合产品需求、技术选型吻合的工具和解决方案,将会让你在接口平台搭建上事半功倍。
接口大师(PhalApi-Pro),就是这样一套研发、管理和开放API接口的软件源代码和解决方案,它基于PhalApi开源接口框架 Vue前后端分离,可用于快速搭建各类企业级接口平台。
接口大师的三大特色
接口大师,在开放平台的产品设计上,有完整的接口生态能力。
接口大师,极大降低了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源代码如下:
代码语言:javascript复制<?php
namespace AppApi;
use AppCommonDataApi as Api;
// use AppDomainClassNameAds 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 v1.0
*
*/
public function ActionNameAds() {
// 接口参数获取
// 接口参数获取
// 结果返回
$rs = array();
// 获取用户ID,未登录时异常返回
// $uid = $this->tryToGetUid();
// 获取app_key,未指定时异常返回
// $appKey = $this->tryToGetAppKey();
// TODO: 实现你的业务逻辑……
// $domain = new ClassNameAdsDomain();
// 动态查询参数
$whereParams = array(
);
// 获取数据库的表实例,可以切换你的数据库和其他表
$table = PhalApiDI()->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 AppModelClassNameAds();
}
}
你可以对上面的接口源代码进行调整和修改,也可以直接使用。核心是,可以修改以下代码片段,以便实现你的数据SQL查询逻辑。
代码语言:javascript复制 // 根据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、数据库更新
请见 ./data/phalapi_pro_v3.13.0.sql 数据库文件变更,并执行。
5、composer包更新
执行composer包更新命令:composer udpate。