solutionplus / microservice
这是一个用于处理微服务连接特定情况的Laravel包。因此,它并不满足所有需求或处理所有连接情况。
1.4.3
2024-08-28 07:32 UTC
Requires
- laravel/framework: >=9
Requires (Dev)
- fakerphp/faker: ^1.9.1
- mockery/mockery: ^1.4.4
- phpunit/phpunit: ^9.5.10
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-service和micro-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-servicesstore路由上运行。
注意
建设中...
许可
Solutionplus/MicroService 包是有限制的专有软件,属于 Solutionplus.net 公司。