我已經嘗試了幾種方法爲Swagger(快速招搖)添加基本API密鑰授權。以下是我清單中的相關信息。如何在Swagger中添加API密鑰
{
...
"main": "app.js",
"dependencies": {
"express": "^4.12.3",
"swagger-express-mw": "^0.1.0"
},
...
}
我相信我已經在YAML配置中註冊了安全定義。
swagger: "2.0"
info:
...
# Set up security for the API
securityDefinitions:
defaultApiKey:
type: apiKey
in: header
name: defaultApiKey
security:
- defaultApiKey: []
爲了完成這個配置,我想我只需要在SwaggerExpress.create()函數中註冊中間件。以下是我目前的全部app.js。
'use strict';
var SwaggerExpress = require('swagger-express-mw');
var app = require('express')();
module.exports = app; // for testing
var config = {
appRoot: __dirname // required config
};
SwaggerExpress.create(config, function(err, swaggerExpress) {
if (err) { throw err; }
// Serve the Swagger documents and SwaggerUi
app.use(swaggerExpress.runner.swaggerTools.swaggerUi());
// Install security
app.use(swaggerExpress.swaggerSecurity({
defaultApiKey: function(req, def, scopes, callback) {
console.log("hit");
}
}));
// install middleware
swaggerExpress.register(app);
var port = process.env.PORT || 10010;
app.listen(port);
});
當我嘗試使用此我看到以下內容:
Error initializing middleware
TypeError: swaggerExpress.swaggerSecurity is not a function
我曾嘗試配置此沒有成功的幾個不同的方式。我有沒有在YAML中正確定義API密鑰,如果是的話,我應該怎麼做才能在我的app.js文件中註冊API密鑰處理程序?
什麼是swagger.json我只有yaml? – danielad
@danielad您可以使用swagger-codegen工具將.yaml轉換爲.json https://github.com/swagger-api/swagger-codegen/blob/master/README.md#to-generate-a-sample-客戶端庫 – Burke9077
即時通訊使用swagger-express-md?我需要swagger-tools還是什麼?兩者如何需要和使用? – danielad