m6web/xrequestuid-bundle

此包已废弃,不再维护。未建议替代包。
关于此包最新版本(v3.0.1)没有提供许可证信息。

允许在通过guzzle传播的header中设置ids的sf2捆绑包

安装量: 90,903

依赖项: 0

建议者: 0

安全: 0

星标: 3

关注者: 35

分支: 2

开放性问题: 0

类型:symfony-bundle

v3.0.1 2020-01-30 16:06 UTC

This package is auto-updated.

Last update: 2022-03-01 00:13:12 UTC


README

要将此实现到Symfony 3或Symfony 4应用程序中,请至少使用版本v3.0.0

为什么?

"微服务中酷的地方是您只需一个客户端http调用就可以在您的基础设施中生成15个http调用"

这种情况导致API系统之间的调用跟踪困难重重,尤其是在内部调用失败时。此包提供了一种生成新请求的id并相应配置guzzle服务的解决方案,以便它们在子http请求中使用这些id。

此包将生成和/或转发以下两个header:X-Request-Uid和X-Request-Parent-Uid。

如何?

当请求到达时,如果存在X-Request-Id,则将其复制到X-Request-Parent-Id中。如果不存在,则通过uniqId_service生成它。

所有您的guzzle服务都被一个代理装饰,该代理将在所有调用中添加这两个header。

最后,这两个header都添加到响应中,以供调试目的。

您现在可以将这两个header添加到日志文件中,并跟踪调用。

配置

m6_web_x_request_uid:
    request_uid_header_name: X-Request-toto    # optionnal, X-Request-Uid by default
    request_parent_uid_header_name: X-Parent   # optionnal, X-Request-Parent-Uid by default 
    uniqId_service: myservice                  # optionnal, a service implementing UniqIdInterface 
    services:                                  # list of guzzle services to decorate 
        - test.guzzle1

services:
    test.guzzle1:
        class: 'GuzzleHttp\Client'

如果您有其他创建guzzle服务的包,请确保在您的AppKernel文件中将此包添加到它们之后。

您可以定义自己的uniqId服务或直接使用包中提供的一个(它执行基本的php uniqid)。

相关

待办事项

  • 添加更多测试
  • 添加更多文档