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

refactor(json-schema-2020-12-samples): design formatAPI consistent with mediatypeAPI and encoderAPI #9799

Merged
merged 1 commit into from Apr 11, 2024

Conversation

twankamp
Copy link
Contributor

@twankamp twankamp commented Apr 10, 2024

Refs #9739

Description

Use API to generate format string, to match how it's done for mediatype, and avoid a lengthy case statement
Conversely also make mediatype return a random string if not known, to match how it's done for format
It doesn't change functionality so no new unit tests are added, but existing tests pass

My PR contains...

  • 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.

Copy link
Member

@char0n char0n left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pristine work, thanks!

The only downside I see that we now allow to unregistered the build in formats. And now I remember that this was the original reason for designing the format API in a way it was design. This also apply to media type and encoder APIs.

We allowed to override the build it format generators but didn't allow to unregistered them.

Anyway format registry is now consistent with the encoder and media type APIs.

If you're interested we now need a PR that will make sure about following:

  • we allow to override any registry value
  • if the value is unregistered from any registry, we should make sure that we set the original value from defaults

Please let me know if you're gonna address this in another PR. THanks!

@char0n char0n changed the title fix(json-schema-2020-12-samples): use api for format, consistent with mediatype and encoder refactor(json-schema-2020-12-samples): design formatAPI consistent with mediatypeAPI and encoderAPI Apr 11, 2024
@char0n char0n merged commit 6160b10 into swagger-api:master Apr 11, 2024
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants