Skip to content

The "url" configuration parameter is not being ignored when "urls" is provided via "configUrl" #5019

Closed
@jlw0

Description

@jlw0

Q&A

  • OS: Windows 10 Enterprise
  • Browser: Chrome
  • Version: 70.0.3538.77
  • Method of installation: Dist Assets
  • Swagger-UI version: 3.19.3
  • Swagger/OpenAPI version: OpenAPI 3.0

Content & configuration

JavaScript Swagger-UI Configuration:

SwaggerUI({
  // this is the default configuration
  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"
})

Query Parameter Swagger-UI Configuration:

?configUrl=/someUrl/swagger-config.json

Swagger-UI Configuration Endpoint Response Body:

{
  "urls": "/someUrl/openapi.json"
}

Describe the bug you're encountering

The documentation states that the url parameter will be ignored if urls or spec is used. The UI has a race condition which causes it to load the pet store example even though the urls configuration parameter is provided.

To reproduce...

Steps to reproduce the behavior:

  1. Open the Swagger-UI in a browser with the configUrl query parameter
  2. Refresh the page to verify the Swagger-UI will load either the pet store example or the urls OpenAPI definition.

Expected behavior

Since the url configuration parameter is supposed to be ignored, the page should load with the first URL listed by the urls configuration parameter.

Additional context or thoughts

You can workaround this bug by providing a blank url configuration parameter in the configuration endpoint's response body:

{
  "url": "",
  "urls": "/someUrl/openapi.json"
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions