在导入时将 Swagger 参数名称转换为 Postman 变量
Posted
技术标签:
【中文标题】在导入时将 Swagger 参数名称转换为 Postman 变量【英文标题】:Transform Swagger parameter names to Postman variables on import 【发布时间】:2019-12-30 16:40:07 【问题描述】:我有一组以通常方式定义参数的 Swagger 文件。例如:
parameters:
- $ref: '#/parameters/authorization'
...
parameters:
authorization:
name: Authorization
description: ''
required: true
type: string
in: header
将这些文件导入 Postman 后,Postman 集合已正确创建,但我希望“Authorization”参数的 Postman 变量为“AUTH_TOKEN”而不是“Authorization”(例如)。
实际上,我想声明一个字段(最好是在 swagger 文件中?),上面写着“当导出到 Postman 时,使用值 AUTH_TOKEN 作为变量名,而不是“授权”的默认“名称”)。
看起来 x-postman-meta 在招摇中可能会有所帮助,但在此处的 GH 问题之外没有找到有关此属性的任何信息说它可能会有所帮助。
无论如何 - 我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:我找到了一种方法来做到这一点,尽管从 OpenAPI/Swagger 的角度来看它感觉不太好。我发现您可以使用变量名称添加“默认”属性,例如
"in": "header",
"name": "Authorization",
"description": "The bearer token in the format: Bearer token",
"required": true,
"type": "string",
"default": "Bearer token"
这感觉很糟糕,因为默认属性的实际用途是:
在参数架构中使用 default 关键字来指定默认值 一个可选参数。默认值是服务器使用的值,如果 客户端未在请求中提供参数值。值类型必须 与参数的数据类型相同。
所以如果你有一个整数类型,你想用一个变量来填充,这将不起作用。此外,从文档的角度来看,这是完全错误的,服务器要求客户端提供此参数,它也不能有默认值,这是矛盾的。会对更“感觉良好”的解决方案感兴趣。
参考: https://swagger.io/docs/specification/describing-parameters/
【讨论】:
以上是关于在导入时将 Swagger 参数名称转换为 Postman 变量的主要内容,如果未能解决你的问题,请参考以下文章
如何防止 Azure ML Studio 在导入数据集时将特征列转换为 DateTime
分享一小坑,以后碰到了可以快速规避(swagger 对 名称为 nodeName 的参数报错)