listen / restapi
基于guzzlehttp/guzzle 封装的 http 请求服务
3.4.6
2019-04-04 11:31 UTC
Requires
- php: >=5.4
- guzzlehttp/guzzle: ^6.2
- illuminate/config: 5.*
- illuminate/support: 5.*
- listen/logcollector: ^4.1
README
🚀
Laravel Restapi
is a package for http request, base from guzzle/http
How To Usage
install use the composer
composer require listen/restapi
update config/app.php
'providers' => [
......
Listen\Restapi\RestapiServiceProvider::class,
],
'aliases' => [
......
'Restapi' => Listen\Restapi\Facades\Restapi::class,
],
publish config
php artisan vendor:publish --provider='Listen\Restapi\RestapiServiceProvider' # The config file restapi.php while in config drictory
configure
return [ 'request_timeout' => 5, 'connect_timeout' => 5, 'secret' => '', 'concurrency' => 5, 'log_file' => storage_path('logs/restapi.log'), 'log_channel' => 'restapi', 'log_mode' => 'single', '<MODULE-NAME>' => [ 'secret' => env('RESTAPI_<MODULE-NAME>_KEY', ''), 'base_uri' => env('RESTAPI_<MODULE-NAME>_URL', 'http://local.application.com'), ], ];
single request example
# GET Restapi::get($moduleName, $uri, $params, $headers); # POST Restapi::post($moduleName, $uri, $params, $headers); # GETASYNC Restapi::getAsync($moduleName, $uri, ['name' => 'listen'], function ($response, $module, $params, $uri) { dd($response); }, function ($e, $module, $params, $uri) { dd($e->getMessage()); }); # POSTASYNC Restapi::postAsync($moduleName, $uri, ['name' => 'listen'], function ($response, $module, $params, $uri) { dd($response); }, function ($e, $module, $params, $uri) { dd($e->getMessage()); });
multi request example
# An interface is requested multiple times $params = [ [ 'user_id' => 1, 'user_name' => 'new name' ], [ 'user_id' => 2, 'user_name' => 'new name2' ] ]; $responses = \Restapi::multiRequest('post', 'http://test.local/user', $params, ['Content-Type' => 'application/x-www-form-urlencoded']); dd($responses); # Multiple interfaces are requested concurrently $apis = [ [ 'module' => 'user', 'method' => 'postAsync', 'params' => ['key' => 'value'], 'uri' => 'http://test.local/user' ], [ 'module' => 'book', 'method' => 'postAsync', 'params' => ['key' => 'value'], 'uri' => 'http://test.local/book' ], ]; $result = \Restapi::multiModuleRequest($apis); dd($result);