{"action":"created","issue":{"url":"https://api.github.com/repos/WordPoints/hooks-api/issues/124","repository_url":"https://api.github.com/repos/WordPoints/hooks-api","labels_url":"https://api.github.com/repos/WordPoints/hooks-api/issues/124/labels{/name}","comments_url":"https://api.github.com/repos/WordPoints/hooks-api/issues/124/comments","events_url":"https://api.github.com/repos/WordPoints/hooks-api/issues/124/events","html_url":"https://github.com/WordPoints/hooks-api/issues/124","id":148447728,"number":124,"title":"Entity Storage API","user":{"login":"JDGrimes","id":4005415,"avatar_url":"https://avatars.githubusercontent.com/u/4005415?v=3","gravatar_id":"","url":"https://api.github.com/users/JDGrimes","html_url":"https://github.com/JDGrimes","followers_url":"https://api.github.com/users/JDGrimes/followers","following_url":"https://api.github.com/users/JDGrimes/following{/other_user}","gists_url":"https://api.github.com/users/JDGrimes/gists{/gist_id}","starred_url":"https://api.github.com/users/JDGrimes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JDGrimes/subscriptions","organizations_url":"https://api.github.com/users/JDGrimes/orgs","repos_url":"https://api.github.com/users/JDGrimes/repos","events_url":"https://api.github.com/users/JDGrimes/events{/privacy}","received_events_url":"https://api.github.com/users/JDGrimes/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/WordPoints/hooks-api/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"JDGrimes","id":4005415,"avatar_url":"https://avatars.githubusercontent.com/u/4005415?v=3","gravatar_id":"","url":"https://api.github.com/users/JDGrimes","html_url":"https://github.com/JDGrimes","followers_url":"https://api.github.com/users/JDGrimes/followers","following_url":"https://api.github.com/users/JDGrimes/following{/other_user}","gists_url":"https://api.github.com/users/JDGrimes/gists{/gist_id}","starred_url":"https://api.github.com/users/JDGrimes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JDGrimes/subscriptions","organizations_url":"https://api.github.com/users/JDGrimes/orgs","repos_url":"https://api.github.com/users/JDGrimes/repos","events_url":"https://api.github.com/users/JDGrimes/events{/privacy}","received_events_url":"https://api.github.com/users/JDGrimes/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/WordPoints/hooks-api/milestones/1","html_url":"https://github.com/WordPoints/hooks-api/milestones/0.1.0","labels_url":"https://api.github.com/repos/WordPoints/hooks-api/milestones/1/labels","id":1336105,"number":1,"title":"0.1.0","description":null,"creator":{"login":"JDGrimes","id":4005415,"avatar_url":"https://avatars.githubusercontent.com/u/4005415?v=3","gravatar_id":"","url":"https://api.github.com/users/JDGrimes","html_url":"https://github.com/JDGrimes","followers_url":"https://api.github.com/users/JDGrimes/followers","following_url":"https://api.github.com/users/JDGrimes/following{/other_user}","gists_url":"https://api.github.com/users/JDGrimes/gists{/gist_id}","starred_url":"https://api.github.com/users/JDGrimes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JDGrimes/subscriptions","organizations_url":"https://api.github.com/users/JDGrimes/orgs","repos_url":"https://api.github.com/users/JDGrimes/repos","events_url":"https://api.github.com/users/JDGrimes/events{/privacy}","received_events_url":"https://api.github.com/users/JDGrimes/received_events","type":"User","site_admin":false},"open_issues":44,"closed_issues":59,"state":"open","created_at":"2015-10-03T13:42:16Z","updated_at":"2016-04-14T18:40:03Z","due_on":null,"closed_at":null},"comments":35,"created_at":"2016-04-14T18:40:03Z","updated_at":"2016-05-02T12:09:35Z","closed_at":null,"body":"An addition to the entity API which disclosed how entities were stored is something that we have been contemplating since early on. It was a necessary dependency of the entity query API (#1). However, the decision was made not to pursue the query API in the initial version of this project, and so it didn't seem necessary to force entities to offer storage information either.\r\n\r\nHowever, more recently (#119, #120, #122), we've seen again the need for this. And in #123 we realized that providing information about the entities is really a main focus of our API. And so to fail to provide this storage information, when it should be relatively easy, is a mistake.\r\n\r\nThe biggest issue is the fact that not all of the information about how entities are stored is really so simple. This is more of an issue when we begin talking about the entity attributes and especially the relationships. Entity relationships can be rather complex things in terms of how they are stored, and a uniform syntax for describing them must likewise be rather complex. This is the biggest hurdle that we have to overcome, but it would seem to go right along with #122 anyway."},"comment":{"url":"https://api.github.com/repos/WordPoints/hooks-api/issues/comments/216219772","html_url":"https://github.com/WordPoints/hooks-api/issues/124#issuecomment-216219772","issue_url":"https://api.github.com/repos/WordPoints/hooks-api/issues/124","id":216219772,"user":{"login":"JDGrimes","id":4005415,"avatar_url":"https://avatars.githubusercontent.com/u/4005415?v=3","gravatar_id":"","url":"https://api.github.com/users/JDGrimes","html_url":"https://github.com/JDGrimes","followers_url":"https://api.github.com/users/JDGrimes/followers","following_url":"https://api.github.com/users/JDGrimes/following{/other_user}","gists_url":"https://api.github.com/users/JDGrimes/gists{/gist_id}","starred_url":"https://api.github.com/users/JDGrimes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JDGrimes/subscriptions","organizations_url":"https://api.github.com/users/JDGrimes/orgs","repos_url":"https://api.github.com/users/JDGrimes/repos","events_url":"https://api.github.com/users/JDGrimes/events{/privacy}","received_events_url":"https://api.github.com/users/JDGrimes/received_events","type":"User","site_admin":false},"created_at":"2016-05-02T12:09:35Z","updated_at":"2016-05-02T12:09:35Z","body":"## Uniform Syntax and Query API post-processing\r\n\r\nBefore when we were building the query API we were thinking that we'd have a basic query syntax that we'd use across the data types. It doesn't really make a whole lot of sense in some ways, but when it comes to fields and stuff, it does kind of make sense to reference them uniformly across different storage types, kind of like we were thinking of doing for the entity children above. One of the hypothetical benefits of this was that we could decide to handle as much of the filtering of the data as we wanted to in memory instead of making every condition part of a massive database query.\r\n\r\nYou see, the query API originally was designed to allow for post-processing to take the place of providing storage information in cases where the later really wouldn't work. And this really extended beyond the entities themselves and into the extensions, reactors, etc. It was even though that possibly we'd one day detect when a query was possible but likely overly resource-intensive, and dynamically opt for more post-processing rather than querying in such cases.\r\n\r\nBut now I'm thinking that any post-processing features should probably be provided through the handlers, not direct through the entities and extensions (although of course the handler could call the extension objects into play when post-processing if it needed to). This would mean that we didn't really need a uniform syntax.\r\n"}}