corrivate / magento2-rest-api-logger
高级便捷的日志记录
v1.1.1
2024-09-25 06:23 UTC
Requires
- php: ~7.4.0||~8.0.0||~8.1.0||~8.2.0||~8.3.0
- ext-json: *
- ext-pcre: *
- magento/framework: ^103.0
- magento/module-backend: ^102.0
- magento/module-config: ^101.2
- magento/module-store: ^101.1
- magento/module-webapi: ^100.4
- monolog/monolog: ^2.6
- psr/log: ^1.1||^2.0||^3.0
Requires (Dev)
- bitexpert/phpstan-magento: ^0.30.1
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.9
README
目标
获取 Magento REST API 使用情况的日志可见性
- 哪些请求被发起,由哪个 IP 地址和用户代理发起,到哪些端点?
- 这些请求中包含什么内容?
- 它们获得了什么响应?
在 HYPR,我们发现这非常有用,因为您经常会遇到以下问题:
- 哪个外部集成与这个产品的数据交互了?
- 第三方仓库声称将产品数量设置为 X,但显示为 Y。他们真的设置为 X 吗?
- 产品图片角色配置得非常奇怪。是否有人在通过 API 更新它们时使用了错误的商店代码?
重要!
日志使用不当可能会泄露安全和个人敏感数据。
此模块是调试 API 问题的“强力工具”,不可能完全防止这种情况。小心记录什么内容是您的责任。将此模块设置为“始终开启”不是一个好主意。
该模块有几个过滤器,允许您缩小您要记录的范围。
安装
composer require corrivate/magento2-rest-api-logger bin/magento module:enable Corrivate_RestApiLogger bin/magento setup:di:compile
配置
此模块的大部分功能都在配置中。这是您决定要记录哪些类型请求的地方。
您可以在管理员 > 商店 > 配置 > 服务 > REST API 日志记录中配置记录器。
以下配置可用
- 启用/禁用日志记录
- 启用/禁用安全模式(这会屏蔽一些隐私敏感的有效负载)
- 包括请求/响应头
- 设置过滤器
配置要筛选的内容
- HTTP 方法(GET、POST、PUT、DELETE)
- API 端点(https://developer.adobe.com/commerce/webapi/rest/quick-reference/)
- 路由:可用于查询字符串参数,或者如果您想记录与产品相关的所有端点
- 请求者的 IP 地址
- 请求者的用户代理
- 请求体中的文本
- 响应的 HTTP 状态码
- 响应体中的文本
配置匹配过滤器时的后果
- 禁止记录此请求/响应/两者。如果此过滤器匹配,则覆盖所有其他过滤器。
- 要求此特定过滤器匹配,否则不记录请求/响应/两者。如果指定了“要求”过滤器,则所有这些都必须匹配才能记录此内容。
- 允许如果过滤器匹配,则记录此内容。如果配置了任何“允许”过滤器,则至少有一个必须匹配,但不必全部匹配。
- 屏蔽请求/响应/两者的内容,但记录它已发生以及有关发送者、响应代码等信息。
- 每当过滤器匹配时,您还可以添加 标签。例如,用于标记来自特定 IP 地址的所有请求,以便您知道它来自公司 X。它们也可以用于以后的日志后处理。
安全性
模块不会记录传入身份验证请求的正文。如果记录了头,凭据将被哈希化。
当配置中启用“安全模式”时,将应用以下额外的过滤器以降低记录敏感数据的风险
- 禁用头部日志记录。
- 请求体包含“街道”=> 隐藏两者
- 响应体包含“街道”=> 隐藏响应
- 包含这些部分的请求URL => 隐藏两者
- /V1/applepay
- /V1/braintree
- /V1/carts
- /V1/creditmemo
- /V1/customers
- /V1/guest-carts
- /V1/inventory/get-latlng-from-address
- /V1/inventory/get-latslngs-from-address
- /V1/invoices
- /V1/orders
- /V1/shipment
- /V1/tfa
信用额
此模块最初由HYPR创建。在他们的许可下,该模块已被开源并进一步开发。
该模块的设计建立在以前的记录器基础上,特别是https://github.com/vladflonta/magento2-webapi-log;然而,该模块似乎不再得到积极支持。
Corrivate
(en.wiktionary.org)
词源
来自拉丁语corrivatus,是corrivare(“使...流动”)的过去分词。
动词
corrivate(第三人称单数现在时 corrivates,现在分词 corrivating,简单过去时和过去分词 corrivated)
(已废弃)使从几个溪流中抽取的水汇流。