Skip to content

RFC for Adding Hyperlinking#22

Merged
zdne merged 5 commits intomasterfrom
smizell/add-hyperlinks
Nov 26, 2015
Merged

RFC for Adding Hyperlinking#22
zdne merged 5 commits intomasterfrom
smizell/add-hyperlinks

Conversation

@smizell
Copy link
Contributor

@smizell smizell commented Nov 24, 2015

This adds the RFC for adding hyperlinking into the base Refract specification.

@danielgtaylor
Copy link
Contributor

LGTM, but would love to get feedback from @Almad and @zdne

Copy link
Member

Choose a reason for hiding this comment

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

I'm not sure, what does "resolvable" in this context mean?

smizell added a commit to refractproject/refract-spec that referenced this pull request Nov 25, 2015
Move compact to its own repo:
refractproject/rfcs#17

Remove namespacing: refractproject/rfcs#22
@zdne
Copy link
Member

zdne commented Nov 25, 2015

@smizell this is draft is HUGE in its scope.

Please let me break it down for having a better grasp on the problem. Of what this draft has to offer:

  1. Express what relation element has through links
  2. Embed (transclude) links into the element's meta
  3. Remove refract namespaces and replace them with profile relations

For the simplicity and speed I would like to ask you for following:

  1. Do not solve embedding of links at all. (No.2)
  2. Do not solve replacing namespaces with profile (No.3) at this point (albeit I would love to do this).

Furthermore I would like to see a synergy with the transition element defined in the API Description namespace (Transition (Element)) especially considering its relation property. At least I am looking for aligning the names (rel vs. relation). But I would appreciate consideration of reusing the link element in the relation element.

As for removing namespaces – I am very much up for it, I would leave up to you and @netmilk to consider if this is something you want to get in to as part of current operations.

Note Data Structure namespace depends on current base spec link element's path attribute and this is something that should be considered.

But again I would prefer to have this (removing namespaces and using profile relation) as a separate discussion – otherwise we are trying to do too many things at once.

@smizell
Copy link
Contributor Author

smizell commented Nov 25, 2015

@zdne Sorry for the confusion. I did not want to propose those changes in this RFC, but simply make them known so we can think ahead while thinking short term. Would hate to make the wrong decision for being shortsighted. Please simply keep those two additional ideas (embedding and removing namespacing) in the back of your mind as we proceed.

Regarding synthesizing with the Transition Element, could you explain this a little more? Are you meaning for this proposal to use a Transition Element instead of an array of objects with rel and href? If not, could you elaborate?


This is out of scope of this RFC, but I did want to add a note.

Note Data Structure namespace depends on current base spec link element's path attribute and this is something that should be considered.

I have started a preliminary branch for all of these changes. We would not remove path from the ref element for this reason.

@zdne
Copy link
Member

zdne commented Nov 25, 2015

Regarding synthesizing with the Transition Element, could you explain this a little more? Are you meaning for this proposal to use a Transition Element instead of an array of objects with rel and href? If not, could you elaborate?

Ideally I would love the same thing be called the same. (rel vs relation)

Copy link

Choose a reason for hiding this comment

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

The point of this is? You plan to use links for namespaces or what?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I am removing this from the current RFC discussion, but some thoughts (feel free to continue questions/thoughts here).

The current usage and implementation of Refract completely ignore everything dealing with namespacing. In adding hyperlinking, we can link to a profile that defines the usage for a given structure, which is what we're currently doing.

To actually make namespacing work, we will need to defined way to not only define namespaces (which we don't have nor will we have for a long while) but also a way to compare a given namespace with the actual data. Lots of work here to do before this could ever be supported.

Because there are no implementations or specifications even using this, and because this would require a great deal of work, and because this is a pre-1.0.0 version of things, we need to remove any cruft we can, and therefore we are thinking to remove namespacing.

What are your thoughts?

@smizell
Copy link
Contributor Author

smizell commented Nov 25, 2015

I have changed the link per the idea of @zdne. Basically, instead of a normal object, I am using a special Link Element that can be used as the basis for the Transition element.

Also, this opens the way for embedding responses through existing things in the API Description format. We'll leave that discussion until later, but in using an element, we provide a way for this to be extended very easily to either use Asset or Response

@smizell
Copy link
Contributor Author

smizell commented Nov 25, 2015

Note that I also opened a PR for these changes in the spec repository. If things look OK with this, we can move to discussing changing the spec, which hopefully that PR will do.

@zdne
Copy link
Member

zdne commented Nov 26, 2015

👍 merging

zdne added a commit that referenced this pull request Nov 26, 2015
@zdne zdne merged commit 3b5bd87 into master Nov 26, 2015
@zdne zdne deleted the smizell/add-hyperlinks branch November 26, 2015 10:11
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.

5 participants