ensi/initial-event-propagation
最新稳定版本:0.3.2
Composer 安装命令:
composer require ensi/initial-event-propagation
包简介
initial event propagation
README 文档
README
This package helps to propagate initial event data to other backend services Laravel Bridge
Installation
You can install the package via composer:
composer require ensi/initial-event-propagation
Version Compatibility
| Laravel IEP | PHP |
|---|---|
| ^0.1.0 | ^8.0 |
| ^0.2.0 | ^8.0 |
| ^0.3.0 | ^8.1 |
Basic usage
First of all you need to create initial event data and place it to holder:
use Ensi\InitialEventPropagation\InitialEventHolder; use Ensi\InitialEventPropagation\InitialEventDTO; InitialEventHolder::getInstance() ->setInitialEvent( InitialEventDTO::fromScratch( userId: "1", userType: "admin", app: "mobile-api-gateway", entrypoint: "/api/v1/users/{id}" ) );
If you are not in initial entrypoint context to need to get initial event from X-Initial-Event request header instead of creating it from scratch:
use Ensi\InitialEventPropagation\Config; use Ensi\InitialEventPropagation\InitialEventHolder; use Ensi\InitialEventPropagation\InitialEventDTO; InitialEventHolder::getInstance() ->setInitialEvent( InitialEventDTO::fromSerializedString($request->header(Config::REQUEST_HEADER)) );
Next, extract DTO from holder (InitialEventHolder::getInstance()->getInitialEvent()) and pass it to any futher outcomming requests (Guzzle, RabbitMQ, Kafka etc)
For example:
use Ensi\InitialEventPropagation\Config; use Ensi\InitialEventPropagation\InitialEventHolder; function some_middleware(callable $handler) { return function (RequestInterface $request, $options) use ($handler) { $inititiator = InitialEventHolder::getInstance()->getInitialEvent(); return $handler( $inititiator ? $request->withHeader(Config::REQUEST_HEADER, $inititiator->serialize()) : $request, $options ); }; }
Contributing
Please see CONTRIBUTING for details.
Testing
- composer install
- composer test
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
License
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 80.84k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 1
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-11-19