listen/restapi

基于guzzlehttp/guzzle 封装的 http 请求服务

3.4.6 2019-04-04 11:31 UTC

This package is auto-updated.

Last update: 2024-04-18 22:44:34 UTC


README

🚀Laravel Restapi is a package for http request, base from guzzle/http

Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads Daily Downloads composer.lock

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);