-
-
Notifications
You must be signed in to change notification settings - Fork 371
Description
It's fairly common links to connect multiple source resources to the same target resource. This often involves a lot of duplication in the LDO, but only the schema keywords can be re-used through "$ref".
This can be annoying when the link is almost entirely the same. In particular, "href" and "hrefSchema" need to match, so they are best re-used in pairs, which is not currently possible.
Since "links" is an array, having a schema consisting of just a "links" array is one re-use option, but only if the desired effect is essentially concatenating the arrays. Tweaking an individual LDO (use case: same "href", "hrefSchema", "targetSchema" and "rel", but applying a different title at each point of use) is somewhere between challenging and impossible.
I propose that we allow "$ref" for an LDO (as elements of the "links" array).
Since keeping track of array positions is a pain, we should add a new "linkDefinitions" keyword, which is an object where each property value is an LDO instead of a schema.
I'm fine with waiting a while to get feedback on draft-06 and see how much this comes up in practice, but it has come up even in some fairly trivial examples I've tried to write recently.