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

fix(deep-linking): When swagger UI is served under subpath deep link removes path #9488

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

DreierF
Copy link
Contributor

@DreierF DreierF commented Jan 13, 2024

Description

This PR changes the way the hash is set when deep linking is enabled.

Motivation and Context

Our application has an explicit html > head > base set to where the application is exposed for example <base url="https://company.com/base/" />. This is needed to allow client side routing while keeping the ability to change the base path under which the app is served.
Swagger UI is exposed under https://company.com/base/api, so when deep linking is enabled it would change the URL to https://company.com/base/#/Tag/OperationId instead of https://company.com/base/api#/Tag/OperationId. By using the location.hash API not only for resetting the hash, but also for setting it this works as expected as it only sets the hash, but leaves the rest of the URL intact.

How Has This Been Tested?

I patched the swagger-ui implementation locally and verified that the behavior is as expected.

Checklist

  • No code changes (src/ is unmodified: changes to documentation, CI, metadata, etc.)
  • Dependency changes (any modification to dependencies in package.json)
  • Bug fixes (non-breaking change which fixes an issue)
  • Improvements (misc. changes to existing features)
  • Features (non-breaking change which adds functionality)

My changes...

  • are breaking changes to a public API (config options, System API, major UI change, etc).
  • are breaking changes to a private API (Redux, component props, utility functions, etc.).
  • are breaking changes to a developer API (npm script behavior changes, new dev system dependencies, etc).
  • are not breaking changes.

Documentation

  • My changes do not require a change to the project documentation.
  • My changes require a change to the project documentation.
  • If yes to above: I have updated the documentation accordingly.

Automated tests

  • My changes can not or do not need to be tested.
  • My changes can and should be tested by unit and/or integration tests.
  • If yes to above: I have added tests to cover my changes.
  • If yes to above: I have taken care to cover edge cases in my tests.
  • All new and existing tests passed.

Not sure if there would be a good way on how to test this automatically.

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 this pull request may close these issues.

None yet

1 participant