Have Xwiki any plugin or macro to untegrate Swagger (openAPI)?

I made it.

You need to create JS extension in object editor with following code

  require.config({

paths: { "esprima": "https://unpkg.com/esprima@~4.0/dist/esprima" },

  });  
  
require(["esprima","$services.webjars.url('swagger-ui','swagger-ui-bundle.js')","$services.webjars.url('swagger-ui','swagger-ui-standalone-preset.js')"], 
        function(esprima,SwaggerUIBundle,SwaggerUIStandalonePreset) {
 
    window.onload = function() {
      // Begin Swagger UI call region
      const ui = SwaggerUIBundle({
        url: "https://petstore.swagger.io/v2/swagger.json",
        dom_id: '#swagger-ui',
        deepLinking: true,
        presets: [
          SwaggerUIBundle.presets.apis,
          SwaggerUIStandalonePreset
        ],
        plugins: [
          SwaggerUIBundle.plugins.DownloadUrl
        ],
        layout: "StandaloneLayout"
      });
      // End Swagger UI call region

      window.ui = ui;
    };

});

and create Stylesheet extension object with css code from swagger-ui.css

result will be like as this image
image

1 Like