{"action":"created","comment":{"url":"https://api.github.com/repos/aspnet/Docs/pulls/comments/65457322","id":65457322,"diff_hunk":"@@ -1,8 +1,217 @@\n-.. include:: /../common/stub-topic.txt\n+Formatting Response Data\n+========================\n \n-|stub-icon| Formatting\n-======================\n+By `Steve Smith`_\n \n-.. include:: /../common/stub-notice.txt\n+ASP.NET Core MVC has built-in support for formatting response data, using fixed formats or in response to client specifications.\n \n-.. _issue: https://github.com/aspnet/Docs/issues/122\n+.. contents:: Sections\n+    :local:\n+    :depth: 1\n+\n+`View or download sample from GitHub <https://github.com/aspnet/Docs/tree/master/mvc/models/formatting/sample>`_.\n+\n+Format-Specific Action Results\n+------------------------------\n+\n+Some ActionResult options are specific to a particular format, such as JsonResult and ContentResult (note strings are simply returned as text). Actions can return specific results that are always formatted in a particular manner. For example, returning a ``JsonResult`` will return JSON-formatted data, regardless of client preferences. Likewise, returning a ``ContentResult`` will return plain text formatted string data.\n+\n+To return data using a specific result type, assuming you're inheriting from the base ``Controller`` class, it's recommended that you use the built-in helper methods ``Json`` and ``Content``. These methods check to see if the data being formatted implements ``IDisposable`` and register the object for disposal if required. Your action method should return either the specific result type (for instance, ``JsonResult``) or ``IActionResult``.\n+\n+Returning JSON-formatted data:\n+\n+.. literalinclude:: formatting/sample/src/ResponseFormattingSample/Controllers/Api/AuthorsController.cs\n+  :language: c#\n+  :lines: 21-26\n+  :emphasize-lines: 3,5\n+  :dedent: 8\n+\n+Sample response from this action:\n+\n+.. image:: formatting/_static/json-response.png\n+\n+Note that the content type of the response is ``application/json``, shown both in the list of network requests and in the Response Headers section. Also note the list of options presented by the browser (in this case, Microsoft Edge) in the Accept header, in the Request Headers section. The current technique is ignoring this header; obeying it is discussed below.\n+\n+To return plain text formatted data, use ``ContentResult`` and the ``Content`` helper:\n+\n+.. literalinclude:: formatting/sample/src/ResponseFormattingSample/Controllers/Api/AuthorsController.cs\n+  :language: c#\n+  :lines: 47-52\n+  :emphasize-lines: 3,5\n+  :dedent: 8\n+\n+A response from this action:\n+\n+.. image:: formatting/_static/text-response.png\n+\n+Note in this case the ``Content-Type`` returned is ``text/plain``. You can also achieve this same behavior using just a string response type:\n+\n+.. literalinclude:: formatting/sample/src/ResponseFormattingSample/Controllers/Api/AuthorsController.cs\n+  :language: c#\n+  :lines: 54-59\n+  :emphasize-lines: 3,5\n+  :dedent: 8\n+\n+.. tip:: For non-trivial actions with multiple return types or options (for example, different HTTP status codes based on the result of operations performed), prefer ``IActionResult`` as the return type.\n+\n+Content Negotiation\n+-------------------\n+\n+Content negotiation (*conneg* for short) occurs when the client specifies an Accept header. The default format used by ASP.NET Core MVC is JSON. Negotiation occurs automatically for ``IActionResult`` return types, including results returned using the helper methods ``Ok``, ``BadRequest``, ``Created``, etc. You can also return a model type (a class you've defined as your data transfer type) and the framework will automatically wrap it in an ``ObjectResult`` for you.\n+\n+The following action method demonstrates the use of the ``Ok`` and ``NotFound`` helper methods:\n+\n+.. literalinclude:: formatting/sample/src/ResponseFormattingSample/Controllers/Api/AuthorsController.cs\n+  :language: c#\n+  :lines: 28-38\n+  :emphasize-lines: 8,10\n+  :dedent: 8\n+\n+Like the previous examples, this one will return JSON-formatted results in response to requests by default. However, you can use a tool like `Fiddler <http://www.telerik.com/fiddler>`_ to create a request that includes an Accept header, and specify another format. In that case, if the server has a *formatter* that matches the requested format, the results will be returned in that format.\n+\n+.. image:: formatting/_static/fiddler-composer.png\n+\n+In the above screenshot, the Fiddler Composer has been used to generate a request, specifying ``Accept: application/xml``. By default, ASP.NET Core MVC only supports JSON, so even when another format is specified, the result returned is still JSON-formatted. You'll see how to add additional formatters in the next section.\n+\n+Your controller actions can return model objects, in which case ASP.NET MVC will automatically create an ``ObjectResult`` for you that wraps the object. The client will get the appropriately formatted serialized object. If the object being returned is ``null``, then the framework will return a ``204 No Content`` response.\n+\n+Returning an object type:\n+\n+.. literalinclude:: formatting/sample/src/ResponseFormattingSample/Controllers/Api/AuthorsController.cs\n+  :language: c#\n+  :lines: 40-45\n+  :emphasize-lines: 3\n+  :dedent: 8\n+\n+In the sample, a request for a valid author alias will receive a 200 OK response with the author's data. A request for an invalid alias will receive a 204 No Content response.\n+\n+Content Negotiation Process\n+^^^^^^^^^^^^^^^^^^^^^^^^^^^\n+\n+Content *negotiation* only takes place if an ``Accept`` header appears in the request. If it does, then the framework will enumerate through the list of formatters until it finds one that can serialize the response object into that format. If no formatter is found that can support the type to be returned, then the framework will send a 406 Not Acceptable response code. However, if the request specifies XML, but the XML formatter has not been configured, then the JSON formatter will be used. Likewise, if no header is given, then the first formatter that can handle the object to be returned will be used to serialize the response (in this case, there isn't any negotiation taking place - the server is determining what format it will use).\n+\n+Browsers and Content Negotiation\n+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n+\n+Unlike typical API clients, web browsers tend to supply ``Accept`` headers that include a wide array of formats, including wildcards. By default, when the framework detects that the request is coming from a browser, it will ignore the ``Accept`` header and instead return the content in the application's configured default format (JSON unless otherwise configured). This provides a more consistent experience when using different browsers to consume APIs.\n+\n+If you would prefer your application honor browser accept headers, you can configure this as part of MVC's configuration by setting ``RespectBrowserAcceptHeader`` to ``true`` in the ``ConfigureServices`` method in *Startup.cs*.\n+\n+.. literalinclude:: formatting/sample/src/ResponseFormattingSample/Startup.cs\n+  :language: c#\n+  :lines: 30-34,36,39\n+  :emphasize-lines: 5\n+  :dedent: 8\n+\n+Configuring Formatters\n+----------------------\n+\n+If your application needs to support additional formats beyond the default of JSON, you can add these as additional dependencies in *project.json* and configure MVC to support them. There are separate formatters for input and output. Input formatters are used by :doc:`model-binding`; output formatters are used to format API responses. You can also configure :doc:`custom-formatters`.\n+\n+Configuring the JSON Formatter\n+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n+\n+A common request when formatting responses using JSON is to use JavaScript-style \"camel\" casing (the first character of each property is lowercase, then uppercase is used to begin each additional word making up the name). Support for camel casing can be added by using the ``AddJsonOptions`` extension method when configuring MVC:\n+\n+.. code-block:: c#\n+\n+  services.AddMvc()\n+    .AddJsonOptions(o =>\n+      o.SerializerSettings.ContractResolver = \n+        new CamelCasePropertyNamesContractResolver());\n+\n+Replace the default ``SerializerSettings.ContractResolver`` with a new instance of ``CamelCasePropertyNamesContractResolver``.\n+\n+Adding XML Format Support\n+^^^^^^^^^^^^^^^^^^^^^^^^^\n+\n+To add support for XML formatting, add the \"Microsoft.AspNetCore.Mvc.Formatters.Xml\" package to your *project.json*'s list of dependencies.\n+\n+.. literalinclude:: formatting/sample/src/ResponseFormattingSample/project.json\n+  :language: javascript\n+  :lines: 4-26\n+  :emphasize-lines: 8\n+  :dedent: 2\n+\n+Next, add the ``XmlSerializerOutputFormatter`` to MVC's list of OutputFormatters in *Startup.cs*:\n+\n+.. literalinclude:: formatting/sample/src/ResponseFormattingSample/Startup.cs\n+  :language: c#\n+  :lines: 30-39\n+  :emphasize-lines: 6\n+  :dedent: 8\n+\n+Alternately, you can just call the ``AddXmlSerializerFormatters`` extension method:\n+\n+.. code-block:: c#\n+  :emphasize-lines: 2\n+\n+  services.AddMvc()\n+    .AddXmlSerializerFormatters();\n+\n+Once you've added support for XML formatting, your API methods should return the appropriate format based on the request's ``Accept`` header, as this Fiddler example demonstrates:\n+\n+.. image:: formatting/_static/xml-response.png\n+\n+You can see at the top of the image that the GET request was made with an ``Accept: application/xml`` header set. The response at the bottom of the image has a ``Content-Type: application/xml`` header, and you can see at the bottom the ``Author`` object has been serialized to XML.","path":"aspnet/mvc/models/formatting.rst","position":161,"original_position":161,"commit_id":"c8a5c89bc5f3b2fd8ec07841bf6fbe1b6997af54","original_commit_id":"c8a5c89bc5f3b2fd8ec07841bf6fbe1b6997af54","user":{"login":"Rick-Anderson","id":3605364,"avatar_url":"https://avatars.githubusercontent.com/u/3605364?v=3","gravatar_id":"","url":"https://api.github.com/users/Rick-Anderson","html_url":"https://github.com/Rick-Anderson","followers_url":"https://api.github.com/users/Rick-Anderson/followers","following_url":"https://api.github.com/users/Rick-Anderson/following{/other_user}","gists_url":"https://api.github.com/users/Rick-Anderson/gists{/gist_id}","starred_url":"https://api.github.com/users/Rick-Anderson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Rick-Anderson/subscriptions","organizations_url":"https://api.github.com/users/Rick-Anderson/orgs","repos_url":"https://api.github.com/users/Rick-Anderson/repos","events_url":"https://api.github.com/users/Rick-Anderson/events{/privacy}","received_events_url":"https://api.github.com/users/Rick-Anderson/received_events","type":"User","site_admin":false},"body":"The response pane shows the ``Content-Type: application/xml`` header, and the ``Author`` object has been serialized to XML.","created_at":"2016-06-01T22:49:50Z","updated_at":"2016-06-01T22:49:50Z","html_url":"https://github.com/aspnet/Docs/pull/1327#discussion_r65457322","pull_request_url":"https://api.github.com/repos/aspnet/Docs/pulls/1327","_links":{"self":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/comments/65457322"},"html":{"href":"https://github.com/aspnet/Docs/pull/1327#discussion_r65457322"},"pull_request":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/1327"}}},"pull_request":{"url":"https://api.github.com/repos/aspnet/Docs/pulls/1327","id":72223964,"html_url":"https://github.com/aspnet/Docs/pull/1327","diff_url":"https://github.com/aspnet/Docs/pull/1327.diff","patch_url":"https://github.com/aspnet/Docs/pull/1327.patch","issue_url":"https://api.github.com/repos/aspnet/Docs/issues/1327","number":1327,"state":"open","locked":false,"title":"Formatting Response Data","user":{"login":"ardalis","id":782127,"avatar_url":"https://avatars.githubusercontent.com/u/782127?v=3","gravatar_id":"","url":"https://api.github.com/users/ardalis","html_url":"https://github.com/ardalis","followers_url":"https://api.github.com/users/ardalis/followers","following_url":"https://api.github.com/users/ardalis/following{/other_user}","gists_url":"https://api.github.com/users/ardalis/gists{/gist_id}","starred_url":"https://api.github.com/users/ardalis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ardalis/subscriptions","organizations_url":"https://api.github.com/users/ardalis/orgs","repos_url":"https://api.github.com/users/ardalis/repos","events_url":"https://api.github.com/users/ardalis/events{/privacy}","received_events_url":"https://api.github.com/users/ardalis/received_events","type":"User","site_admin":false},"body":"Fixes #122 \r\n@Rick-Anderson please review","created_at":"2016-06-01T17:52:09Z","updated_at":"2016-06-01T22:49:50Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ea2d4d8837f6d3d38bde6ccbdecc0e4275184c08","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/aspnet/Docs/pulls/1327/commits","review_comments_url":"https://api.github.com/repos/aspnet/Docs/pulls/1327/comments","review_comment_url":"https://api.github.com/repos/aspnet/Docs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/aspnet/Docs/issues/1327/comments","statuses_url":"https://api.github.com/repos/aspnet/Docs/statuses/c8a5c89bc5f3b2fd8ec07841bf6fbe1b6997af54","head":{"label":"aspnet:ardalis/formatting-response","ref":"ardalis/formatting-response","sha":"c8a5c89bc5f3b2fd8ec07841bf6fbe1b6997af54","user":{"login":"aspnet","id":6476660,"avatar_url":"https://avatars.githubusercontent.com/u/6476660?v=3","gravatar_id":"","url":"https://api.github.com/users/aspnet","html_url":"https://github.com/aspnet","followers_url":"https://api.github.com/users/aspnet/followers","following_url":"https://api.github.com/users/aspnet/following{/other_user}","gists_url":"https://api.github.com/users/aspnet/gists{/gist_id}","starred_url":"https://api.github.com/users/aspnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aspnet/subscriptions","organizations_url":"https://api.github.com/users/aspnet/orgs","repos_url":"https://api.github.com/users/aspnet/repos","events_url":"https://api.github.com/users/aspnet/events{/privacy}","received_events_url":"https://api.github.com/users/aspnet/received_events","type":"Organization","site_admin":false},"repo":{"id":28239455,"name":"Docs","full_name":"aspnet/Docs","owner":{"login":"aspnet","id":6476660,"avatar_url":"https://avatars.githubusercontent.com/u/6476660?v=3","gravatar_id":"","url":"https://api.github.com/users/aspnet","html_url":"https://github.com/aspnet","followers_url":"https://api.github.com/users/aspnet/followers","following_url":"https://api.github.com/users/aspnet/following{/other_user}","gists_url":"https://api.github.com/users/aspnet/gists{/gist_id}","starred_url":"https://api.github.com/users/aspnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aspnet/subscriptions","organizations_url":"https://api.github.com/users/aspnet/orgs","repos_url":"https://api.github.com/users/aspnet/repos","events_url":"https://api.github.com/users/aspnet/events{/privacy}","received_events_url":"https://api.github.com/users/aspnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/aspnet/Docs","description":"Documentation for ASP.NET Core","fork":false,"url":"https://api.github.com/repos/aspnet/Docs","forks_url":"https://api.github.com/repos/aspnet/Docs/forks","keys_url":"https://api.github.com/repos/aspnet/Docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aspnet/Docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aspnet/Docs/teams","hooks_url":"https://api.github.com/repos/aspnet/Docs/hooks","issue_events_url":"https://api.github.com/repos/aspnet/Docs/issues/events{/number}","events_url":"https://api.github.com/repos/aspnet/Docs/events","assignees_url":"https://api.github.com/repos/aspnet/Docs/assignees{/user}","branches_url":"https://api.github.com/repos/aspnet/Docs/branches{/branch}","tags_url":"https://api.github.com/repos/aspnet/Docs/tags","blobs_url":"https://api.github.com/repos/aspnet/Docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aspnet/Docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aspnet/Docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/aspnet/Docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aspnet/Docs/statuses/{sha}","languages_url":"https://api.github.com/repos/aspnet/Docs/languages","stargazers_url":"https://api.github.com/repos/aspnet/Docs/stargazers","contributors_url":"https://api.github.com/repos/aspnet/Docs/contributors","subscribers_url":"https://api.github.com/repos/aspnet/Docs/subscribers","subscription_url":"https://api.github.com/repos/aspnet/Docs/subscription","commits_url":"https://api.github.com/repos/aspnet/Docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/aspnet/Docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/aspnet/Docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/aspnet/Docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/aspnet/Docs/contents/{+path}","compare_url":"https://api.github.com/repos/aspnet/Docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aspnet/Docs/merges","archive_url":"https://api.github.com/repos/aspnet/Docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aspnet/Docs/downloads","issues_url":"https://api.github.com/repos/aspnet/Docs/issues{/number}","pulls_url":"https://api.github.com/repos/aspnet/Docs/pulls{/number}","milestones_url":"https://api.github.com/repos/aspnet/Docs/milestones{/number}","notifications_url":"https://api.github.com/repos/aspnet/Docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aspnet/Docs/labels{/name}","releases_url":"https://api.github.com/repos/aspnet/Docs/releases{/id}","deployments_url":"https://api.github.com/repos/aspnet/Docs/deployments","created_at":"2014-12-19T17:38:02Z","updated_at":"2016-06-01T15:47:07Z","pushed_at":"2016-06-01T22:37:50Z","git_url":"git://github.com/aspnet/Docs.git","ssh_url":"git@github.com:aspnet/Docs.git","clone_url":"https://github.com/aspnet/Docs.git","svn_url":"https://github.com/aspnet/Docs","homepage":"","size":50246,"stargazers_count":507,"watchers_count":507,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":868,"mirror_url":null,"open_issues_count":161,"forks":868,"open_issues":161,"watchers":507,"default_branch":"master"}},"base":{"label":"aspnet:master","ref":"master","sha":"25720cc6a15a16e7d2719c3d9bc4a9248d69512e","user":{"login":"aspnet","id":6476660,"avatar_url":"https://avatars.githubusercontent.com/u/6476660?v=3","gravatar_id":"","url":"https://api.github.com/users/aspnet","html_url":"https://github.com/aspnet","followers_url":"https://api.github.com/users/aspnet/followers","following_url":"https://api.github.com/users/aspnet/following{/other_user}","gists_url":"https://api.github.com/users/aspnet/gists{/gist_id}","starred_url":"https://api.github.com/users/aspnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aspnet/subscriptions","organizations_url":"https://api.github.com/users/aspnet/orgs","repos_url":"https://api.github.com/users/aspnet/repos","events_url":"https://api.github.com/users/aspnet/events{/privacy}","received_events_url":"https://api.github.com/users/aspnet/received_events","type":"Organization","site_admin":false},"repo":{"id":28239455,"name":"Docs","full_name":"aspnet/Docs","owner":{"login":"aspnet","id":6476660,"avatar_url":"https://avatars.githubusercontent.com/u/6476660?v=3","gravatar_id":"","url":"https://api.github.com/users/aspnet","html_url":"https://github.com/aspnet","followers_url":"https://api.github.com/users/aspnet/followers","following_url":"https://api.github.com/users/aspnet/following{/other_user}","gists_url":"https://api.github.com/users/aspnet/gists{/gist_id}","starred_url":"https://api.github.com/users/aspnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aspnet/subscriptions","organizations_url":"https://api.github.com/users/aspnet/orgs","repos_url":"https://api.github.com/users/aspnet/repos","events_url":"https://api.github.com/users/aspnet/events{/privacy}","received_events_url":"https://api.github.com/users/aspnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/aspnet/Docs","description":"Documentation for ASP.NET Core","fork":false,"url":"https://api.github.com/repos/aspnet/Docs","forks_url":"https://api.github.com/repos/aspnet/Docs/forks","keys_url":"https://api.github.com/repos/aspnet/Docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aspnet/Docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aspnet/Docs/teams","hooks_url":"https://api.github.com/repos/aspnet/Docs/hooks","issue_events_url":"https://api.github.com/repos/aspnet/Docs/issues/events{/number}","events_url":"https://api.github.com/repos/aspnet/Docs/events","assignees_url":"https://api.github.com/repos/aspnet/Docs/assignees{/user}","branches_url":"https://api.github.com/repos/aspnet/Docs/branches{/branch}","tags_url":"https://api.github.com/repos/aspnet/Docs/tags","blobs_url":"https://api.github.com/repos/aspnet/Docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aspnet/Docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aspnet/Docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/aspnet/Docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aspnet/Docs/statuses/{sha}","languages_url":"https://api.github.com/repos/aspnet/Docs/languages","stargazers_url":"https://api.github.com/repos/aspnet/Docs/stargazers","contributors_url":"https://api.github.com/repos/aspnet/Docs/contributors","subscribers_url":"https://api.github.com/repos/aspnet/Docs/subscribers","subscription_url":"https://api.github.com/repos/aspnet/Docs/subscription","commits_url":"https://api.github.com/repos/aspnet/Docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/aspnet/Docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/aspnet/Docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/aspnet/Docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/aspnet/Docs/contents/{+path}","compare_url":"https://api.github.com/repos/aspnet/Docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aspnet/Docs/merges","archive_url":"https://api.github.com/repos/aspnet/Docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aspnet/Docs/downloads","issues_url":"https://api.github.com/repos/aspnet/Docs/issues{/number}","pulls_url":"https://api.github.com/repos/aspnet/Docs/pulls{/number}","milestones_url":"https://api.github.com/repos/aspnet/Docs/milestones{/number}","notifications_url":"https://api.github.com/repos/aspnet/Docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aspnet/Docs/labels{/name}","releases_url":"https://api.github.com/repos/aspnet/Docs/releases{/id}","deployments_url":"https://api.github.com/repos/aspnet/Docs/deployments","created_at":"2014-12-19T17:38:02Z","updated_at":"2016-06-01T15:47:07Z","pushed_at":"2016-06-01T22:37:50Z","git_url":"git://github.com/aspnet/Docs.git","ssh_url":"git@github.com:aspnet/Docs.git","clone_url":"https://github.com/aspnet/Docs.git","svn_url":"https://github.com/aspnet/Docs","homepage":"","size":50246,"stargazers_count":507,"watchers_count":507,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":868,"mirror_url":null,"open_issues_count":161,"forks":868,"open_issues":161,"watchers":507,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/1327"},"html":{"href":"https://github.com/aspnet/Docs/pull/1327"},"issue":{"href":"https://api.github.com/repos/aspnet/Docs/issues/1327"},"comments":{"href":"https://api.github.com/repos/aspnet/Docs/issues/1327/comments"},"review_comments":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/1327/comments"},"review_comment":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/1327/commits"},"statuses":{"href":"https://api.github.com/repos/aspnet/Docs/statuses/c8a5c89bc5f3b2fd8ec07841bf6fbe1b6997af54"}}}}
{"actor":{"display_login":"Rick-Anderson"}}