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

implemented _links property to hold link and relationship links while… #17

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

amwmedia
Copy link
Contributor

@amwmedia amwmedia commented Dec 2, 2015

Here's a possible implementation for _links. There may be a better way to do this, but this was the most obvious solution I could think of that doesn't break backwards compatibility by turning the relationships array into an array of objects (or something like that).

… not breaking the _relationships array interface
@beauby
Copy link
Owner

beauby commented Dec 7, 2015

Hi @amwmedia, thanks for your work (again ;)). A few remarks I'd like to hear your thoughts about:

  1. Could you add some tests to ensure that resource-level and relationship-level links are parsed as we expect, and also a test for what happens when no link is provided (I believe with your current patch the _links attribute would not be defined, but it might be better to set it to {} by default).
  2. What happens if both a resource and one of its relationships have a self link? I believe currently it would lead to the resource's self link being overwritten. Maybe a solution would be to have a separate _relationship_links property.
  3. There should be no need to name the property _links rather than simply links as the spec formally disallows attributes named links. edit: however, seeing that we already have an _attributes property, it makes sense to keep it as _links.

@amwmedia
Copy link
Contributor Author

amwmedia commented Dec 7, 2015

Hey @beauby, I didn't want to finalize this too much (with tests and such) before I got your take on the actual implementation. Currently _links is created, and relationships links fall into a _links.relationshipName object. I think this works so long as the spec does not allow for relationships within relationships (which I don't believe is the case). The only possible conflict with this approach would be if you have a relationship named "self" or something unlikely like that.

We could prefix a relationship link property with _ as well. so you'd end up with _links._relationshipName

Thoughts?

@kulor
Copy link

kulor commented Jan 15, 2016

hey, @amwmedia thanks for this, I'm keen to use the links functionality so am willing to help out with this if you need it (write tests etc).

I've just checked it out locally and it seemingly works with my heavily linked dataset.

on the discussion about _links vs. links, I vote to stay with _links as it's the internals of the model than the first class attributes.

cc/ @beauby

@beauby
Copy link
Owner

beauby commented Jan 15, 2016

Hi there! Sorry I took so long (again) to get back. So, after giving it a thought, I definitely agree that _links is more consistent than links. The only thing I'm not comfortable with in this PR is merging the resource and relationship links. I'd much rather have a _relationship_links object storing links for each relationship. Other than that, I'm totally 👍 on this PR and would love to get it merged with some tests!

@amwmedia
Copy link
Contributor Author

the possibility of a relationship link collision was my only reservation on this as well. I can try to get this change in soon. We are closing out a milestone today at work, so possibly early next week.

@beauby
Copy link
Owner

beauby commented Jan 15, 2016

Awesome @amwmedia!

@beauby
Copy link
Owner

beauby commented Mar 10, 2016

Hi @amwmedia, any news on this front?

@amwmedia
Copy link
Contributor Author

Sorry, things did not slow down as I had hoped after that week. In fact, they got more busy :-). This is still on my radar, but if anyone else wants to make this last small change, feel free. I've just been swamped lately.

@beauby beauby mentioned this pull request Mar 15, 2016
@vjustov
Copy link

vjustov commented Apr 29, 2017

Hey @amwmedia, Did you get a chance to check this out?

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.

None yet

4 participants