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.
In response to #12
This is a feasibility study into supporting json:api helpers. It is only a partial solution.
Description
This solution provides a function that returns a
%Schema{}
struct, which can then be passed to the Operation spec. The struct defines a json:api "document", which is the object representing a json:api request or response body.The ability to pass a
%Schema{}
to the Operation spec is also new in this PR. Often, it was necessary to create a schema module that did very little except wrap around another schema that was of interest. The key to making this work is to leverage the"x-struct"
attribute in%Schema{}
. If this attribute has a value, that tellsSchemaResolver
to add it to the/components/schemas/*
in the Open API document. Using"x-struct"
feels like a hack, so I'm eager to hear opinions on a better approach.Check out
OpenApiSpexTest.JsonApiController
in this PR for top-level usage.