效果预览图(这个是嵌入菜单里面的):
官方api: https://github.com/swagger-api/swagger-ui/blob/master/docs/usage/configuration.md
官方示例:https://github.com/swagger-api/swagger-ui/blob/master/dist/index.html
json文件: http://editor.swagger.io/#
代码: 先引入:npm i swagger-ui 和 npm i swagger-ui-dist ---》支持swagger | npm i path --->打包需要,是absolutePath.js的依赖
然后需要在文件里面配置相关css引用路径
TS:
const SwaggerUIBundle = require('swagger-ui-dist').SwaggerUIBundle; const token = session.getItem('token'); const ui = SwaggerUIBundle({ // url: 'swagger.json', urls: [ {url: 'swagger.json', name: 'test1'} ], dom_id: '#swaggerUI', supportedSubmitMethods: [], // 不可以 try it out deepLinking: false, // 去掉深层链接,怎么try it out 都是一级路径 validatorUrl: null, // 去掉认证链接,也就是最下面会有一个绿色的图片的东东 filter: true, // 显示查询框框 showRequestHeaders: true, showMutatedRequest: true, // 启用拦截器的返回 // 请求拦截器 requestInterceptor: (request) => { // 因为我的接口的host不对,所以需要在这里拦截请求,重新拼接请求路径 const url = request.url; if (!url.includes('swagger')) { const hostBefore = url.split('/'); console.log(hostBefore , '拿到host并改变' ); url_ = '新请求路径' ; request.url = url_; } request.headers.Authorization = token; // 请求头添加token return request; }, responseInterceptor: (response) => { return response; }, presets: [ SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset, ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], layout: 'StandaloneLayout', });
HTML:
<div id="swaggerUI"></div>