我正在使用 Postman v11.14.1
我想构建一个由我们团队共享的邮递员工作区,其中包含对某些 API 的请求。
我已将所有凭据放入 Postman 保管库,以避免将它们存储在 Postman 云中。例如DEV_SYS1_CLIENT_ID、STAGE_SYS1_CLIENT_ID等
然后我定义了我们的环境:Dev、Stage 等。然后我定义了环境变量。例如在开发中:SYS1_CLIENT_ID={{vault:DEV_SYS1_CLIENT_ID}}。对于阶段:SYS1_CLIENT_ID={{vault:STAGE_SYS1_CLIENT_ID}}。
然后我有一个 SOAP API 调用。身份验证数据是 SOAP 请求正文的一部分。
<soap:Header>
<auth>
<clientId>{{SYS1_CLIENT_ID}}</clientId>
<signature algorithm="HMAC-SHA256">{{signature}}</signature>
</auth>
...
为了计算签名值,我为 Postman 集合创建了一个预请求脚本。它应该使用环境变量来构建签名值。 我使用以下方法来获取环境变量值:
pm.environment.get("SYS1_CLIENT_ID")
问题在于代码结果是
{{vault:DEV_SYS1_CLIENT_ID}}
而不是金库中的实际值。我可以在那里获得实际值而不是参考值吗?
是否有另一种方法可以将 Vault 数据构建的值注入到请求正文中?我知道我可以将所有凭据直接设置到环境变量中。但我认为这不是管理此类数据的正确方法。
您需要首先启用在脚本沙箱中使用保管库变量的访问权限,默认情况下此功能处于关闭状态。
然后您可以在脚本中使用
pm.vault.get()
。