{"action":"created","comment":{"url":"https://api.github.com/repos/elo7/tech-blog/pulls/comments/93016957","pull_request_review_id":13536808,"id":93016957,"diff_hunk":"@@ -0,0 +1,121 @@\n+---\n+title: Javascript Isomórfico\n+date: 2016-08-29\n+category: front-end\n+layout: post\n+description: Novos frameworks são criados a todo momento e um novo nome está criando mais força no mundo Javascript: Isomorfismo.\n+author: fernandabernardo\n+tags:\n+  - javascript\n+  - isomorfico\n+---\n+\n+Novos frameworks são criados a todo momento e um novo nome está criando mais força no mundo Javascript: Isomorfismo. Farei uma série de posts para explicar melhor esse conceito e algumas aplicações dele com o uso de frameworks. Nesse primeiro post, será abordado uma parte mais teórica sobre o que é isomorfismo.\n+\n+## Voltando no tempo\n+Antes de falar de fato do isomorfismo, é interessante pensar em o que aconteceu na história para ter a necessidade de utilizar um código Javascript isomórfico.\n+No final de 1990, Tim Berners-Lee publicou uma proposta mais formal para a *World Wide Web*. Em 1993, lançaram o [Mosaic](https://pt.wikipedia.org/wiki/Mosaic), o primeiro navegador WWW, que rodava tanto em windows quanto em linux. Ele abriu a web para o público em geral. Nesse mesmo ano, já é possível ver as primeiras páginas estáticas, com muitos textos e imagens. Alguns desses sites antigos podem ser encontrados nesse [artigo](http://gizmodo.com/5960831/23-ancient-web-sites-that-are-still-alive).\n+\n+![Alt \"Sites estáticos: Netscape e Space Jam\"](../images/isomorfismo-1.png)\n+\n+Já em maio de 1995, o Javascript foi criado por Brendan Eich. Mas ele não era conhecido por esse nome e sim por Mocha, apesar de ser mais conhecido como LiveScript. Em dezembro, depois de receber uma licença da Sun, que o nome Javascript foi finalmente adotado. Mas tudo isso foi uma jogada de marketing, já que o Java estava começando a ficar bem popular no mesmo período. Com o Javascript foi possível adicionar mais interações com a página, eventos, animações...\n+\n+No final dos anos 2000, as Single Page Applications (SPA’s) se tornaram populares. Elas são um modelo de desenvolvimento de aplicações web e mobile. Utilizar uma SPA significa dividir a responsabilidade com o cliente, ou seja, ter mais código rodando no cliente do que no servidor. Elas se assemelham mais a aplicativos desktop e com elas é possível interagir com uma página sem a necessidade de atualizar as páginas. Como não é mais necessário o reload, é possível carregar dados assincronamente para que os usuários pudessem fazer algo durante o carregamento da página. Temos vários exemplos de SPA (Facebook, Google Drive, Twitter, FourSquare), onde podemos realizar diversas tarefas sem ter que aguardar cada uma das tarefas serem concluídas. Um bom exemplo é o Gmail, que podemos enviar diversos emails em paralelo sem ter que aguardar o primeiro processo encerrar com sucesso. Alguns problemas encontrados são com questões de Search Engine Optimization (SEO), já que por padrão não é possível rodar uma página dessas sem Javascript, pois todo o seu código JS está no cliente. Porém, melhora a usabilidade do usuário, tornando uma página mais fluida.\n+\n+Em 2009, foi criado o NodeJS e com isso é possível rodar um código Javascript no lado do servidor. Porém, isso foi possível alguns anos antes com o [Rhino](https://developer.mozilla.org/pt-BR/docs/Mozilla/Projects/Rhino), que não deu muito certo.\n+\n+Sendo possível rodar código Javascript no servidor e também no cliente, podemos nos fazer uma pergunta: E se fosse possível rodar **um mesmo** código Javascript no servidor e no cliente?\n+\n+## Nomenclatura\n+A palavra isomorfismo no dicionário tem alguns significados, mas o que mais se assemelha ao que queremos é:\n+> 2\\. *miner* fenômeno pelo qual duas ou mais substâncias de composição química diferente se apresentam com a mesma estrutura cristalina.\n+\n+Outra nomenclatura conhecida é **Javascript Universal**. Essa nomenclatura surgiu com um [post](https://medium.com/@mjackson/universal-javascript-4761051b7ae9#.e5tzyhurr) em 2015 do Michael Jackson (é verdade). Ele fez um pull request para o React colocando os significados das duas nomenclaturas. No post, um dos argumentos que achei mais interessante, foi que quando falamos para uma pessoa sobre Javascript isomórfico, ninguém entende logo o que significa, mas se falarmos Javascript universal, todos entendem bem mais rápido sobre o que estamos falando. Mas isso é uma discussão mais filosófica. No post usarei isomórfico, mas é bom saber que as duas nomenclaturas são usadas hoje em dia.\n+\n+## Código isomórfico\n+Depois da parte teórica, a pergunta que surge é: como isso funciona no código?\n+Basicamente, temos o mesmo código que consegue rodar no cliente e no servidor. Isso é possível, já que temos a seguinte separação entre os dois lados:\n+\n+![Alt \"Responsabilidades do cliente/servidor\"](../images/isomorfismo-2.png)\n+\n+Como é possível perceber, alguns pontos são repetidos dos dois lados, e são esses os pontos que serão unificador em um código só isomórfico. O resto, como por exemplo, a parte de persistência e de sessão fazem parte unicamente do lado servidor. Enquanto eventos de DOM e o local storage do lado cliente.\n+\n+![Alt \"Unificação em um código isomórfico\"](../images/isomorfismo-3.png)\n+\n+Para exemplificar como fazer um código isomórfico e quais são as especificações do lado cliente e do servidor, segue o código abaixo, feito com EcmaScript 6:\n+\n+```js\n+class Pessoa {\n+    constructor(nome, dataNascimento) {\n+        this.nome = nome;\n+        this.dataNascimento = dataNascimento;\n+    }\n+\n+    get idade() { ... }\n+\n+    get primeiroNome() { ... }\n+}\n+\n+module.exports = Pessoa;\n+```\n+Esse arquivo, seria como se fosse um modelo Pessoa, que teria apenas nome e data de nascimento. O que seria possível chamar dessa classe seria a idade e o primeiro nome. Apenas isso é importante saber no momento, toda a forma de como foi implementado é irrelevante para o exemplo. Já o próximo código é a parte mais importante desse exemplo, já que será nele que aplicaremos o isomorfismo.\n+\n+```js\n+Pessoa = require('./pessoa');\n+\n+const parser = {\n+    parse: function(txt) {\n+        return txt.split('\\n').map((linha) => {\n+            let [nome, dataTxt] = linha.split(';');\n+            return new Pessoa(nome, new Date(dataTxt));\n+        });\n+    }\n+};\n+\n+module.exports = parser;\n+```\n+Nesse código temos um parser para o arquivo, que separa cada linha do texto e separa por `;` e com o resultado disso, cria uma nova Pessoa. O importante desse código é perceber que não utilizamos nenhum módulo do node nem manipulamos o document do browser.\n+Na primeira parte do nosso exemplo, vamos rodar todo esse código no node, apenas no lado servidor. Para isso criaremos mais um arquivo (main.js), para rodar todo o código criado.","path":"src/posts/isomorfismo.html.md","position":null,"original_position":78,"commit_id":"9b59ccf1b4c2a15b719b8526501512893d856402","original_commit_id":"a6a7808436b527bdb0820471e6d7e334ae37d8fc","user":{"login":"FernandaBernardo","id":3588700,"avatar_url":"https://avatars.githubusercontent.com/u/3588700?v=3","gravatar_id":"","url":"https://api.github.com/users/FernandaBernardo","html_url":"https://github.com/FernandaBernardo","followers_url":"https://api.github.com/users/FernandaBernardo/followers","following_url":"https://api.github.com/users/FernandaBernardo/following{/other_user}","gists_url":"https://api.github.com/users/FernandaBernardo/gists{/gist_id}","starred_url":"https://api.github.com/users/FernandaBernardo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FernandaBernardo/subscriptions","organizations_url":"https://api.github.com/users/FernandaBernardo/orgs","repos_url":"https://api.github.com/users/FernandaBernardo/repos","events_url":"https://api.github.com/users/FernandaBernardo/events{/privacy}","received_events_url":"https://api.github.com/users/FernandaBernardo/received_events","type":"User","site_admin":false},"body":"done","created_at":"2016-12-19T11:47:30Z","updated_at":"2016-12-19T11:47:30Z","html_url":"https://github.com/elo7/tech-blog/pull/19#discussion_r93016957","pull_request_url":"https://api.github.com/repos/elo7/tech-blog/pulls/19","_links":{"self":{"href":"https://api.github.com/repos/elo7/tech-blog/pulls/comments/93016957"},"html":{"href":"https://github.com/elo7/tech-blog/pull/19#discussion_r93016957"},"pull_request":{"href":"https://api.github.com/repos/elo7/tech-blog/pulls/19"}}},"pull_request":{"url":"https://api.github.com/repos/elo7/tech-blog/pulls/19","id":84879982,"html_url":"https://github.com/elo7/tech-blog/pull/19","diff_url":"https://github.com/elo7/tech-blog/pull/19.diff","patch_url":"https://github.com/elo7/tech-blog/pull/19.patch","issue_url":"https://api.github.com/repos/elo7/tech-blog/issues/19","number":19,"state":"open","locked":false,"title":"[POST] Isomorfismo","user":{"login":"rapahaeru","id":3389749,"avatar_url":"https://avatars.githubusercontent.com/u/3389749?v=3","gravatar_id":"","url":"https://api.github.com/users/rapahaeru","html_url":"https://github.com/rapahaeru","followers_url":"https://api.github.com/users/rapahaeru/followers","following_url":"https://api.github.com/users/rapahaeru/following{/other_user}","gists_url":"https://api.github.com/users/rapahaeru/gists{/gist_id}","starred_url":"https://api.github.com/users/rapahaeru/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rapahaeru/subscriptions","organizations_url":"https://api.github.com/users/rapahaeru/orgs","repos_url":"https://api.github.com/users/rapahaeru/repos","events_url":"https://api.github.com/users/rapahaeru/events{/privacy}","received_events_url":"https://api.github.com/users/rapahaeru/received_events","type":"User","site_admin":false},"body":"✋  @luiz\r\n@FernandaBernardo \r\n","created_at":"2016-09-12T14:21:39Z","updated_at":"2016-12-19T11:47:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"da53b426049e5c7b9d1949a4ed0b8aa286f3aadf","assignee":{"login":"FernandaBernardo","id":3588700,"avatar_url":"https://avatars.githubusercontent.com/u/3588700?v=3","gravatar_id":"","url":"https://api.github.com/users/FernandaBernardo","html_url":"https://github.com/FernandaBernardo","followers_url":"https://api.github.com/users/FernandaBernardo/followers","following_url":"https://api.github.com/users/FernandaBernardo/following{/other_user}","gists_url":"https://api.github.com/users/FernandaBernardo/gists{/gist_id}","starred_url":"https://api.github.com/users/FernandaBernardo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FernandaBernardo/subscriptions","organizations_url":"https://api.github.com/users/FernandaBernardo/orgs","repos_url":"https://api.github.com/users/FernandaBernardo/repos","events_url":"https://api.github.com/users/FernandaBernardo/events{/privacy}","received_events_url":"https://api.github.com/users/FernandaBernardo/received_events","type":"User","site_admin":false},"assignees":[{"login":"FernandaBernardo","id":3588700,"avatar_url":"https://avatars.githubusercontent.com/u/3588700?v=3","gravatar_id":"","url":"https://api.github.com/users/FernandaBernardo","html_url":"https://github.com/FernandaBernardo","followers_url":"https://api.github.com/users/FernandaBernardo/followers","following_url":"https://api.github.com/users/FernandaBernardo/following{/other_user}","gists_url":"https://api.github.com/users/FernandaBernardo/gists{/gist_id}","starred_url":"https://api.github.com/users/FernandaBernardo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FernandaBernardo/subscriptions","organizations_url":"https://api.github.com/users/FernandaBernardo/orgs","repos_url":"https://api.github.com/users/FernandaBernardo/repos","events_url":"https://api.github.com/users/FernandaBernardo/events{/privacy}","received_events_url":"https://api.github.com/users/FernandaBernardo/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/elo7/tech-blog/pulls/19/commits","review_comments_url":"https://api.github.com/repos/elo7/tech-blog/pulls/19/comments","review_comment_url":"https://api.github.com/repos/elo7/tech-blog/pulls/comments{/number}","comments_url":"https://api.github.com/repos/elo7/tech-blog/issues/19/comments","statuses_url":"https://api.github.com/repos/elo7/tech-blog/statuses/9b59ccf1b4c2a15b719b8526501512893d856402","head":{"label":"elo7:isomorfismo","ref":"isomorfismo","sha":"9b59ccf1b4c2a15b719b8526501512893d856402","user":{"login":"elo7","id":1469534,"avatar_url":"https://avatars.githubusercontent.com/u/1469534?v=3","gravatar_id":"","url":"https://api.github.com/users/elo7","html_url":"https://github.com/elo7","followers_url":"https://api.github.com/users/elo7/followers","following_url":"https://api.github.com/users/elo7/following{/other_user}","gists_url":"https://api.github.com/users/elo7/gists{/gist_id}","starred_url":"https://api.github.com/users/elo7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elo7/subscriptions","organizations_url":"https://api.github.com/users/elo7/orgs","repos_url":"https://api.github.com/users/elo7/repos","events_url":"https://api.github.com/users/elo7/events{/privacy}","received_events_url":"https://api.github.com/users/elo7/received_events","type":"Organization","site_admin":false},"repo":{"id":61552932,"name":"tech-blog","full_name":"elo7/tech-blog","owner":{"login":"elo7","id":1469534,"avatar_url":"https://avatars.githubusercontent.com/u/1469534?v=3","gravatar_id":"","url":"https://api.github.com/users/elo7","html_url":"https://github.com/elo7","followers_url":"https://api.github.com/users/elo7/followers","following_url":"https://api.github.com/users/elo7/following{/other_user}","gists_url":"https://api.github.com/users/elo7/gists{/gist_id}","starred_url":"https://api.github.com/users/elo7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elo7/subscriptions","organizations_url":"https://api.github.com/users/elo7/orgs","repos_url":"https://api.github.com/users/elo7/repos","events_url":"https://api.github.com/users/elo7/events{/privacy}","received_events_url":"https://api.github.com/users/elo7/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/elo7/tech-blog","description":"Blog técnico do Elo7","fork":false,"url":"https://api.github.com/repos/elo7/tech-blog","forks_url":"https://api.github.com/repos/elo7/tech-blog/forks","keys_url":"https://api.github.com/repos/elo7/tech-blog/keys{/key_id}","collaborators_url":"https://api.github.com/repos/elo7/tech-blog/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/elo7/tech-blog/teams","hooks_url":"https://api.github.com/repos/elo7/tech-blog/hooks","issue_events_url":"https://api.github.com/repos/elo7/tech-blog/issues/events{/number}","events_url":"https://api.github.com/repos/elo7/tech-blog/events","assignees_url":"https://api.github.com/repos/elo7/tech-blog/assignees{/user}","branches_url":"https://api.github.com/repos/elo7/tech-blog/branches{/branch}","tags_url":"https://api.github.com/repos/elo7/tech-blog/tags","blobs_url":"https://api.github.com/repos/elo7/tech-blog/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/elo7/tech-blog/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/elo7/tech-blog/git/refs{/sha}","trees_url":"https://api.github.com/repos/elo7/tech-blog/git/trees{/sha}","statuses_url":"https://api.github.com/repos/elo7/tech-blog/statuses/{sha}","languages_url":"https://api.github.com/repos/elo7/tech-blog/languages","stargazers_url":"https://api.github.com/repos/elo7/tech-blog/stargazers","contributors_url":"https://api.github.com/repos/elo7/tech-blog/contributors","subscribers_url":"https://api.github.com/repos/elo7/tech-blog/subscribers","subscription_url":"https://api.github.com/repos/elo7/tech-blog/subscription","commits_url":"https://api.github.com/repos/elo7/tech-blog/commits{/sha}","git_commits_url":"https://api.github.com/repos/elo7/tech-blog/git/commits{/sha}","comments_url":"https://api.github.com/repos/elo7/tech-blog/comments{/number}","issue_comment_url":"https://api.github.com/repos/elo7/tech-blog/issues/comments{/number}","contents_url":"https://api.github.com/repos/elo7/tech-blog/contents/{+path}","compare_url":"https://api.github.com/repos/elo7/tech-blog/compare/{base}...{head}","merges_url":"https://api.github.com/repos/elo7/tech-blog/merges","archive_url":"https://api.github.com/repos/elo7/tech-blog/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/elo7/tech-blog/downloads","issues_url":"https://api.github.com/repos/elo7/tech-blog/issues{/number}","pulls_url":"https://api.github.com/repos/elo7/tech-blog/pulls{/number}","milestones_url":"https://api.github.com/repos/elo7/tech-blog/milestones{/number}","notifications_url":"https://api.github.com/repos/elo7/tech-blog/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/elo7/tech-blog/labels{/name}","releases_url":"https://api.github.com/repos/elo7/tech-blog/releases{/id}","deployments_url":"https://api.github.com/repos/elo7/tech-blog/deployments","created_at":"2016-06-20T14:14:12Z","updated_at":"2016-11-17T11:44:24Z","pushed_at":"2016-12-19T10:13:25Z","git_url":"git://github.com/elo7/tech-blog.git","ssh_url":"git@github.com:elo7/tech-blog.git","clone_url":"https://github.com/elo7/tech-blog.git","svn_url":"https://github.com/elo7/tech-blog","homepage":null,"size":5141,"stargazers_count":2,"watchers_count":2,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":18,"forks":0,"open_issues":18,"watchers":2,"default_branch":"master"}},"base":{"label":"elo7:master","ref":"master","sha":"1c0ca091c035de1c1583c4578b2a4b72ada51151","user":{"login":"elo7","id":1469534,"avatar_url":"https://avatars.githubusercontent.com/u/1469534?v=3","gravatar_id":"","url":"https://api.github.com/users/elo7","html_url":"https://github.com/elo7","followers_url":"https://api.github.com/users/elo7/followers","following_url":"https://api.github.com/users/elo7/following{/other_user}","gists_url":"https://api.github.com/users/elo7/gists{/gist_id}","starred_url":"https://api.github.com/users/elo7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elo7/subscriptions","organizations_url":"https://api.github.com/users/elo7/orgs","repos_url":"https://api.github.com/users/elo7/repos","events_url":"https://api.github.com/users/elo7/events{/privacy}","received_events_url":"https://api.github.com/users/elo7/received_events","type":"Organization","site_admin":false},"repo":{"id":61552932,"name":"tech-blog","full_name":"elo7/tech-blog","owner":{"login":"elo7","id":1469534,"avatar_url":"https://avatars.githubusercontent.com/u/1469534?v=3","gravatar_id":"","url":"https://api.github.com/users/elo7","html_url":"https://github.com/elo7","followers_url":"https://api.github.com/users/elo7/followers","following_url":"https://api.github.com/users/elo7/following{/other_user}","gists_url":"https://api.github.com/users/elo7/gists{/gist_id}","starred_url":"https://api.github.com/users/elo7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elo7/subscriptions","organizations_url":"https://api.github.com/users/elo7/orgs","repos_url":"https://api.github.com/users/elo7/repos","events_url":"https://api.github.com/users/elo7/events{/privacy}","received_events_url":"https://api.github.com/users/elo7/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/elo7/tech-blog","description":"Blog técnico do Elo7","fork":false,"url":"https://api.github.com/repos/elo7/tech-blog","forks_url":"https://api.github.com/repos/elo7/tech-blog/forks","keys_url":"https://api.github.com/repos/elo7/tech-blog/keys{/key_id}","collaborators_url":"https://api.github.com/repos/elo7/tech-blog/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/elo7/tech-blog/teams","hooks_url":"https://api.github.com/repos/elo7/tech-blog/hooks","issue_events_url":"https://api.github.com/repos/elo7/tech-blog/issues/events{/number}","events_url":"https://api.github.com/repos/elo7/tech-blog/events","assignees_url":"https://api.github.com/repos/elo7/tech-blog/assignees{/user}","branches_url":"https://api.github.com/repos/elo7/tech-blog/branches{/branch}","tags_url":"https://api.github.com/repos/elo7/tech-blog/tags","blobs_url":"https://api.github.com/repos/elo7/tech-blog/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/elo7/tech-blog/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/elo7/tech-blog/git/refs{/sha}","trees_url":"https://api.github.com/repos/elo7/tech-blog/git/trees{/sha}","statuses_url":"https://api.github.com/repos/elo7/tech-blog/statuses/{sha}","languages_url":"https://api.github.com/repos/elo7/tech-blog/languages","stargazers_url":"https://api.github.com/repos/elo7/tech-blog/stargazers","contributors_url":"https://api.github.com/repos/elo7/tech-blog/contributors","subscribers_url":"https://api.github.com/repos/elo7/tech-blog/subscribers","subscription_url":"https://api.github.com/repos/elo7/tech-blog/subscription","commits_url":"https://api.github.com/repos/elo7/tech-blog/commits{/sha}","git_commits_url":"https://api.github.com/repos/elo7/tech-blog/git/commits{/sha}","comments_url":"https://api.github.com/repos/elo7/tech-blog/comments{/number}","issue_comment_url":"https://api.github.com/repos/elo7/tech-blog/issues/comments{/number}","contents_url":"https://api.github.com/repos/elo7/tech-blog/contents/{+path}","compare_url":"https://api.github.com/repos/elo7/tech-blog/compare/{base}...{head}","merges_url":"https://api.github.com/repos/elo7/tech-blog/merges","archive_url":"https://api.github.com/repos/elo7/tech-blog/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/elo7/tech-blog/downloads","issues_url":"https://api.github.com/repos/elo7/tech-blog/issues{/number}","pulls_url":"https://api.github.com/repos/elo7/tech-blog/pulls{/number}","milestones_url":"https://api.github.com/repos/elo7/tech-blog/milestones{/number}","notifications_url":"https://api.github.com/repos/elo7/tech-blog/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/elo7/tech-blog/labels{/name}","releases_url":"https://api.github.com/repos/elo7/tech-blog/releases{/id}","deployments_url":"https://api.github.com/repos/elo7/tech-blog/deployments","created_at":"2016-06-20T14:14:12Z","updated_at":"2016-11-17T11:44:24Z","pushed_at":"2016-12-19T10:13:25Z","git_url":"git://github.com/elo7/tech-blog.git","ssh_url":"git@github.com:elo7/tech-blog.git","clone_url":"https://github.com/elo7/tech-blog.git","svn_url":"https://github.com/elo7/tech-blog","homepage":null,"size":5141,"stargazers_count":2,"watchers_count":2,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":18,"forks":0,"open_issues":18,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/elo7/tech-blog/pulls/19"},"html":{"href":"https://github.com/elo7/tech-blog/pull/19"},"issue":{"href":"https://api.github.com/repos/elo7/tech-blog/issues/19"},"comments":{"href":"https://api.github.com/repos/elo7/tech-blog/issues/19/comments"},"review_comments":{"href":"https://api.github.com/repos/elo7/tech-blog/pulls/19/comments"},"review_comment":{"href":"https://api.github.com/repos/elo7/tech-blog/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/elo7/tech-blog/pulls/19/commits"},"statuses":{"href":"https://api.github.com/repos/elo7/tech-blog/statuses/9b59ccf1b4c2a15b719b8526501512893d856402"}}}}
{"actor":{"display_login":"FernandaBernardo"}}