Call API方式

如果你一個網站有很多個模組,有時候你可能會需要跨模組去call API有時候會需要call自己的API,以下我只是就我經歷過的專案來做介紹。

如果我們有很多個模組API要管理的話,我會在\app\Services\這底下建立不同的模組service,分別管理不同模組要call的API,像是我們iscar專案有很多個模組(ex:member、pm、brand、app、temple...等等),所以就會有不同的service來管理我要去那個模組call API的function。

以下是memberservice的一小部分,看看就好。

<?php
namespace App\Services;

define('QueryMember', config('global.query_member'));
define('ModifyMember', config('global.modify_member'));
define('Modacc', config('global.modacc'));
define('Modvrf', config('global.modvrf'));

class MemberService {

    /**
     * call member模組的API [QueryMember]
     * @param  [type] $md_mobile      [會員手機號碼]
     * @param  [type] $md_contactmail [會員電子信箱]
     * @global route  QueryMember     [member模組的API]
     * @global string Modacc          [模組帳號]
     * @global string Modvrf          [模組驗證碼]
     */
    public function callApiQueryMember($md_mobile,$md_contactmail){
        // 編輯要call API所需要傳入的值
        $arraydata['md_mobile'] = $md_mobile;
        $arraydata['md_contactmail'] = $md_contactmail;
        $arraydata['modacc'] = Modacc;
        $arraydata['modvrf'] = Modvrf;
        $url = QueryMember;
        // call API
        $request = \App\Library\CommonTools::curlModule($arraydata,$url);
        $request = $request['query_memberresult'];
        return $request;
    }

    /**
     * call member模組的API [ModifyMember]
     * @param  [type] $md_id          [會員代號]
     * @param  [type] $md_clienttype  [會員類型]
     * @global route  ModifyMember    [member模組的API]
     * @global string Modacc          [模組帳號]
     * @global string Modvrf          [模組驗證碼]
     */
    public function callApiModifyMember($md_id,$md_clienttype){
        // 編輯要call API所需要傳入的值
        $arraydata['md_id'] = $md_id;
        $arraydata['md_clienttype'] = $md_clienttype;
        $arraydata['modacc'] = Modacc;
        $arraydata['modvrf'] = Modvrf;
        $url = ModifyMember;
        // call API
        $request = \App\Library\CommonTools::curlModule($arraydata,$url);
        $request = $request['modify_memberresult'];
        return $request;
    }

}

上面的arraydata變數就是你api所需要傳入的值得陣列,然後url就是你要call的那隻api的route

然後大家應該會看到了我call API的方式是用Curl,cURL是一個利用URL語法在命令列下工作的檔案傳輸工具。

以下是我call API的curl function

這樣就大功告成了喔。

Last updated

Was this helpful?