Merge pull request #134 from yuu2lee4/patch-2

swagger支持openapi3.0
This commit is contained in:
suxiaoxin 2018-01-23 01:31:17 -06:00 committed by GitHub
commit 7333270a2d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -15,11 +15,48 @@ function improtData(importDataModule) {
}
return path;
}
function openapi2swagger(data) {
data = data.replace(/components\/schemas/g, 'definitions');
data = data.replace('openapi', 'swagger');
data = JSON.parse(data);
data.definitions = data.components.schemas;
delete data.components;
data.swagger = '2.0';
_.each(data.paths, (apis) => {
_.each(apis, (api) => {
_.each(api.responses, (res) => {
if(res.content) {
res.schema = res.content['application/json'].schema;
delete res.content;
}
})
if(api.requestBody) {
if(!api.parameters) api.parameters = [];
api.parameters.push({
type: 'object',
name: 'body',
in: 'body',
schema: {
$ref: api.requestBody.content['application/json'].schema
}
});
}
})
})
return data;
}
function run(res) {
try {
let interfaceData = { apis: [], cats: [] };
res = JSON.parse(res);
if(res.includes('openapi')) {
res = openapi2swagger(res);
} else {
res = JSON.parse(res);
}
SwaggerData = res;
if (res.tags && Array.isArray(res.tags)) {
res.tags.forEach(tag => {
@ -208,4 +245,4 @@ function improtData(importDataModule) {
module.exports = function () {
this.bindHook('import_data', improtData)
}
}