Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorrect sample URLs when no "server" is included in the OpenAPI spec #1151

Closed
jeroenheijmans opened this issue Jan 8, 2020 · 0 comments
Closed

Comments

@jeroenheijmans
Copy link

jeroenheijmans commented Jan 8, 2020

My OpenAPI json spec generated by a .NET Core API, is presumably handled incorrectly by Redoc. My OpenAPI spec looks like this:

{
  "openapi": "3.0.1",
  "info": {
    "title": "Foo Api"
  },
  "paths": {
    "/WeatherForecast": {
      "get": {
        "tags": [
          "WeatherForecast"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WeatherForecast"
                  },
                  "nullable": true
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WeatherForecast"
                  },
                  "nullable": true
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WeatherForecast"
                  },
                  "nullable": true
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "WeatherForecast": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "temperatureC": {
            "type": "integer",
            "format": "int32"
          },
          "temperatureF": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "summary": {
            "type": "string",
            "nullable": true
          }
        },
        "nullable": true
      }
    }
  }
}

It gets loaded along these lines:

<redoc spec-url='swagger/v1/swagger.json'></redoc>

(That's how I tested with the standalone version, it is also how my .NET Core project would load it.)

I used the above with the 2.0.0-rc14 version (that is currently provided in the .NET Core wrapper package) as well as with the rc20 version (by using the redoc standalone html file from the README) and both reproduce the following issu.

The sample URLs generated by Redoc on the right hand side panel will incorrectly(?) include swagger/v1/ in the URLs and generate e.g.:

GET /WeatherForecast
https://localhost:44371/swagger/v1/WeatherForecast

I reported an issue in ASP.NET Core's package that wraps Redoc, but its author remarked that the issue is probably upstream, in Redoc. They mention:

If you look at the raw swagger.json returned by Swashbuckle, you'll see that the server property is actually omitted and therefore should be defaulted to / (also as per the spec). So, to construct the sample request URL, the redoc UI should simply append /products to /. However, it appears to be appending it to the path of the current page instead.

I believe the swagger-ui honors the spec. correctly whereas redoc does not.

jmendiara added a commit to jmendiara/ReDoc that referenced this issue Feb 28, 2020
* feat(cli): added support for JSON string value for --options CLI argument (Redocly#1047)

closes Redocly#797

* docs: expandDefaultServerVariables

* fix: do not crash on empty scopes

fixes Redocly#1044

* fix: auth section appears twice

fixes Redocly#818

* fix: left menu item before group is not highligted

fixes Redocly#1033

* fix: clicking on group title breaks first tag

fixes Redocly#1034

* fix: false-positive recursive detection with allOf at the same level

* fix: remove excessive whitespace between md sections on small screens

fixes Redocly#874

* chore: Release 2.0.0-rc.15 🔖

* chore(cli): redoc-cli v0.9.0

* chore(cli): update yarn.lock

* chore(cli): redoc-cli@0.9.1

* fix: fix scrollYOffset when SSR

* chore: Release 2.0.0-rc.16 🔖

* chore(cli): redoc-cli@0.9.2

* docs: fix typo (Redocly#1062)

* feat: added support for file paths as --options cli argument (Redocly#1049)

* fix: types over-pluralization (Redocly#1057)

fixes Redocly#1053

* docs: improve options documentation (Redocly#1071)

* Sort by name
* Document `hideSingleRequestSampleTab`
* End option description with `.`

* fix: no quotes for default values in header fields. (Redocly#1059)

* fix: changed several components style font-family to monospace (Redocly#1063)

fixes Redocly#909

* fix: active menu item scroll into view

* chore: Release 2.0.0-rc.17 🔖

* fix: improve mime-type dropdown font

* fix: add oneOf buttons vertical space when wrapped to new line

* hore: Release 2.0.0-rc.18 🔖

* fix: wrap json examples in code tag (Redocly#1064)

* feat: display `multipleOf` constrains (Redocly#1065)

* docs: fix link to x-nullable docs from README (Redocly#1135)

* fix: change the title of "Security Scheme Type" to match "HTTP Authorization Scheme" (Redocly#1126)

* docs: fixed example slack api url (Redocly#1077)

* doc: fix some typos (Redocly#1117)

* feat(cli): Fallback on the spec's title before falling back on… (Redocly#1073)

* fix: do not URI-encode parameter values for better readability

fixes Redocly#1138

* chore: upgrade deps

* feat: enable menuToggle by default

* chore: remove react-hot-loader from deps

fixes Redocly#1133

* fix: support discriminator mapping 1-n

fixes Redocly#1111

* fix: remove hardcoded fontFamily for oneOf labels

fixes Redocly#1120

* fix: h2 padding on mobile

fixes Redocly#1118

* fix: python comment stripped in headings

fixes Redocly#1116

* feat: new option hideSchemaTitles

* fix: remove implicit discriminator mapping when explicit is present

* chore: refactor request samples

* feat: new option payloadSampleIdx

* fix: search-box use theme

* fix: fix sortByRequired (stabilise sort) (Redocly#1136)

fixes Redocly#1104
fixes Redocly#1121
fixes Redocly#1061

* chore: Release 2.0.0-rc.19 🔖

* chore: update npm token for travis deploy

* chore(cli): redoc-cli@0.9.3

* fix: fix missing parameters

fixes Redocly#1142

* chore: Release 2.0.0-rc.20 🔖

* chore(cli): redoc-cli@0.9.4

* fix: use mobile menu background color value from theme (Redocly#1144)

* chore(cli): Lint and prettify cli/index.ts (Redocly#1074)

* fix: fix duplicated content in tags when using md headings

fixes Redocly#1150, fixes Redocly#1152

* fix: empty servers behaviour per OAS spec

fixes Redocly#1151

* chore: fix travis export vars

* tests: fix tests for empty servers

* chore: Release 2.0.0-rc.21 🔖

* chore(cli): upgrade handlebars in yarn.lock

* chore(cli): update redoc

* chore(cli): redoc-cli@0.9.5

* feat: add HTTP syntax highlighting (Redocly#1157)

* fix: do not process oneOf if inherited from parent with discriminator

* chore: minor perf optimizations

* chore: Release 2.0.0-rc.22 🔖

* fix: fix broken sticky sidebar in Chrome 80

fixes Redocly#1167

* chore: Release 2.0.0-rc.23 🔖

* chore(cli): redoc-cli@0.9.6

Co-authored-by: Sergey Dubovyk <knidarkness@gmail.com>
Co-authored-by: Roman Hotsiy <gotsijroman@gmail.com>
Co-authored-by: Anastasiya Mashoshyna <a.mashoshyna@gmail.com>
Co-authored-by: Michael Huynh <43751307+miqh@users.noreply.github.com>
Co-authored-by: Alex <alexgmin@gmail.com>
Co-authored-by: russellrobinson <russellrobinson@users.noreply.github.com>
Co-authored-by: Andrew Zhukevych <34597767+Hollister009@users.noreply.github.com>
Co-authored-by: Andrii Tykhan <andriytixan@gmail.com>
Co-authored-by: Dimitar Nanov <mitko.n@gmail.com>
Co-authored-by: bwjohnson-ss <41123899+bwjohnson-ss@users.noreply.github.com>
Co-authored-by: torbenw <torbenw@users.noreply.github.com>
Co-authored-by: Chris Faulkner <thefaulkner@gmail.com>
Co-authored-by: Zakary Kamal Ismail <zakary.kamal.fs@outlook.com>
Co-authored-by: Nan Yan <625518543@qq.com>
Co-authored-by: Anna Stasiuk <stasiukanya@gmail.com>
Co-authored-by: Kryštof Korb <krystof@korb.cz>
jmendiara added a commit to jmendiara/ReDoc that referenced this issue Feb 28, 2020
* feat(cli): added support for JSON string value for --options CLI argument (Redocly#1047)

closes Redocly#797

* docs: expandDefaultServerVariables

* fix: do not crash on empty scopes

fixes Redocly#1044

* fix: auth section appears twice

fixes Redocly#818

* fix: left menu item before group is not highligted

fixes Redocly#1033

* fix: clicking on group title breaks first tag

fixes Redocly#1034

* fix: false-positive recursive detection with allOf at the same level

* fix: remove excessive whitespace between md sections on small screens

fixes Redocly#874

* chore: Release 2.0.0-rc.15 🔖

* chore(cli): redoc-cli v0.9.0

* chore(cli): update yarn.lock

* chore(cli): redoc-cli@0.9.1

* fix: fix scrollYOffset when SSR

* chore: Release 2.0.0-rc.16 🔖

* chore(cli): redoc-cli@0.9.2

* docs: fix typo (Redocly#1062)

* feat: added support for file paths as --options cli argument (Redocly#1049)

* fix: types over-pluralization (Redocly#1057)

fixes Redocly#1053

* docs: improve options documentation (Redocly#1071)

* Sort by name
* Document `hideSingleRequestSampleTab`
* End option description with `.`

* fix: no quotes for default values in header fields. (Redocly#1059)

* fix: changed several components style font-family to monospace (Redocly#1063)

fixes Redocly#909

* fix: active menu item scroll into view

* chore: Release 2.0.0-rc.17 🔖

* fix: improve mime-type dropdown font

* fix: add oneOf buttons vertical space when wrapped to new line

* hore: Release 2.0.0-rc.18 🔖

* fix: wrap json examples in code tag (Redocly#1064)

* feat: display `multipleOf` constrains (Redocly#1065)

* docs: fix link to x-nullable docs from README (Redocly#1135)

* fix: change the title of "Security Scheme Type" to match "HTTP Authorization Scheme" (Redocly#1126)

* docs: fixed example slack api url (Redocly#1077)

* doc: fix some typos (Redocly#1117)

* feat(cli): Fallback on the spec's title before falling back on… (Redocly#1073)

* fix: do not URI-encode parameter values for better readability

fixes Redocly#1138

* chore: upgrade deps

* feat: enable menuToggle by default

* chore: remove react-hot-loader from deps

fixes Redocly#1133

* fix: support discriminator mapping 1-n

fixes Redocly#1111

* fix: remove hardcoded fontFamily for oneOf labels

fixes Redocly#1120

* fix: h2 padding on mobile

fixes Redocly#1118

* fix: python comment stripped in headings

fixes Redocly#1116

* feat: new option hideSchemaTitles

* fix: remove implicit discriminator mapping when explicit is present

* chore: refactor request samples

* feat: new option payloadSampleIdx

* fix: search-box use theme

* fix: fix sortByRequired (stabilise sort) (Redocly#1136)

fixes Redocly#1104
fixes Redocly#1121
fixes Redocly#1061

* chore: Release 2.0.0-rc.19 🔖

* chore: update npm token for travis deploy

* chore(cli): redoc-cli@0.9.3

* fix: fix missing parameters

fixes Redocly#1142

* chore: Release 2.0.0-rc.20 🔖

* chore(cli): redoc-cli@0.9.4

* fix: use mobile menu background color value from theme (Redocly#1144)

* chore(cli): Lint and prettify cli/index.ts (Redocly#1074)

* fix: fix duplicated content in tags when using md headings

fixes Redocly#1150, fixes Redocly#1152

* fix: empty servers behaviour per OAS spec

fixes Redocly#1151

* chore: fix travis export vars

* tests: fix tests for empty servers

* chore: Release 2.0.0-rc.21 🔖

* chore(cli): upgrade handlebars in yarn.lock

* chore(cli): update redoc

* chore(cli): redoc-cli@0.9.5

* feat: add HTTP syntax highlighting (Redocly#1157)

* fix: do not process oneOf if inherited from parent with discriminator

* chore: minor perf optimizations

* chore: Release 2.0.0-rc.22 🔖

* fix: fix broken sticky sidebar in Chrome 80

fixes Redocly#1167

* chore: Release 2.0.0-rc.23 🔖

* chore(cli): redoc-cli@0.9.6

Co-authored-by: Sergey Dubovyk <knidarkness@gmail.com>
Co-authored-by: Roman Hotsiy <gotsijroman@gmail.com>
Co-authored-by: Anastasiya Mashoshyna <a.mashoshyna@gmail.com>
Co-authored-by: Michael Huynh <43751307+miqh@users.noreply.github.com>
Co-authored-by: Alex <alexgmin@gmail.com>
Co-authored-by: russellrobinson <russellrobinson@users.noreply.github.com>
Co-authored-by: Andrew Zhukevych <34597767+Hollister009@users.noreply.github.com>
Co-authored-by: Andrii Tykhan <andriytixan@gmail.com>
Co-authored-by: Dimitar Nanov <mitko.n@gmail.com>
Co-authored-by: bwjohnson-ss <41123899+bwjohnson-ss@users.noreply.github.com>
Co-authored-by: torbenw <torbenw@users.noreply.github.com>
Co-authored-by: Chris Faulkner <thefaulkner@gmail.com>
Co-authored-by: Zakary Kamal Ismail <zakary.kamal.fs@outlook.com>
Co-authored-by: Nan Yan <625518543@qq.com>
Co-authored-by: Anna Stasiuk <stasiukanya@gmail.com>
Co-authored-by: Kryštof Korb <krystof@korb.cz>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant