{"action":"created","comment":{"url":"https://api.github.com/repos/equip/framework/pulls/comments/73725466","id":73725466,"diff_hunk":"@@ -535,32 +534,40 @@ class LoginResponder\n \n This simple responder has separate methods for each possible state that take the exact parameters necessary to generate the response. The response content will always be in JSON format.\n \n-This loose structure around actions, input, and responders allows each project to define exactly the right response for the application. There are no hard rules about how the actions is defined, so long as it takes a request and produces a response.\n+This loose structure around actions, input, and responders allows each project to define exactly the right response for the application. There are no hard rules about how the actions are defined, so long as each take a request and produce a response.\n \n ## Formatters\n \n-**WIP**\n+Equip includes formatters that can be used in responders to simplify the formatting of domain output for the response. If your actions have multiple possible content types you can use [content negotiation](https://en.wikipedia.org/wiki/Content_negotiation) to output multiple formats based the request `Accept` header.\n \n ### Content Negotiation\n \n-[`FormattedResponder`](https://github.com/equip/framework/blob/master/src/Responder/FormattedResponder.php) uses the [Negotiation](https://github.com/willdurand/negotiation) library to support [content negotiation](https://en.wikipedia.org/wiki/Content_negotiation). When a desirable format has been founded, it uses an appropriate implementation of [`FormatterInterface`](https://github.com/equip/framework/blob/master/src/Formatter/FormatterInterface.php) to encode the payload data and return it as a string. The `FormattedResponder` extends [`Equip\\Structure\\Dictionary`](https://github.com/equip/structure/blob/master/src/Dictionary.php).\n+Content negotiation is provided by the [`ContentNegotiation`](https://github.com/equip/framework/blob/master/src/ContentNegotiation.php) class. Using this object is extremely easy. Create a method in your responder that takes both the request and response and pass both, along with your content, to the `apply()` method:\n+\n+```php\n+$response = $this->negotation->apply($request, $response, $content);\n+```\n+\n+The `ContentNegotiation` class will read the `Accept` header from the request to determine the preferred content type. When a desirable ype has been found, it uses an appropriate implementation of [`FormatterInterface`](https://github.com/equip/framework/blob/master/src/Formatter/FormatterInterface.php) to format the content and return it as a string. The `FormattedResponder` extends [`Equip\\Structure\\Dictionary`](https://github.com/equip/structure/blob/master/src/Dictionary.php).","path":"docs/index.md","position":null,"original_position":97,"commit_id":"6c439490307b053a9ee7faf0670f0e95baf7f449","original_commit_id":"5eefa3f4652cd645614dc896a6b05bb13aaa2e76","user":{"login":"shadowhand","id":38203,"avatar_url":"https://avatars.githubusercontent.com/u/38203?v=3","gravatar_id":"","url":"https://api.github.com/users/shadowhand","html_url":"https://github.com/shadowhand","followers_url":"https://api.github.com/users/shadowhand/followers","following_url":"https://api.github.com/users/shadowhand/following{/other_user}","gists_url":"https://api.github.com/users/shadowhand/gists{/gist_id}","starred_url":"https://api.github.com/users/shadowhand/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shadowhand/subscriptions","organizations_url":"https://api.github.com/users/shadowhand/orgs","repos_url":"https://api.github.com/users/shadowhand/repos","events_url":"https://api.github.com/users/shadowhand/events{/privacy}","received_events_url":"https://api.github.com/users/shadowhand/received_events","type":"User","site_admin":false},"body":"Fixed.","created_at":"2016-08-05T17:01:58Z","updated_at":"2016-08-05T17:01:58Z","html_url":"https://github.com/equip/framework/pull/79#discussion_r73725466","pull_request_url":"https://api.github.com/repos/equip/framework/pulls/79","_links":{"self":{"href":"https://api.github.com/repos/equip/framework/pulls/comments/73725466"},"html":{"href":"https://github.com/equip/framework/pull/79#discussion_r73725466"},"pull_request":{"href":"https://api.github.com/repos/equip/framework/pulls/79"}}},"pull_request":{"url":"https://api.github.com/repos/equip/framework/pulls/79","id":80161296,"html_url":"https://github.com/equip/framework/pull/79","diff_url":"https://github.com/equip/framework/pull/79.diff","patch_url":"https://github.com/equip/framework/pull/79.patch","issue_url":"https://api.github.com/repos/equip/framework/issues/79","number":79,"state":"open","locked":false,"title":"Add documentation for v3 changes","user":{"login":"shadowhand","id":38203,"avatar_url":"https://avatars.githubusercontent.com/u/38203?v=3","gravatar_id":"","url":"https://api.github.com/users/shadowhand","html_url":"https://github.com/shadowhand","followers_url":"https://api.github.com/users/shadowhand/followers","following_url":"https://api.github.com/users/shadowhand/following{/other_user}","gists_url":"https://api.github.com/users/shadowhand/gists{/gist_id}","starred_url":"https://api.github.com/users/shadowhand/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shadowhand/subscriptions","organizations_url":"https://api.github.com/users/shadowhand/orgs","repos_url":"https://api.github.com/users/shadowhand/repos","events_url":"https://api.github.com/users/shadowhand/events{/privacy}","received_events_url":"https://api.github.com/users/shadowhand/received_events","type":"User","site_admin":false},"body":"Updated to reflect how actions are handled. Covers:\r\n\r\n- [x] action example\r\n- [x] removing domain\r\n- [x] removing responders\r\n- [x] changed content negotiation","created_at":"2016-08-04T22:35:30Z","updated_at":"2016-08-05T17:01:59Z","closed_at":null,"merged_at":null,"merge_commit_sha":"357e1a622835e9fb3657077124db11616aae0e90","assignee":{"login":"elazar","id":15487,"avatar_url":"https://avatars.githubusercontent.com/u/15487?v=3","gravatar_id":"","url":"https://api.github.com/users/elazar","html_url":"https://github.com/elazar","followers_url":"https://api.github.com/users/elazar/followers","following_url":"https://api.github.com/users/elazar/following{/other_user}","gists_url":"https://api.github.com/users/elazar/gists{/gist_id}","starred_url":"https://api.github.com/users/elazar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elazar/subscriptions","organizations_url":"https://api.github.com/users/elazar/orgs","repos_url":"https://api.github.com/users/elazar/repos","events_url":"https://api.github.com/users/elazar/events{/privacy}","received_events_url":"https://api.github.com/users/elazar/received_events","type":"User","site_admin":false},"assignees":[{"login":"elazar","id":15487,"avatar_url":"https://avatars.githubusercontent.com/u/15487?v=3","gravatar_id":"","url":"https://api.github.com/users/elazar","html_url":"https://github.com/elazar","followers_url":"https://api.github.com/users/elazar/followers","following_url":"https://api.github.com/users/elazar/following{/other_user}","gists_url":"https://api.github.com/users/elazar/gists{/gist_id}","starred_url":"https://api.github.com/users/elazar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elazar/subscriptions","organizations_url":"https://api.github.com/users/elazar/orgs","repos_url":"https://api.github.com/users/elazar/repos","events_url":"https://api.github.com/users/elazar/events{/privacy}","received_events_url":"https://api.github.com/users/elazar/received_events","type":"User","site_admin":false},{"login":"dolfelt","id":202546,"avatar_url":"https://avatars.githubusercontent.com/u/202546?v=3","gravatar_id":"","url":"https://api.github.com/users/dolfelt","html_url":"https://github.com/dolfelt","followers_url":"https://api.github.com/users/dolfelt/followers","following_url":"https://api.github.com/users/dolfelt/following{/other_user}","gists_url":"https://api.github.com/users/dolfelt/gists{/gist_id}","starred_url":"https://api.github.com/users/dolfelt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dolfelt/subscriptions","organizations_url":"https://api.github.com/users/dolfelt/orgs","repos_url":"https://api.github.com/users/dolfelt/repos","events_url":"https://api.github.com/users/dolfelt/events{/privacy}","received_events_url":"https://api.github.com/users/dolfelt/received_events","type":"User","site_admin":false},{"login":"sctape","id":510704,"avatar_url":"https://avatars.githubusercontent.com/u/510704?v=3","gravatar_id":"","url":"https://api.github.com/users/sctape","html_url":"https://github.com/sctape","followers_url":"https://api.github.com/users/sctape/followers","following_url":"https://api.github.com/users/sctape/following{/other_user}","gists_url":"https://api.github.com/users/sctape/gists{/gist_id}","starred_url":"https://api.github.com/users/sctape/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sctape/subscriptions","organizations_url":"https://api.github.com/users/sctape/orgs","repos_url":"https://api.github.com/users/sctape/repos","events_url":"https://api.github.com/users/sctape/events{/privacy}","received_events_url":"https://api.github.com/users/sctape/received_events","type":"User","site_admin":false},{"login":"aminemat","id":585335,"avatar_url":"https://avatars.githubusercontent.com/u/585335?v=3","gravatar_id":"","url":"https://api.github.com/users/aminemat","html_url":"https://github.com/aminemat","followers_url":"https://api.github.com/users/aminemat/followers","following_url":"https://api.github.com/users/aminemat/following{/other_user}","gists_url":"https://api.github.com/users/aminemat/gists{/gist_id}","starred_url":"https://api.github.com/users/aminemat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aminemat/subscriptions","organizations_url":"https://api.github.com/users/aminemat/orgs","repos_url":"https://api.github.com/users/aminemat/repos","events_url":"https://api.github.com/users/aminemat/events{/privacy}","received_events_url":"https://api.github.com/users/aminemat/received_events","type":"User","site_admin":false},{"login":"ameech","id":831646,"avatar_url":"https://avatars.githubusercontent.com/u/831646?v=3","gravatar_id":"","url":"https://api.github.com/users/ameech","html_url":"https://github.com/ameech","followers_url":"https://api.github.com/users/ameech/followers","following_url":"https://api.github.com/users/ameech/following{/other_user}","gists_url":"https://api.github.com/users/ameech/gists{/gist_id}","starred_url":"https://api.github.com/users/ameech/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ameech/subscriptions","organizations_url":"https://api.github.com/users/ameech/orgs","repos_url":"https://api.github.com/users/ameech/repos","events_url":"https://api.github.com/users/ameech/events{/privacy}","received_events_url":"https://api.github.com/users/ameech/received_events","type":"User","site_admin":false},{"login":"bvisness","id":4707402,"avatar_url":"https://avatars.githubusercontent.com/u/4707402?v=3","gravatar_id":"","url":"https://api.github.com/users/bvisness","html_url":"https://github.com/bvisness","followers_url":"https://api.github.com/users/bvisness/followers","following_url":"https://api.github.com/users/bvisness/following{/other_user}","gists_url":"https://api.github.com/users/bvisness/gists{/gist_id}","starred_url":"https://api.github.com/users/bvisness/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bvisness/subscriptions","organizations_url":"https://api.github.com/users/bvisness/orgs","repos_url":"https://api.github.com/users/bvisness/repos","events_url":"https://api.github.com/users/bvisness/events{/privacy}","received_events_url":"https://api.github.com/users/bvisness/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/equip/framework/pulls/79/commits","review_comments_url":"https://api.github.com/repos/equip/framework/pulls/79/comments","review_comment_url":"https://api.github.com/repos/equip/framework/pulls/comments{/number}","comments_url":"https://api.github.com/repos/equip/framework/issues/79/comments","statuses_url":"https://api.github.com/repos/equip/framework/statuses/6c439490307b053a9ee7faf0670f0e95baf7f449","head":{"label":"equip:fix/simplified-docs","ref":"fix/simplified-docs","sha":"6c439490307b053a9ee7faf0670f0e95baf7f449","user":{"login":"equip","id":16503086,"avatar_url":"https://avatars.githubusercontent.com/u/16503086?v=3","gravatar_id":"","url":"https://api.github.com/users/equip","html_url":"https://github.com/equip","followers_url":"https://api.github.com/users/equip/followers","following_url":"https://api.github.com/users/equip/following{/other_user}","gists_url":"https://api.github.com/users/equip/gists{/gist_id}","starred_url":"https://api.github.com/users/equip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/equip/subscriptions","organizations_url":"https://api.github.com/users/equip/orgs","repos_url":"https://api.github.com/users/equip/repos","events_url":"https://api.github.com/users/equip/events{/privacy}","received_events_url":"https://api.github.com/users/equip/received_events","type":"Organization","site_admin":false},"repo":{"id":49070457,"name":"framework","full_name":"equip/framework","owner":{"login":"equip","id":16503086,"avatar_url":"https://avatars.githubusercontent.com/u/16503086?v=3","gravatar_id":"","url":"https://api.github.com/users/equip","html_url":"https://github.com/equip","followers_url":"https://api.github.com/users/equip/followers","following_url":"https://api.github.com/users/equip/following{/other_user}","gists_url":"https://api.github.com/users/equip/gists{/gist_id}","starred_url":"https://api.github.com/users/equip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/equip/subscriptions","organizations_url":"https://api.github.com/users/equip/orgs","repos_url":"https://api.github.com/users/equip/repos","events_url":"https://api.github.com/users/equip/events{/privacy}","received_events_url":"https://api.github.com/users/equip/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/equip/framework","description":"A tiny, yet powerful, PHP micro-framework.","fork":false,"url":"https://api.github.com/repos/equip/framework","forks_url":"https://api.github.com/repos/equip/framework/forks","keys_url":"https://api.github.com/repos/equip/framework/keys{/key_id}","collaborators_url":"https://api.github.com/repos/equip/framework/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/equip/framework/teams","hooks_url":"https://api.github.com/repos/equip/framework/hooks","issue_events_url":"https://api.github.com/repos/equip/framework/issues/events{/number}","events_url":"https://api.github.com/repos/equip/framework/events","assignees_url":"https://api.github.com/repos/equip/framework/assignees{/user}","branches_url":"https://api.github.com/repos/equip/framework/branches{/branch}","tags_url":"https://api.github.com/repos/equip/framework/tags","blobs_url":"https://api.github.com/repos/equip/framework/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/equip/framework/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/equip/framework/git/refs{/sha}","trees_url":"https://api.github.com/repos/equip/framework/git/trees{/sha}","statuses_url":"https://api.github.com/repos/equip/framework/statuses/{sha}","languages_url":"https://api.github.com/repos/equip/framework/languages","stargazers_url":"https://api.github.com/repos/equip/framework/stargazers","contributors_url":"https://api.github.com/repos/equip/framework/contributors","subscribers_url":"https://api.github.com/repos/equip/framework/subscribers","subscription_url":"https://api.github.com/repos/equip/framework/subscription","commits_url":"https://api.github.com/repos/equip/framework/commits{/sha}","git_commits_url":"https://api.github.com/repos/equip/framework/git/commits{/sha}","comments_url":"https://api.github.com/repos/equip/framework/comments{/number}","issue_comment_url":"https://api.github.com/repos/equip/framework/issues/comments{/number}","contents_url":"https://api.github.com/repos/equip/framework/contents/{+path}","compare_url":"https://api.github.com/repos/equip/framework/compare/{base}...{head}","merges_url":"https://api.github.com/repos/equip/framework/merges","archive_url":"https://api.github.com/repos/equip/framework/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/equip/framework/downloads","issues_url":"https://api.github.com/repos/equip/framework/issues{/number}","pulls_url":"https://api.github.com/repos/equip/framework/pulls{/number}","milestones_url":"https://api.github.com/repos/equip/framework/milestones{/number}","notifications_url":"https://api.github.com/repos/equip/framework/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/equip/framework/labels{/name}","releases_url":"https://api.github.com/repos/equip/framework/releases{/id}","deployments_url":"https://api.github.com/repos/equip/framework/deployments","created_at":"2016-01-05T14:20:46Z","updated_at":"2016-07-13T05:46:55Z","pushed_at":"2016-08-05T17:01:48Z","git_url":"git://github.com/equip/framework.git","ssh_url":"git@github.com:equip/framework.git","clone_url":"https://github.com/equip/framework.git","svn_url":"https://github.com/equip/framework","homepage":"http://equip.github.io","size":466,"stargazers_count":62,"watchers_count":62,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":22,"mirror_url":null,"open_issues_count":6,"forks":22,"open_issues":6,"watchers":62,"default_branch":"master"}},"base":{"label":"equip:feature/remove-responders","ref":"feature/remove-responders","sha":"272d948d369339f11e364c99ef2aa6090b245758","user":{"login":"equip","id":16503086,"avatar_url":"https://avatars.githubusercontent.com/u/16503086?v=3","gravatar_id":"","url":"https://api.github.com/users/equip","html_url":"https://github.com/equip","followers_url":"https://api.github.com/users/equip/followers","following_url":"https://api.github.com/users/equip/following{/other_user}","gists_url":"https://api.github.com/users/equip/gists{/gist_id}","starred_url":"https://api.github.com/users/equip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/equip/subscriptions","organizations_url":"https://api.github.com/users/equip/orgs","repos_url":"https://api.github.com/users/equip/repos","events_url":"https://api.github.com/users/equip/events{/privacy}","received_events_url":"https://api.github.com/users/equip/received_events","type":"Organization","site_admin":false},"repo":{"id":49070457,"name":"framework","full_name":"equip/framework","owner":{"login":"equip","id":16503086,"avatar_url":"https://avatars.githubusercontent.com/u/16503086?v=3","gravatar_id":"","url":"https://api.github.com/users/equip","html_url":"https://github.com/equip","followers_url":"https://api.github.com/users/equip/followers","following_url":"https://api.github.com/users/equip/following{/other_user}","gists_url":"https://api.github.com/users/equip/gists{/gist_id}","starred_url":"https://api.github.com/users/equip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/equip/subscriptions","organizations_url":"https://api.github.com/users/equip/orgs","repos_url":"https://api.github.com/users/equip/repos","events_url":"https://api.github.com/users/equip/events{/privacy}","received_events_url":"https://api.github.com/users/equip/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/equip/framework","description":"A tiny, yet powerful, PHP micro-framework.","fork":false,"url":"https://api.github.com/repos/equip/framework","forks_url":"https://api.github.com/repos/equip/framework/forks","keys_url":"https://api.github.com/repos/equip/framework/keys{/key_id}","collaborators_url":"https://api.github.com/repos/equip/framework/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/equip/framework/teams","hooks_url":"https://api.github.com/repos/equip/framework/hooks","issue_events_url":"https://api.github.com/repos/equip/framework/issues/events{/number}","events_url":"https://api.github.com/repos/equip/framework/events","assignees_url":"https://api.github.com/repos/equip/framework/assignees{/user}","branches_url":"https://api.github.com/repos/equip/framework/branches{/branch}","tags_url":"https://api.github.com/repos/equip/framework/tags","blobs_url":"https://api.github.com/repos/equip/framework/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/equip/framework/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/equip/framework/git/refs{/sha}","trees_url":"https://api.github.com/repos/equip/framework/git/trees{/sha}","statuses_url":"https://api.github.com/repos/equip/framework/statuses/{sha}","languages_url":"https://api.github.com/repos/equip/framework/languages","stargazers_url":"https://api.github.com/repos/equip/framework/stargazers","contributors_url":"https://api.github.com/repos/equip/framework/contributors","subscribers_url":"https://api.github.com/repos/equip/framework/subscribers","subscription_url":"https://api.github.com/repos/equip/framework/subscription","commits_url":"https://api.github.com/repos/equip/framework/commits{/sha}","git_commits_url":"https://api.github.com/repos/equip/framework/git/commits{/sha}","comments_url":"https://api.github.com/repos/equip/framework/comments{/number}","issue_comment_url":"https://api.github.com/repos/equip/framework/issues/comments{/number}","contents_url":"https://api.github.com/repos/equip/framework/contents/{+path}","compare_url":"https://api.github.com/repos/equip/framework/compare/{base}...{head}","merges_url":"https://api.github.com/repos/equip/framework/merges","archive_url":"https://api.github.com/repos/equip/framework/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/equip/framework/downloads","issues_url":"https://api.github.com/repos/equip/framework/issues{/number}","pulls_url":"https://api.github.com/repos/equip/framework/pulls{/number}","milestones_url":"https://api.github.com/repos/equip/framework/milestones{/number}","notifications_url":"https://api.github.com/repos/equip/framework/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/equip/framework/labels{/name}","releases_url":"https://api.github.com/repos/equip/framework/releases{/id}","deployments_url":"https://api.github.com/repos/equip/framework/deployments","created_at":"2016-01-05T14:20:46Z","updated_at":"2016-07-13T05:46:55Z","pushed_at":"2016-08-05T17:01:48Z","git_url":"git://github.com/equip/framework.git","ssh_url":"git@github.com:equip/framework.git","clone_url":"https://github.com/equip/framework.git","svn_url":"https://github.com/equip/framework","homepage":"http://equip.github.io","size":466,"stargazers_count":62,"watchers_count":62,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":22,"mirror_url":null,"open_issues_count":6,"forks":22,"open_issues":6,"watchers":62,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/equip/framework/pulls/79"},"html":{"href":"https://github.com/equip/framework/pull/79"},"issue":{"href":"https://api.github.com/repos/equip/framework/issues/79"},"comments":{"href":"https://api.github.com/repos/equip/framework/issues/79/comments"},"review_comments":{"href":"https://api.github.com/repos/equip/framework/pulls/79/comments"},"review_comment":{"href":"https://api.github.com/repos/equip/framework/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/equip/framework/pulls/79/commits"},"statuses":{"href":"https://api.github.com/repos/equip/framework/statuses/6c439490307b053a9ee7faf0670f0e95baf7f449"}}}}
{"actor":{"display_login":"shadowhand"}}