在 Paw 中使用环境变量创建请求
Creating request with Environment Variables in Paw
在 Paw 应用程序中,如果我们手动创建请求,我们可以调用上下文菜单并选择一个环境变量。
在这种情况下,URL 看起来像这样:
如果我更改环境或变量本身,它会更新。
我正在尝试改进现有插件(API Blueprint Importer),但我只是想出了如何从环境变量中读取。
我只能做这样的事情:
http
、localhost
和 8000
是从环境变量中读取的。
尝试实现第一张图片中的效果,但无济于事。
Paw App 中是否有 API 可用,或者目前不可用?
动态创建对环境变量的引用在Paw中是绝对可行的。首先,您需要创建环境变量,然后创建一个引用它的动态值。
动态设置环境域
由于环境变量存储在域中,在应用程序中也称为组,您应该首先使用 context.getEnvironmentDomainByName
和 context.createEnvironmentDomain
创建一个具有所需名称的环境域。您可以在 the documentation page for the context object.
上阅读有关这两种方法的更多信息
getOrCreateEnvironmentDomain(name) {
let env = this.context.getEnvironmentDomainByName(name)
if (typeof env === 'undefined') {
env = context.createEnvironmentDomain(name)
}
return env
}
创建环境域后,您需要添加一个环境来存储变量。该过程与创建环境域非常相似。您可以在此处找到有关所用方法的更多信息 on the documentation page for the EnvironmentDomain.
getOrCreateEnvironment(domain, name) {
let env = domain.getEnvironmentByName(name)
if (typeof env === 'undefined') {
env = domain.createEnvironment(name)
}
return env
}
下一步是创建变量,如果它不存在,或者 return 如果它存在。
/*
uses:
@getOrCreateEnvironmentDomain
@getOrCreateEnvironment
*/
updateOrCreateEnvironmentVariable(domainName, envName, name, value) {
let domain = this.getOrCreateEnvironmentDomain(domainName)
let env = this.getOrCreateEnvironment(domain, envName)
let varDict = {}
varDict[name] = typeof value !== 'undefined' ? value: ''
env.setVariablesValues(varDict)
return domain.getVariableByName(name)
}
设置引用
要创建对环境变量的引用,您需要创建一个环境变量动态值。它的标识符是com.luckymarmot.EnvironmentVariableDynamicValue
,它只接受一个参数environmentVariable
,即它所引用的变量的id。
...
let envVariable = this.updateOrCreateEnvironmentVariable('Server', 'api-blueprint', 'protocol', 'https')
let dv = new DynamicValue(
'com.luckymarmot.EnvironmentVariableDynamicValue',
{
environmentVariable: envVariable.id
}
)
/* use the Dynamic Value like any other */
...
在 Paw 应用程序中,如果我们手动创建请求,我们可以调用上下文菜单并选择一个环境变量。
在这种情况下,URL 看起来像这样:
如果我更改环境或变量本身,它会更新。
我正在尝试改进现有插件(API Blueprint Importer),但我只是想出了如何从环境变量中读取。
我只能做这样的事情:
http
、localhost
和 8000
是从环境变量中读取的。
尝试实现第一张图片中的效果,但无济于事。
Paw App 中是否有 API 可用,或者目前不可用?
动态创建对环境变量的引用在Paw中是绝对可行的。首先,您需要创建环境变量,然后创建一个引用它的动态值。
动态设置环境域
由于环境变量存储在域中,在应用程序中也称为组,您应该首先使用 context.getEnvironmentDomainByName
和 context.createEnvironmentDomain
创建一个具有所需名称的环境域。您可以在 the documentation page for the context object.
getOrCreateEnvironmentDomain(name) {
let env = this.context.getEnvironmentDomainByName(name)
if (typeof env === 'undefined') {
env = context.createEnvironmentDomain(name)
}
return env
}
创建环境域后,您需要添加一个环境来存储变量。该过程与创建环境域非常相似。您可以在此处找到有关所用方法的更多信息 on the documentation page for the EnvironmentDomain.
getOrCreateEnvironment(domain, name) {
let env = domain.getEnvironmentByName(name)
if (typeof env === 'undefined') {
env = domain.createEnvironment(name)
}
return env
}
下一步是创建变量,如果它不存在,或者 return 如果它存在。
/*
uses:
@getOrCreateEnvironmentDomain
@getOrCreateEnvironment
*/
updateOrCreateEnvironmentVariable(domainName, envName, name, value) {
let domain = this.getOrCreateEnvironmentDomain(domainName)
let env = this.getOrCreateEnvironment(domain, envName)
let varDict = {}
varDict[name] = typeof value !== 'undefined' ? value: ''
env.setVariablesValues(varDict)
return domain.getVariableByName(name)
}
设置引用
要创建对环境变量的引用,您需要创建一个环境变量动态值。它的标识符是com.luckymarmot.EnvironmentVariableDynamicValue
,它只接受一个参数environmentVariable
,即它所引用的变量的id。
...
let envVariable = this.updateOrCreateEnvironmentVariable('Server', 'api-blueprint', 'protocol', 'https')
let dv = new DynamicValue(
'com.luckymarmot.EnvironmentVariableDynamicValue',
{
environmentVariable: envVariable.id
}
)
/* use the Dynamic Value like any other */
...