每个环境有不同的请求标头

时间:2019-01-25 21:56:29

标签: postman

我正在使用邮递员的环境功能,但是一个环境不需要具有请求标头之一。通常,发送额外的不必要的请求标头是无害的,但是在我独特的情况下,它实际上中断了请求,导致端点返回401。

Postman Headers (点击链接;抱歉,我还没有10位代表发布嵌入式图片)

让我们说我有一个“开发”环境和一个“生产”环境。从环境下拉列表中选择“开发”时,我需要“仅开发需要”键和值。但是当我选择Prod时,我根本不希望请求中发送该键/值。

这当然可以通过取消选中标题项目来实现。但是然后我必须同时切换环境,并记得根据需要检查或取消选中标题。

我尝试为该变量设置一个空白值(在此示例中为Prod),但是具有没有值的键会导致无效的标头。

Accept: application/json
need-me-for-dev-only:

我尝试只为Prod提供该环境变量,但随后它会按字面意义发送包含把手的变量名称

Accept: application/json
need-me-for-dev-only: {{dev-environment-variable}}

在标题中(捕获在提琴手中)。

在没有脚本的情况下是否可以具有每个环境的请求标头?如果没有,我将调查脚本来解决我的问题。

1 个答案:

答案 0 :(得分:0)

使用Postman,可以使用预先请求脚本和一些技巧来实现此目的。

首先,确保您的Dev环境具有一个“ Environment”变量,并将其设置为“ dev”。

现在,根据您的请求,在Pre-request Script中添加以下内容:

let environment_name = postman.getEnvironmentVariable("Environment"); 

if(environment_name === "dev"){
    postman.setGlobalVariable("need-me-for-dev-only-key", "need-me-for-dev-only"); 
    postman.setGlobalVariable("need-me-for-dev-only-value", "your_value"); 
} else {
    postman.setGlobalVariable("need-me-for-dev-only-key", "something_else"); 
    postman.setGlobalVariable("need-me-for-dev-only-value", "something_else");
}

基本上,您可以根据环境设置标题键值对。如果是“ dev”,则设置need-me-for-dev-only标头。否则,我们将设置任意标头,这些标头最终将被您的API忽略。

现在,在请求的Headers部分,您可以添加以下内容:

Accept: application/json
{{need-me-for-dev-only-key}}: {{need-me-for-dev-only-value}}

就是这样。

希望有道理。