{"action":"created","issue":{"url":"https://api.github.com/repos/json-api/json-api/issues/341","labels_url":"https://api.github.com/repos/json-api/json-api/issues/341/labels{/name}","comments_url":"https://api.github.com/repos/json-api/json-api/issues/341/comments","events_url":"https://api.github.com/repos/json-api/json-api/issues/341/events","html_url":"https://github.com/json-api/json-api/pull/341","id":56879774,"number":341,"title":"Proposal for v1.0 rc2","user":{"login":"dgeb","id":29122,"avatar_url":"https://avatars.githubusercontent.com/u/29122?v=3","gravatar_id":"","url":"https://api.github.com/users/dgeb","html_url":"https://github.com/dgeb","followers_url":"https://api.github.com/users/dgeb/followers","following_url":"https://api.github.com/users/dgeb/following{/other_user}","gists_url":"https://api.github.com/users/dgeb/gists{/gist_id}","starred_url":"https://api.github.com/users/dgeb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgeb/subscriptions","organizations_url":"https://api.github.com/users/dgeb/orgs","repos_url":"https://api.github.com/users/dgeb/repos","events_url":"https://api.github.com/users/dgeb/events{/privacy}","received_events_url":"https://api.github.com/users/dgeb/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":14,"created_at":"2015-02-06T22:55:40Z","updated_at":"2015-02-07T18:06:04Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/json-api/json-api/pulls/341","html_url":"https://github.com/json-api/json-api/pull/341","diff_url":"https://github.com/json-api/json-api/pull/341.diff","patch_url":"https://github.com/json-api/json-api/pull/341.patch"},"body":"This represents a fairly thorough rewrite of JSON API by myself and @wycats. This rewrite is based upon feedback we've received and our experience building both client and server implementations of the spec. I regret that changes of this scope and magnitude are proposed in a single pull request, but this has been necessitated by the condensed time in which we had to work.\r\n\r\nThe overarching goal of this rewrite has been to bring rigor and simplicity to JSON API, transforming it from a loose set of guidelines to a specification that can be fully implemented to create compatible clients and servers. In general, SHOULDs have been minimized and replaced with MUSTs, and any MAYs that remain tend to be paired with MUSTs.\r\n\r\nThe current spec has been refactored into a base spec, rules for extending it (including official extensions for bulk and patch updates), as well as recommendations (e.g. for forming URLs) that are deemed beyond-the-scope of the spec.\r\n\r\nSome of the major changes in the base specification include:\r\n\r\n* Rules for extending the spec with media type parameters have been defined.\r\n* Polymorphism is supported.\r\n* Every resource object MUST include both `type` and `id` members.\r\n* Attribute and association keys should be dasherized (e.g. `\"first-name\"`).\r\n* Primary resources MUST now appear under the top-level `\"data\"` key.\r\n* Linked resources (in a compound document) MUST now appear in an array directly under the top-level `\"linked\"` key.\r\n* Top-level `links` relate to the primary data, including `self`. Support for URI templates in links has been removed.\r\n* Link objects within resources have been more fully described, and can now include `self` links,  relationship URLs (for manipulating the relationship), related resource URLs (for fetching related resource objects), linkage to other objects in a compound document, and `meta` info.\r\n* Pagination links have been established and a `page` query param has been reserved. The spec remains agnostic about pagination strategies.\r\n* Filtering rules have been moved to the recommendations page, but the base spec reserves the `filter` query param.\r\n* Support for creating, updating, and deleting multiple resources in a single request has been moved to the Bulk extension.\r\n* JSON Patch support has been moved to the Patch extension.\r\n* URL rules have been moved to the new Recommendations page.\r\n* Response statuses have been further defined.\r\n\r\nPlease review and leave general feedback below. I hope we can merge this soon and handle specific concerns in more targeted issues.\r\n\r\n---\r\n\r\nSome relevant links to modified pages:\r\n\r\n* [Base specification](https://github.com/dgeb/json-api/blob/v1rc2/format/index.md)\r\n* [Extensions](https://github.com/dgeb/json-api/blob/v1rc2/extensions/index.md)\r\n  * [Bulk extension](https://github.com/dgeb/json-api/blob/v1rc2/extensions/bulk/index.md)\r\n  * [Patch extension](https://github.com/dgeb/json-api/blob/v1rc2/extensions/patch/index.md)\r\n* [Recommendations](https://github.com/dgeb/json-api/blob/v1rc2/recommendations/index.md)"},"comment":{"url":"https://api.github.com/repos/json-api/json-api/issues/comments/73375335","html_url":"https://github.com/json-api/json-api/pull/341#issuecomment-73375335","issue_url":"https://api.github.com/repos/json-api/json-api/issues/341","id":73375335,"user":{"login":"barelyknown","id":693652,"avatar_url":"https://avatars.githubusercontent.com/u/693652?v=3","gravatar_id":"","url":"https://api.github.com/users/barelyknown","html_url":"https://github.com/barelyknown","followers_url":"https://api.github.com/users/barelyknown/followers","following_url":"https://api.github.com/users/barelyknown/following{/other_user}","gists_url":"https://api.github.com/users/barelyknown/gists{/gist_id}","starred_url":"https://api.github.com/users/barelyknown/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/barelyknown/subscriptions","organizations_url":"https://api.github.com/users/barelyknown/orgs","repos_url":"https://api.github.com/users/barelyknown/repos","events_url":"https://api.github.com/users/barelyknown/events{/privacy}","received_events_url":"https://api.github.com/users/barelyknown/received_events","type":"User","site_admin":false},"created_at":"2015-02-07T18:06:04Z","updated_at":"2015-02-07T18:06:04Z","body":"@wycats As long as that's the case, I'm all for it. Hopefully we can finalize v1 soon."}}