Go to file
2018-06-22 20:21:08 +08:00
src 将每个服务的 client 改为单例,修正重入问题 2018-06-22 20:21:08 +08:00
.gitignore init 2018-03-01 17:57:25 +08:00
composer.json namespace 2018-03-19 16:36:30 +08:00
composer.lock init 2018-03-01 17:57:25 +08:00
README.md Update README.md 2018-03-19 16:49:18 +08:00

Internal API Server/Client(PHP版)

该项目使用 composer 来完成加载

执行

composer config repositories.php-internal-api-client vcs git@git.int.haowumc.com:arch/php-internal-api-client.git
composer require arch/php-internal-api-client

如何使用

Server

  • 注册中间件
$app->routeMiddleware([
    'internal' => PdInternalApi\Middleware\InternalApi::class,
]);

  • 增加配置文件:config/internal_api.php , 在server数组中为调用方增加 secret。
<?php
return [
    /**
     * 对内部其他系统提供api
     *
     * 格式为:
     * 调用方标识 => 调用方secret
     */
    'server' => [
        // app id => app secret
        '{{app name}}' => env('INTERNAL_SERVER_{{app name}}_SECRET'),
    ],
];
  • 在项目 .env 文件中增加如下配置
INTERNAL_SERVER_{{app name}}_SECRET=323232323
  • 在路由中启用中间件
$route->group(['middleware'=>'internal'],function()use($router){
    //这里添加对应路由
});

Client

  • 注册服务
$app->register(PdInternalApi\ServiceProvider::class);
  • 增加配置文件:config/internal_api.php , 在server数组中为调用方增加 secret。
<?php
return [
    /**
     * 配置可以使用的内部系统
     */
    'client' => [
        /**
         * key 为 api 项目的名称。
         * 数组为该系统的配置,由该系统的负责人提供
         */
        '{app name}' => [
            'base_uri' => env('INTERNAL_CLIENT_{{app name}}_URI', ''),
            'appid' => env('INTERNAL_CLIENT_{{app name}}_APPID', ''),
            'secret' => env('INTERNAL_CLIENT_{{app name}}_SECRET', ''),
            'timeout' => 30,
        ],
    ],
];
  • 在项目 .env 文件中增加如下配置
INTERNAL_CLIENT_{app name}_URI=http://test.in.haowumc.com/
INTERNAL_CLIENT_{app name}_APPID=test
INTERNAL_CLIENT_{app name}_SECRET=sdfsdfsdf
  • 调用
$api = app('internal.api.{{app name}}')
$resp = $api->call('{{URI}}',$params);