{"action":"created","issue":{"url":"https://api.github.com/repos/RestKit/RestKit/issues/39","labels_url":"https://api.github.com/repos/RestKit/RestKit/issues/39/labels{/name}","comments_url":"https://api.github.com/repos/RestKit/RestKit/issues/39/comments","events_url":"https://api.github.com/repos/RestKit/RestKit/issues/39/events","html_url":"https://github.com/RestKit/RestKit/issues/39","id":730554,"number":39,"title":"Implement support for the HATEOAS constraint","user":{"login":"andrashatvani","id":695746,"avatar_url":"https://avatars.githubusercontent.com/u/695746?v=3","gravatar_id":"","url":"https://api.github.com/users/andrashatvani","html_url":"https://github.com/andrashatvani","followers_url":"https://api.github.com/users/andrashatvani/followers","following_url":"https://api.github.com/users/andrashatvani/following{/other_user}","gists_url":"https://api.github.com/users/andrashatvani/gists{/gist_id}","starred_url":"https://api.github.com/users/andrashatvani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrashatvani/subscriptions","organizations_url":"https://api.github.com/users/andrashatvani/orgs","repos_url":"https://api.github.com/users/andrashatvani/repos","events_url":"https://api.github.com/users/andrashatvani/events{/privacy}","received_events_url":"https://api.github.com/users/andrashatvani/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/RestKit/RestKit/labels/Feature","name":"Feature","color":"02e10c"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/RestKit/RestKit/milestones/15","labels_url":"https://api.github.com/repos/RestKit/RestKit/milestones/15/labels","id":92598,"number":15,"title":"1.0","description":"RestKit finally reaches the magical 1.0 milestone!","creator":{"login":"blakewatters","id":8392,"avatar_url":"https://avatars.githubusercontent.com/u/8392?v=3","gravatar_id":"","url":"https://api.github.com/users/blakewatters","html_url":"https://github.com/blakewatters","followers_url":"https://api.github.com/users/blakewatters/followers","following_url":"https://api.github.com/users/blakewatters/following{/other_user}","gists_url":"https://api.github.com/users/blakewatters/gists{/gist_id}","starred_url":"https://api.github.com/users/blakewatters/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blakewatters/subscriptions","organizations_url":"https://api.github.com/users/blakewatters/orgs","repos_url":"https://api.github.com/users/blakewatters/repos","events_url":"https://api.github.com/users/blakewatters/events{/privacy}","received_events_url":"https://api.github.com/users/blakewatters/received_events","type":"User","site_admin":false},"open_issues":18,"closed_issues":18,"state":"open","created_at":"2012-03-06T14:06:36Z","updated_at":"2014-08-02T16:00:38Z","due_on":null,"closed_at":null},"comments":11,"created_at":"2011-04-04T13:25:16Z","updated_at":"2015-02-23T18:20:27Z","closed_at":null,"body":"According to Roy Fielding:\r\n> \"REST is defined by four interface constraints: identification of resources; manipulation of resources through representations; self-descriptive messages; and, hypermedia as the engine of application state.\" [[1](http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm)]\r\n\r\nThe first three are incorporated by RestKit (although it seems to couple REST to HTTP), but the latter one is missing. Namely, there is no built-in support for links representing possible state transitions or resource relationships, but rather the related entities need to be embedded or to be asked for with isolated queries based on id's.\r\n\r\n> \"...if the engine of application state (and hence the API) is not being driven by hypertext, then it cannot be RESTful and cannot be a REST API. Period. \" [[2](http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven)]\r\n\r\nI think most people entirely miss the HATEOAS constraint, because most frameworks neither enforce, nor support the usage of them. Changing this for RestKit could improve the quality of and finally enable REST for wannabe-rest-systems."},"comment":{"url":"https://api.github.com/repos/RestKit/RestKit/issues/comments/75599709","html_url":"https://github.com/RestKit/RestKit/issues/39#issuecomment-75599709","issue_url":"https://api.github.com/repos/RestKit/RestKit/issues/39","id":75599709,"user":{"login":"danpalmer","id":202400,"avatar_url":"https://avatars.githubusercontent.com/u/202400?v=3","gravatar_id":"","url":"https://api.github.com/users/danpalmer","html_url":"https://github.com/danpalmer","followers_url":"https://api.github.com/users/danpalmer/followers","following_url":"https://api.github.com/users/danpalmer/following{/other_user}","gists_url":"https://api.github.com/users/danpalmer/gists{/gist_id}","starred_url":"https://api.github.com/users/danpalmer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danpalmer/subscriptions","organizations_url":"https://api.github.com/users/danpalmer/orgs","repos_url":"https://api.github.com/users/danpalmer/repos","events_url":"https://api.github.com/users/danpalmer/events{/privacy}","received_events_url":"https://api.github.com/users/danpalmer/received_events","type":"User","site_admin":false},"created_at":"2015-02-23T18:20:27Z","updated_at":"2015-02-23T18:20:27Z","body":"What's the status of HATEOAS support here? In my mind, this is the most important part of \"REST\", especially given that using HTTP gives you most of the constraints for free, and I was disappointed to find that a library called \"RestKit\" doesn't support some of the core concepts of REST.\r\n\r\nI'd like to explore adding support for Hypermedia controls, but I've never used RestKit before. Would anyone be interested in helping out with this?"}}