当我构建我的swagger.json文件时,我不知道要使用哪个主机.但是,当我托管swaggerui的页面加载时,我可以解决它(实际上我可能想为用户提供一个选择).我希望在swaggerUI对象的配置上看到一个options.host - 我没看到一个.有没有现成的方法,我无法找到或做我只需要破解我的方式通过代码并添加此功能(指向最好的地方,这将是受欢迎的)
小智 6
Swagger有一个内置的json定义用于主机配置,或者可以接受多个输入.
{
"swagger": "2.0",
"info": {
"title": "Why API",
"description": "Don't make that mistake again",
"version": "0.0.1"
},
"host": "127.0.0.1:3000",
"schemes": [
"https"
]
}
Run Code Online (Sandbox Code Playgroud)
要么
"host": "test.mydomain.com:3000",
"schemes": [
"https"
],
Run Code Online (Sandbox Code Playgroud)
或者,您可以通过定义var并调用主机名或计算机名称或其他环境变量来拥有动态主机.
if (typeof this.host === 'undefined' || this.host === '') {
this.host = location.host;
}
if (location.port) {
this.host = this.host + ':' + location.port;
}
Run Code Online (Sandbox Code Playgroud)
这是我的工作,因为加载的文档只是一个JSON对象:
var swaggerDoc = require('./api/swagger.json');
if (process.env.NODE_ENV === 'development') {
swaggerDoc.host="localhost:" + process.env.PORT
}
// Initialize the Swagger middleware
swaggerTools.initializeMiddleware(swaggerDoc, function (middleware) {
// Other initialization
}
Run Code Online (Sandbox Code Playgroud)
这样,您就不会污染开发环境配置的API规范。
小智 5
如果您将其托管在同一应用程序服务器上,只需从 json 中删除主机密钥并在密钥“basePath”中提供相对路径。as - “basePath”:“/rest/createcampaign”。
两种方式
一种是修改 swagger.js,使其接受主机选项。swagger-UI 将选项传递给 swagger-js 以便工作。我通过此修复向 swagger-js 提交了拉取
第二个选择是 swagger-UI 接受“spec”参数。这意味着托管页面可以加载 swagger.json 文件,对其进行 JSON.parse ,在其中设置“host”,然后传递给 swaggerUi 构造函数。这对于调用者来说比较困难,但不需要对 swagger 进行代码更改
| 归档时间: |
|
| 查看次数: |
25683 次 |
| 最近记录: |