var converter = require('oas-raml-converter'); var fs = require('fs'); var raml10ToOas20 = new converter.Converter(converter.Formats.RAML, converter.Formats.OAS20); const tagsMap = { '/api/assignment/code': '代码作业', '/api/assignment/course/{courseId}/code': '代码作业', '/api/assignment/student/course/{courseId}/code': '代码作业', '/api/assignment/teacher/course/{courseId}/code' : '代码作业', '/api/assignment/teacher/code' : '代码作业', '/api/assignment/student/code' : '代码作业', '/api/codehw': '代码作业', '/api/statistics' : '结果统计', '/api/user': '用户', '/api/course': '课程', '/api/question': '问题', '/api/group': '小组', } raml10ToOas20.convertFile('./index.raml') .then(function(json) { // 接口名称 json = json.replace(/operationId/g, 'summary'); json = JSON.parse(json) // tags支持 tags = Object.values(tagsMap).map(v => ({name: v, description: v})); json['tags'] = tags; Object.keys(json.paths).forEach(uri => { uriTags = Object.keys(tagsMap).filter(k => uri.startsWith(k)).map(k => tagsMap[k]); Object.keys(json.paths[uri]).forEach(method => { json.paths[uri][method]['tags'] = uriTags; }); }); fs.writeFileSync('./swagger.json', JSON.stringify(json, null, ' ')); }) .catch(function(err) { console.error(err); });