{"action":"created","issue":{"url":"https://api.github.com/repos/keystonejs/keystone/issues/3209","repository_url":"https://api.github.com/repos/keystonejs/keystone","labels_url":"https://api.github.com/repos/keystonejs/keystone/issues/3209/labels{/name}","comments_url":"https://api.github.com/repos/keystonejs/keystone/issues/3209/comments","events_url":"https://api.github.com/repos/keystonejs/keystone/issues/3209/events","html_url":"https://github.com/keystonejs/keystone/issues/3209","id":167390691,"number":3209,"title":"Call to action - Please review the new API Spec","user":{"login":"JedWatson","id":872310,"avatar_url":"https://avatars.githubusercontent.com/u/872310?v=3","gravatar_id":"","url":"https://api.github.com/users/JedWatson","html_url":"https://github.com/JedWatson","followers_url":"https://api.github.com/users/JedWatson/followers","following_url":"https://api.github.com/users/JedWatson/following{/other_user}","gists_url":"https://api.github.com/users/JedWatson/gists{/gist_id}","starred_url":"https://api.github.com/users/JedWatson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JedWatson/subscriptions","organizations_url":"https://api.github.com/users/JedWatson/orgs","repos_url":"https://api.github.com/users/JedWatson/repos","events_url":"https://api.github.com/users/JedWatson/events{/privacy}","received_events_url":"https://api.github.com/users/JedWatson/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/keystonejs/keystone/labels/discussion","name":"discussion","color":"4a558a"},{"url":"https://api.github.com/repos/keystonejs/keystone/labels/help%20wanted","name":"help wanted","color":"009800"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/keystonejs/keystone/milestones/5","html_url":"https://github.com/keystonejs/keystone/milestones/0.4.0","labels_url":"https://api.github.com/repos/keystonejs/keystone/milestones/5/labels","id":917933,"number":5,"title":"0.4.0","description":"","creator":{"login":"morenoh149","id":587438,"avatar_url":"https://avatars.githubusercontent.com/u/587438?v=3","gravatar_id":"","url":"https://api.github.com/users/morenoh149","html_url":"https://github.com/morenoh149","followers_url":"https://api.github.com/users/morenoh149/followers","following_url":"https://api.github.com/users/morenoh149/following{/other_user}","gists_url":"https://api.github.com/users/morenoh149/gists{/gist_id}","starred_url":"https://api.github.com/users/morenoh149/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/morenoh149/subscriptions","organizations_url":"https://api.github.com/users/morenoh149/orgs","repos_url":"https://api.github.com/users/morenoh149/repos","events_url":"https://api.github.com/users/morenoh149/events{/privacy}","received_events_url":"https://api.github.com/users/morenoh149/received_events","type":"User","site_admin":false},"open_issues":28,"closed_issues":70,"state":"open","created_at":"2014-12-30T20:01:34Z","updated_at":"2016-08-15T05:37:39Z","due_on":null,"closed_at":null},"comments":64,"created_at":"2016-07-25T15:12:02Z","updated_at":"2016-08-16T14:53:09Z","closed_at":null,"body":"I've written up a spec for the new Admin API and would *really* like some feedback on it.\r\n\r\nThe endpoints in the spec are all implemented and in use, and I've cleaned them up slightly as I've been writing up how they work.\r\n\r\nThe next part of the plan is to make these generally available through List methods (so you can customise them and easily add user-facing versions for your app) so it's really important to get them right and make sure the design is one that we're happy to live with, so please shout out with any feedback you've got (PRs are also welcome!)\r\n\r\nSpecs are here: https://github.com/keystonejs/keystone/blob/master/admin/server/api/Readme.md\r\n\r\ncc @mxstbr @molomby @josephg @wmertens @creynders "},"comment":{"url":"https://api.github.com/repos/keystonejs/keystone/issues/comments/240126929","html_url":"https://github.com/keystonejs/keystone/issues/3209#issuecomment-240126929","issue_url":"https://api.github.com/repos/keystonejs/keystone/issues/3209","id":240126929,"user":{"login":"creynders","id":436347,"avatar_url":"https://avatars.githubusercontent.com/u/436347?v=3","gravatar_id":"","url":"https://api.github.com/users/creynders","html_url":"https://github.com/creynders","followers_url":"https://api.github.com/users/creynders/followers","following_url":"https://api.github.com/users/creynders/following{/other_user}","gists_url":"https://api.github.com/users/creynders/gists{/gist_id}","starred_url":"https://api.github.com/users/creynders/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/creynders/subscriptions","organizations_url":"https://api.github.com/users/creynders/orgs","repos_url":"https://api.github.com/users/creynders/repos","events_url":"https://api.github.com/users/creynders/events{/privacy}","received_events_url":"https://api.github.com/users/creynders/received_events","type":"User","site_admin":false},"created_at":"2016-08-16T14:53:08Z","updated_at":"2016-08-16T14:53:08Z","body":"@jedwatson Cool! Great job with the APi doc. \r\n\r\nHowever, I _am_ a fan of real REST API's, for these reasons:\r\n\r\n- Using verbs in URL's limits and cripples them. For instance I like to provide both a id-based and slug-based identification mechanism, e.g.\r\n\t`GET /api/users/muthafucka` aliases `GET /api/users/123456`. However, this means that with `POST /api/users/create` for instance, you'll need to sanitize the slugs on specific keywords\r\n- REST is far more humanly readable IMO, compare `POST /api/users/123456/delete?filter[foo]=whatever&q=kjhkjashkdj` to `DELETE /api/users/123456?filter[foo]=whatever&q=kjhkjashkdj` This applies to calls made from non-browser clients, log streams etc. It also makes consuming them a lot easier\r\n- I don't see the benefits of having a `fields` field for returned resources. It breaks the symmetry, since the returned resource data structures don't match the sent resource data structures.\r\n\r\nIn my experience REST works really great. You request resources, which are returned in full or partially. And you send resources in full or partially to update them. It's the symmetry and simpleness which is great. It also respects the separation of concerns by extracting the action from the URI.\r\nAnd it allows for a lot of future expansion w/o getting in the way, which I've encountered with almost all other schemes, where your API grows and you need to start coding around your own API to allow the features you want. It gets really hard to manage and keep clean both code and APIwise.\r\n\r\nI've consolidated and modified a number of guides, picking what I've found to work best and compiled it to a guide, maybe it can provide some inspiration: https://iminds-livinglabs.github.io/rest-api-recommendations/index.html"}}
{"actor":{"display_login":"creynders"}}