Swagger UI - 使用JS扩展操作

时间:2015-06-05 23:25:26

标签: swagger-ui

我使用swagger UI显示方法,出于某种原因,在转向swagger UI 2.0后,我的jquery点击事件不再有效。

是否有一种以编程方式扩展JS的所有操作?我不希望它们在页面打开时展开,我只需要在运行某个脚本时展开它们。

这曾经有效,但不再适用:

      $('div.heading span.path a.toggleOperation').each(function (e) {
           $(this).click();         
       });

这也不起作用:

      $('div.heading span.path a.toggleOperation').click();

没有错误,它似乎忽略了我的点击事件

2 个答案:

答案 0 :(得分:3)

找到答案,这很简单。

当你大摇大摆时,你会做这样的事情:

     window.swaggerUi = new SwaggerUi({
            url: swaggerUrl,
            dom_id: "swaggerInjectionPoint",
            supportHeaderParams: true,
            docExpansion: 'list',
            validatorUrl: null,
            supportedSubmitMethods: ['get', 'post', 'put', 'delete']
        });

此时您可以访问swaggers方法,并且有一个名为expandAll();

所以只需创建一个事件并执行该事件:

    window.swaggerUi.expandAll();

您还可以访问一些更有用的方法:

    collapseAll()
    listAll();

以及其他一些都可以在swagger-ui.js文件中找到。

答案 1 :(得分:0)

使用招摇,ui.js版本2.0.17这个JavaScript可以从浏览器中的书签运行,因此它适用于网页你无法控制:

javascript:for (var i = 0, len = window.swaggerUi.api.apisArray.length; i < len; i++) { Docs.expandOperationsForResource(window.swaggerUi.api.apisArray[i].name) };void(0);