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

OpenAPI 3.1: Missing description when $ref used #1727

Closed
daniilguit opened this issue Aug 19, 2021 · 13 comments · Fixed by #1766
Closed

OpenAPI 3.1: Missing description when $ref used #1727

daniilguit opened this issue Aug 19, 2021 · 13 comments · Fixed by #1766
Assignees

Comments

@daniilguit
Copy link

Describe the bug
OpenAPI 3.1 brings JSONSchema feature that allows using $ref with other attributes (e.g. "description")
redoc as of 2.0.0-rc.56 it ignores description (inheriting it from refed type)

**Minimal reproducible OpenAPI snippet
/test -> response -> .testAttr should have description "Overriden description", but currently has "Refed description"

{
      "openapi": "3.1.0",
      "info": {
        "title": "AA",
        "version": "1.0"
      },
      "paths": {
        "/test": {
          "get": {
            "operationId": "test",
            "responses": {
              "200": {
                "content": {
                  "application/json": {
                    "schema": {
                      "type": "object",
                      "properties": {
                        "testAttr": {
                          "description": "Overriden description",
                          "$ref": "#/components/schemas/Test"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
      },
      "components": {
        "schemas": {
          "Test": {
            "type": "object",
            "description": "Refed description"
          }
        }
      }
    }

Screenshots
att_description

@RomanHotsiy RomanHotsiy self-assigned this Aug 20, 2021
@madsodgaard
Copy link

I am facing the same issue when previewing the docs with openapi-cli 1.0.0-beta.61, also occurs with the required attribute.

@daniilguit
Copy link
Author

daniilguit commented Oct 11, 2021

@Marshevskyy : Thanx a lot for fixing this issue! It was a real deal breaker for us. Can't wait for the new release.

@Marshevskyy
Copy link
Contributor

np @daniilguit. we are planning to release it today

@madsodgaard
Copy link

@Marshevskyy Yea, thanks a lot! How does the versioning between openapi-cli and this package work? Does it also require a new release of openapi-cli to get this fix in openapi preview-docs?

@RomanHotsiy
Copy link
Member

@madsodgaard yes. We'll do it too.

@RomanHotsiy
Copy link
Member

cc @AlexVarchuk

@tigerinus
Copy link

np @daniilguit. we are planning to release it today

Is this included in https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js?

We are still experiencing the same problem where description is missing in each schema.

Thanks!

@AlexVarchuk
Copy link
Collaborator

@tigerinus very weird. which version openApi you use? Do you use $ref schema with description?

@tigerinus
Copy link

@AlexVarchuk

It's using "https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js" in the HTML.

OpenAPI example:

    Customer:
      description: |
        Customer information, including contact information for booking order related issues
      allOf:
        - $ref: "#/components/schemas/Person"
        - properties:
            phoneCountryCode:
              type: string
              description: |
                Country calling code defined by ITU, starting with international dialing prefix `+`
              example: "+1"
            phoneNumber:
              type: string
              description: |
                Phone number including area code without any punctuation
              example: "1234567890"
            email:
              type: string
              example: "peter_parker@yahoo.com"

Rendered Result:

image

@RomanHotsiy
Copy link
Member

@tigerinus must be CDN caching. Try again plz.

@tigerinus
Copy link

@tigerinus must be CDN caching. Try again plz.

@RomanHotsiy I thought that was the reason so I did hard reset the browser everytime I test it. Unfortunately it's still the case. Can you repro it locally?

glosier added a commit to customerio/redoc that referenced this issue Dec 5, 2021
* feat: add new option hideSchemaPattern (Redocly#1475)

* feat: add new option hideSchemaPattern
* chore: add hideSchemaPattern option to readme

* fix: add missed labels to elements (Redocly#1445)

* chore: upgrade prism.js

fixes Redocly#1455

* chore: Release 2.0.0-rc.48 🔖

* docs: fix `menuToggle` default value

fixes Redocly#1476

[ci skip]

* docs: fix the Rebilly link

* chore(cli): v0.10.2

* fix: fix SourceCodeWithCopy component to be non-pure

* docs: document theme options (Redocly#1438)

* chore: remove duplicate semicolons (Redocly#1504)

* fix: crash on multiple examples on parameter object

fixes Redocly#1485

* fix: pass boolean and number values as a string in highlight function (Redocly#1512)

* chore: Release 2.0.0-rc.49 🔖

* chore: update travis badge url

* fix: background-color in search results (Redocly#1531)

* fix: background-color in search results

* Delete some changes

* chore: clean up .travis.yaml

* chore(cli): upgrade redoc to rc.49

* chore(cli): v0.10.3

* fix: false-positive recursive tag case when using oneOf + allOf (Redocly#1534)

* fix: add includes polyfill

fixes Redocly#1530

* chore: Release 2.0.0-rc.50 🔖

* chore(cli): v0.10.4

* docs: remove outdated config option from readme (Redocly#1543)

* docs: minor syntax highlight fix on the README (Redocly#1549)

* feat: add disable-google-font parameter to serve command in cli (Redocly#1558)

* docs: remove extra word in grammar (Redocly#1539)

* chore: use openapi-core to bundle definition instead of json-schema-ref-parser (Redocly#1500)

* chore: use openapi-core to bundle definition instead of json-schema-ref-parser
* chore: update: root and demo webpack configs
* chore: refactor loadAndBundleSpec
* chore: update vesions: openapi-core, redoc
* chore: rolled back webpack.config(s) to previous version
* chore: changed the way of creating core Config for bundling definition
* fix: disable eslint react/display-name
* fix: update nodejs version to 12 in travis config
* chore: optimize verification: browser or server
* chore: add fetch only for browser
* Update src/utils/loadAndBundleSpec.ts
* chore: isBrowser verification improvment
Co-authored-by: Roman Hotsiy <gotsijroman@gmail.com>

* chore: unit tests to check loading and bundling api definitions with openapi-core (Redocly#1568)

* chore: Release 2.0.0-rc.51

* chore(cli): v0.11.0

* chore(cli): v0.11.1

* fix: broken paths when budle or serve using cli (Redocly#1572)

* chore(cli): v0.11.2

* chore: update openapi-core version to fix parsing root document

* chore: Release 2.0.0-rc.52

* chore: Release 2.0.0-rc.53

* fix: added missing semicolon to styling (Redocly#1578)

* docs: update specUrl (Redocly#1577)

* chore(cli): v0.11.3

* fix: right absolute path for load and bundle definition (Redocly#1579)

* chore(cli): v0.11.4

* chore: update(cli) engine node version >=12 (Redocly#1583)

* fix: parse json theme string for standalone tag (Redocly#1492)

* fix: use operation path if operation summary/description is not provided (Redocly#1596)

resolves Redocly#1270

* feat: add basic support openApi 3.1 (Redocly#1622)

* chore: upgrade dependencies (Redocly#1634)

* chore: modernize build pipeline (Redocly#1635)

* chore: remove extra webpack resolver

* feat: merge refs oas 3.1 (Redocly#1640)

* chore: v2.0.0-rc.54

* chore(cli): upgrade redoc to rc.54

* chore(cli): v0.12.0

* chore(cli): v0.12.1

* feat: added git folder sync config

* chore: change cors url in the demo

* fix: broken linkify

fixes Redocly#1655

* fix: fix accidentally removed onLoaded

fixes Redocly#1656

* chore: fix sync workflow

* chore: v2.0.0-rc.55

* chore: fix demo slack url

* chore: changed docs sync flow

* chore: added security section into pull request template

* docs: improve the redoc cli README (Redocly#1679)

- Break some long lines
- Add some articles (the, a)
- Add a couple links for additional context
- Expand the SSR acronym
- Describe what --watch does

* feat: added localization for some labels (Redocly#1675)

* feat: add yaml highlight (Redocly#1684)

* feat: add yaml highlight

* chore: upgrade prism version

* chore(cli): v0.12.2

* chore: bumps npm-shrinkwrap (Redocly#1688)

* chore: upgrade shrinkwrap

* chore: fix dockerfile

* fix: handle empty object in security array (Redocly#1678)

* docs: add real-life usage example: BoxKnight (Redocly#1651)

* chore: add github template (Redocly#1708)

* chore: add headers to github templates (Redocly#1710)

* fix: improve openapi 3.1 (Redocly#1700)

* fix: hideLoading options in redoc standalone (Redocly#1709)

* feat: add github action to build docker images and push to ghcr.io on release (Redocly#1614)

* fix: nullable object's fields were missing (Redocly#1721)

* chore: up version for release (Redocly#1722)

* chore: add change log for v2.0.0-rc.56(Redocly#1723)

* chore(cli): v0.12.3

* docs(GSOD): Adds new quickstart doc (Redocly#1718)

* docs: fix broken links in intro (Redocly#1730)

* Removes content that is now in documentation and adds link to docs

* fix: Schema for events incorrectly omits readOnly and includes writeOnly (Redocly#1720 Redocly#1540)

* Apply suggestions from code review

* Update README.md

Co-authored-by: Adam Altman <adam@rebilly.com>

* Updates readme with about section and organizes features list

* Adds some notes to deployment

* feat: new option generatedPayloadSamplesMaxDepth (Redocly#1642)

* chore: update libs (Redocly#1707)

* fix: Redoc spelling

* Updates per reviews and adds new logo

* Minor edits

* fix: scrolling to the first item (Redocly#1753)

* Adds comparison table and OpenAPI link section

* Minor edit

* Updates image src

* fix: OpenAPI 3.1: Missing description when $ref used Redocly#1727

* fix: OpenAPI 3.1: Missing description when $ref used Redocly#1727

* fix: improve publish action scripts (Redocly#1729)

* feat: add q/kdb+ syntax highlighting (Redocly#1605)

* fix: The number of items in the array in the array is incorrect Redocly#1762 (Redocly#1763)

* fix: fix deref logic for oas3.1 (Redocly#1767)

* chore: remove commented out code (Redocly#1768)

* fix: No match scenario in search (Redocly#1667)

Co-authored-by: Alex Varchuk <olexandr.varchuk@gmail.com>

* chore: v2.0.0-rc.57 (Redocly#1770)

* chore: update publish cli workflow

* chore: fix publish workflow and disable s3 demo

* chore: fix publish workflow again

* chore(cli): v0.13.0 (Redocly#1771)

* chore: fix cli publish workflow

* fix: Default boolean property value not rendered Redocly#1779 (Redocly#1781)

* chore: remove broken badges from README

* [GSoD]Reorganizes the quickstart into a deployment guide and quickstart (Redocly#1749)

* Reorganizes the quickstart into a deployment guide and quickstart

* Minor edits

* fix: minor formatting issue

* fix: simplify phrasing

* Adds redirects, link to preview-docs docs, and other review edits

* remove IE polyfills as IE is no longer supported

Co-authored-by: Ivana Isadora Devcic <33730345+skadinna@users.noreply.github.com>

* sync: Synced local 'docs/' with remote 'docs/redoc/'

* fix: mobile view in docker image (Redocly#1795)

* sync: Synced local 'docs/' with remote 'docs/redoc/'

* sync: Synced local 'docs/' with remote 'docs/redoc/'

* chore: run prettier & add husky pre-commit hook (Redocly#1800)

* fix: exclusiveMin/Max shows incorect range (Redocly#1799)

* fix: exclusiveMin/Max shows incorect range

* cover all number range cases & add unit tests

* add more tests

* fix maximum value

* simplify humanizeNumberRange function

* simplify exclusive checks

* Update src/utils/openapi.ts

Co-authored-by: Roman Hotsiy <gotsijroman@gmail.com>

* update test coverage

* linting

* revert weird prettier changes

* add md files to prettier ignore

Co-authored-by: Roman Hotsiy <gotsijroman@gmail.com>

* fix: add browser build for webpack 5 (Redocly#1796)

* chore: v2.0.0-rc.58 (Redocly#1808)

* chore(cli): v0.13.1 (Redocly#1809)

* fix this

Co-authored-by: Anna Stasiuk <stasiukanya@gmail.com>
Co-authored-by: romanhotsiy <gotsijroman@gmail.com>
Co-authored-by: jabba-jedi <menggan@yandex.ru>
Co-authored-by: Karl Scheirer <kscheirer@users.noreply.github.com>
Co-authored-by: baijunyao <baijunyao@baijunyao.com>
Co-authored-by: Anton Kozachuk <54616703+AntonKozachuk@users.noreply.github.com>
Co-authored-by: Oleksiy Kachynskyy <okachynskyy@users.noreply.github.com>
Co-authored-by: 迷渡 <justjavac@gmail.com>
Co-authored-by: Patrick Demers <patrickdemers6@gmail.com>
Co-authored-by: Kurt Furbush <kurtfurbush@gmail.com>
Co-authored-by: Andriy Leliv <andrii.leliv@gmail.com>
Co-authored-by: Olivier Beaulieu <olivierbeaulieu@users.noreply.github.com>
Co-authored-by: langhabel <langhabel@users.noreply.github.com>
Co-authored-by: Yevhenii Hyzyla <hyzyla@gmail.com>
Co-authored-by: AlexVarchuk <olexandr.varchuk@gmail.com>
Co-authored-by: Ivan Shvets <shvets.email1@gmail.com>
Co-authored-by: Ivan Shvets <37488015+Leocete@users.noreply.github.com>
Co-authored-by: Roman <marshevskyy@gmail.com>
Co-authored-by: Waldir Pimenta <waldyrious@gmail.com>
Co-authored-by: ILya Volchenkov <zvolkzrus@gmail.com>
Co-authored-by: Andrea Mugx <andrea.mugnaini@fundingcircle.com>
Co-authored-by: Valdir Mendes <valdir.mfjesus@hotmail.com>
Co-authored-by: Marius Butuc <marius.butuc@gmail.com>
Co-authored-by: Roelof Kallenkoot <roelof000@gmail.com>
Co-authored-by: Heather Cloward <heathercloward@gmail.com>
Co-authored-by: Adam Altman <adam@redoc.ly>
Co-authored-by: Andriy Zaleskyy <zal3sky@gmail.com>
Co-authored-by: Ivana Isadora Devcic <33730345+skadinna@users.noreply.github.com>
Co-authored-by: Swapnil Ogale <swapnilogale@gmail.com>
Co-authored-by: Adam Altman <adam@rebilly.com>
Co-authored-by: Mark Theisen <mark.theisen@spothero.com>
Co-authored-by: Roman Marshevskyy <roman.marshevskyy@redoc.ly>
Co-authored-by: kylenarocroc <3884351+kylenarocroc@users.noreply.github.com>
Co-authored-by: Gabriel Simon Gianotti <gabrielgianotti5@gmail.com>
Co-authored-by: raghavi92 <raghavi92@gmail.com>
Co-authored-by: redocly-bot <null>
Co-authored-by: Oprysk Vyacheslav <oprusk230992@gmail.com>
@atruskot
Copy link

atruskot commented Jun 2, 2022

Still able to reproduce this issue in redoc-cli@0.13.16. Seeing the base description rather than the sibling/overridden one. Will see the sibling description if the base has no description. The issue isn't specific to description, any base attribute will render if it exists. So base examples can't be overridden either, for example.

@bvisness
Copy link

bvisness commented Jun 14, 2022

Seeing this in v2.0.0-rc.72 as well, specifically for a property of an object:

# in a request definition...
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  settings:
                    $ref: "#/components/schemas/ReffedObject"
                    description: |
                      This should override the referenced description but it does not!

# elsewhere...
    ReffedObject:
      type: object
      description: |
        This is the base description, and the one I am seeing in Redoc.

I have seen description override a referenced description in a oneOf, but not here...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants