Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Similar to OpenAPI, JSON Schema users often want to emit custom extensions into the JSON. This adds support for using the
@extension
decorator to support that use case.However, unlike OpenAPI, I have seen use cases where people want to emit actual schema content as the value of a custom extension as opposed to raw JSON. For example, something like
@extension("x-content-schema", Person)
. In the absence of syntax for defining value literals (#2046 et al), aJson<T>
template is used to disambiguate the "give me a schema for this value" vs "put this into the document as literal JSON" use cases. TheJson<T>
template validates that its argument is valid JSON, and when emitting JSON Schema, we use this as a sentinel to determine whether to emit a schema or raw JSON.Closes #2054.