零代码/低代码,把内部接口变成OpenAPI开放接口的妙招

把内部接口快速变成开放接口的妙招

如果原来已经有一批内部的API接口,现在需要调整成对外开放的API接口,有没快速的办法,能即刻实现?最好是当天就能部署上线,对外开放使用的解决方案?

如果需要把内部接口变成开放接口,至少需要解决以下问题:

  • 为外部开发者提供注册的页面
  • 开放指定的API接口权限给外部开发者
  • 提供在线接口文档
  • 和内部API接口进行对接
  • 使用新的对外域名,例如:open.xxx.com

选择合适的工具和解决方案,能快速实现你想要的效果,并且最快当天就能上线。

零代码/低代码的API解决方案

我们先来看一个例子。

假设原来使用Java实现的某个内部接口是:Hello Wolrd示例接口,路径是:/api/Hello/World。现在需要转成外部API接口。下面介绍零代码或低代码的解决方案。

首先,进入接口大师的管理后台-接口管理-可视化接口设计-添加接口。然后在接口设计类型选择【接口对接API】,随后在表单中依次填写接口服务名称、接口模块、接口标题、接口参数、接口返回示例等,这些都是新API接口对外展示的内容。

零代码/低代码,把内部接口变成OpenAPI开放接口的妙招

关键的一步,是点击页面上的【生成代码】,系统会自动根据你填写的表单,生成和内部接口对接的PHP代码。

零代码/低代码,把内部接口变成OpenAPI开放接口的妙招

我们把生成的代码复制出来,类似:

<?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开放接口的妙招

下一步,保存和生成接口代码,你可以在在线接口文档看到刚刚生成的OpenAPI接口。

零代码/低代码,把内部接口变成OpenAPI开放接口的妙招

自动生成新的接口文档如下:

零代码/低代码,把内部接口变成OpenAPI开放接口的妙招

通过在线测试,可以直接调用此API接口,例如返回以下数据:

零代码/低代码,把内部接口变成OpenAPI开放接口的妙招

接口大师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等配置

猜你喜欢

转载自juejin.im/post/7083404063924027422