solutionplus/microservice

这是一个用于处理微服务连接特定情况的Laravel包。因此,它并不满足所有需求或处理所有连接情况。

1.4.3 2024-08-28 07:32 UTC

README

solutionplus/microservice 是一个用于处理微服务连接特定情况的Laravel包,因此它并不满足所有需求或处理所有连接情况。

目录

安装

使用

许可

安装

您可以使用composer安装此包

# cli commands

composer require solutionplus/microservice

php artisan ms:install

重要

不要忘记修改添加的env密钥 MS_GLOBAL_PROJECT_SECRET,使其与所有其他微服务项目的 MS_GLOBAL_PROJECT_SECRET 完全匹配,然后运行

php artisan config:cache
  • 然后,在您将用于与其他微服务通信的路由组上应用 micro-service
Route::group([
    'middleware' => [
        'micro-service',
    ]
], function () {
    // routes communicates with other microservices goes here
});

用法

以下是一些预定义的方法,可以帮助您与其他服务通信:

// EX: $microserviceName = 'payment';
// EX: $uri = 'license-payments' || 'orders' ...etc;
// EX: $origin = 'payment.com';

// `$params` and `$data` should be ['key' => 'value'] pair array
// which represent query string in get requests or inputs in post requests

$response = MsHttp::get($microserviceName, $uri, $params = []);

$response = MsHttp::post($microserviceName, $uri, $data = []);

$response = MsHttp::put($microserviceName, $uri, $data = []);

$response = MsHttp::delete($microserviceName, $uri); // Not finished yet

$response = MsHttp::establish($microserviceName, $origin, $localPort);

上述方法在您需要加密微服务之间的请求时必须使用。

注意

如果中间件未自动发现,请按照以下步骤操作

  • 将中间件 micro-servicemicro-service-establish-connection 都添加到 kernel.php 文件中的 $routeMiddleware 数组中,如下所示
# In kernel.php file


/**
 * The application's route middleware.
 *
 * These middleware may be assigned to groups or used individually.
 *
 * @var array<string, class-string|string>
 */
protected $routeMiddleware = [
    //
    'micro-service' => \Solutionplus\MicroService\Http\Middleware\MicroServiceMiddleware::class,
    'micro-service-establish-connection' => \Solutionplus\MicroService\Http\Middleware\MicroServiceEstablishConnectionMiddleware::class,
];

在微服务路由组上使用 micro-service 中间件是必须的,因为它负责解码请求,以便您可以像通常那样处理它。否则,可能会导致意外结果。

注意

不要自行在请求上使用 micro-service-establish-connection。它已经在预定义的 micro-services store 路由上运行。

注意

建设中...

许可

Solutionplus/MicroService 包是有限制的专有软件,属于 Solutionplus.net 公司。