零代碼/低代碼,把內部接口變成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等配置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章