{"id":54204,"date":"2023-10-02T05:06:42","date_gmt":"2023-10-02T08:06:42","guid":{"rendered":"https:\/\/kinsta.com\/pt\/?p=54204&#038;post_type=knowledgebase&#038;preview_id=54204"},"modified":"2025-10-01T17:01:24","modified_gmt":"2025-10-01T20:01:24","slug":"solicitacoes-http-javascript","status":"publish","type":"post","link":"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/","title":{"rendered":"Um Guia para Solicita\u00e7\u00f5es HTTP em JavaScript"},"content":{"rendered":"<p>A intera\u00e7\u00e3o entre o <a href=\"https:\/\/kinsta.com\/pt\/blog\/backend-vs-frontend\/\">frontend e o backend<\/a> dos sites \u00e9 poss\u00edvel devido \u00e0s solicita\u00e7\u00f5es HTTP. Funcionalidades como atualizar um usu\u00e1rio novo\/antigo em um banco de dados, publicar um artigo no <a href=\"https:\/\/kinsta.com\/pt\/blog\/painel-administrativo-wordpress\/\">painel WordPress<\/a>, apagar uma imagem do seu perfil e atualizar sua bio \u2014 tudo isso requer uma intera\u00e7\u00e3o entre um servidor e um cliente para modificar dados.<\/p>\n<p>Ao construir aplicativos web \u2014 tanto frontend quanto full stack \u2014 interagimos frequentemente com dados armazenados em diferentes bancos de dados e servidores. Esses servidores podem pertencer a terceiros ou talvez sejam criados pelos desenvolvedores de um projeto.<\/p>\n\n<p>Para interagir com esses servidores, podemos usar diferentes m\u00e9todos HTTP para solicitar dados. Podemos criar, ler, atualizar e excluir (CRUD) dados em servidores usando verbos HTTP dedicados como POST, GET, PUT\/PATCH, e DELETE.<\/p>\n<p>Neste tutorial, voc\u00ea aprender\u00e1 as v\u00e1rias maneiras de fazer solicita\u00e7\u00f5es HTTP para servidores remotos e realizar opera\u00e7\u00f5es CRUD em <a href=\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-javascript\/\">JavaScript<\/a>.<\/p>\n<p>Cada se\u00e7\u00e3o introduzir\u00e1 um novo m\u00e9todo para o envio de solicita\u00e7\u00f5es HTTP. Come\u00e7aremos a partir dos m\u00e9todos integrados, como o fetch API e o objeto XMLHttpRequest, antes de olhar para algumas bibliotecas de requisi\u00e7\u00f5es HTTP de c\u00f3digo aberto, como Axios e SuperAgent.<\/p>\n<p>Vamos come\u00e7ar!<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>O que \u00e9 uma solicita\u00e7\u00e3o HTTP em JavaScript?<\/h2>\n<p>As <a href=\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-uma-solicitacao-http\/\">solicita\u00e7\u00f5es HTTP<\/a> em JavaScript s\u00e3o um conjunto de m\u00e9todos pr\u00e9-definidos usados para interagir com dados armazenados em servidores.<\/p>\n<p>Toda solicita\u00e7\u00e3o enviada para um servidor inclui um endpoint e o tipo de solicita\u00e7\u00e3o enviada. Voc\u00ea pode ver um endpoint como um gateway entre dois programas, o cliente e o servidor.<\/p>\n<p>O cliente \u00e9 o programa que envia uma solicita\u00e7\u00e3o, e o servidor \u00e9 aquele que recebe a solicita\u00e7\u00e3o. O servidor envia de volta uma resposta dependendo da validade da solicita\u00e7\u00e3o. Se a solicita\u00e7\u00e3o for bem-sucedida, o servidor envia de volta os dados em formato XML ou JSON (geralmente JSON), e se a solicita\u00e7\u00e3o falhar, o servidor envia de volta uma <a href=\"https:\/\/kinsta.com\/pt\/blog\/erros-no-javascript\/\">mensagem de erro<\/a>.<\/p>\n<p>As respostas enviadas de volta pelo servidor est\u00e3o geralmente associadas a <a href=\"https:\/\/kinsta.com\/pt\/blog\/lista-codigos-status-http\/\">c\u00f3digos de status<\/a>. Esses c\u00f3digos nos ajudam a entender o que o servidor est\u00e1 tentando informar quando recebe uma solicita\u00e7\u00e3o. Aqui est\u00e3o alguns deles e o que significam:<\/p>\n<ul>\n<li>100\u2013199 denotam uma resposta informativa.<\/li>\n<li>200\u2013299 denotam uma solicita\u00e7\u00e3o bem-sucedida.<\/li>\n<li>300\u2013399 denotam redirecionamento.<\/li>\n<li>400\u2013499 denotam erro do cliente.<\/li>\n<li>500\u2013599 denotam <a href=\"https:\/\/kinsta.com\/pt\/blog\/erro-500-internal-server\/\">erro no servidor<\/a>.<\/li>\n<\/ul>\n<p>Falaremos mais sobre alguns desses c\u00f3digos nas se\u00e7\u00f5es a seguir.<\/p>\n<p>Na pr\u00f3xima se\u00e7\u00e3o, voc\u00ea ver\u00e1 as diferentes maneiras pelas quais voc\u00ea pode fazer solicita\u00e7\u00f5es HTTP em JavaScript.<\/p>\n<h2>Como fazer uma solicita\u00e7\u00e3o HTTP em JavaScript<\/h2>\n<p>Esta se\u00e7\u00e3o ser\u00e1 dividida em subse\u00e7\u00f5es, cada uma ensinando diferentes m\u00e9todos que voc\u00ea pode usar para fazer solicita\u00e7\u00f5es HTTP em JavaScript.<\/p>\n<p>Cada m\u00e9todo discutido ter\u00e1 um exemplo mostrando como enviar solicita\u00e7\u00f5es POST, GET, PUT\/PATCH e DELETE para os servidores.<\/p>\n<p>O <a href=\"https:\/\/jsonplaceholder.typicode.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">JSON Placeholder<\/a> servir\u00e1 como o servidor\/endpoint remoto para onde todas as nossas solicita\u00e7\u00f5es ser\u00e3o enviadas.<\/p>\n<p>Vamos come\u00e7ar!<\/p>\n<h3>1. Como fazer uma solicita\u00e7\u00e3o HTTP em JavaScript usando XMLHttpRequest (AJAX)<\/h3>\n<p>XMLHttpRequest \u00e9 um objeto JavaScript embutido usado para interagir com servidores e carregar conte\u00fado em p\u00e1ginas web sem recarregar o navegador.<\/p>\n<p>Nesta se\u00e7\u00e3o, voc\u00ea ver\u00e1 como enviar solicita\u00e7\u00f5es POST, GET, PUT\/PATCH e DELETE usando XMLHttpRequest.<\/p>\n<p>O AJAX \u00e9 usado para fazer solicita\u00e7\u00f5es HTTP ass\u00edncronas. Isso significa simplesmente que enquanto uma resposta de uma solicita\u00e7\u00e3o est\u00e1 pendente, outras partes do seu c\u00f3digo JavaScript podem continuar rodando sem esperar que a solicita\u00e7\u00e3o seja completada primeiro.<\/p>\n<p>Usando AJAX, voc\u00ea tamb\u00e9m pode mover modifica\u00e7\u00f5es para uma se\u00e7\u00e3o espec\u00edfica da sua p\u00e1gina web sem for\u00e7ar o visitante a recarregar a p\u00e1gina inteira.<\/p>\n<p>AJAX, por padr\u00e3o, funciona com o objeto XMLHttpRequest, ent\u00e3o os exemplos nesta se\u00e7\u00e3o podem ser considerados como solicita\u00e7\u00f5es AJAX.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Inicialmente, voc\u00ea poderia especificar se uma solicita\u00e7\u00e3o deve ser ass\u00edncrona ou n\u00e3o usando um par\u00e2metro <code>true<\/code> (ass\u00edncrona) e <code>false<\/code> em sua solicita\u00e7\u00e3o, mas este \u00faltimo hoje est\u00e1 ultrapassado.<\/p>\n<\/aside>\n\n<h4>Como enviar uma solicita\u00e7\u00e3o GET em JavaScript usando XMLHttpRequest<\/h4>\n<p>Voc\u00ea faz uso da solicita\u00e7\u00e3o GET quando deseja recuperar dados de um servidor. Para enviar uma solicita\u00e7\u00e3o GET bem-sucedida usando o XMLHttpRequest em JavaScript, voc\u00ea deve realizar corretamente as seguintes a\u00e7\u00f5es:<\/p>\n<ol>\n<li>Crie um novo objeto XMLHttpRequest.<\/li>\n<li>Abra uma conex\u00e3o especificando o tipo de solicita\u00e7\u00e3o e o endpoint (a URL do servidor).<\/li>\n<li>Envie a solicita\u00e7\u00e3o.<\/li>\n<li>Ou\u00e7a a resposta do servidor.<\/li>\n<\/ol>\n<p>Agora que vimos alguns passos que envolvem o envio de uma solicita\u00e7\u00e3o POST usando XMLHttpRequest, vejamos um exemplo de c\u00f3digo:<\/p>\n<pre><code class=\"language-js\">const xhr = new XMLHttpRequest();\nxhr.open(\"GET\", \"https:\/\/jsonplaceholder.typicode.com\/users\");\nxhr.send();\nxhr.responseType = \"json\";\nxhr.onload = () =&gt; {\n  if (xhr.readyState == 4 && xhr.status == 200) {\n    const data = xhr.response;\n    console.log(data);\n  } else {\n    console.log(`Error: ${xhr.status}`);\n  }\n};<\/code><\/pre>\n<p>Vamos analisar o c\u00f3digo acima para entender o que est\u00e1 acontecendo aqui.<\/p>\n<p>A primeira coisa que fizemos foi criar um novo objeto XMLHttpRequest e armazen\u00e1-lo em uma vari\u00e1vel chamada <code>xhr<\/code>. Ou seja:<\/p>\n<pre><code class=\"language-js\">const xhr = new XMLHttpRequest();<\/code><\/pre>\n<p>Ent\u00e3o especificamos o tipo de solicita\u00e7\u00e3o (GET) e o endpoint para onde a solicita\u00e7\u00e3o ser\u00e1 enviada (neste caso, &#8220;<a href=\"https:\/\/jsonplaceholder.typicode.com\/users\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/jsonplaceholder.typicode.com\/users<\/a>&#8220;)\u02d0<\/p>\n<pre><code class=\"language-js\">xhr.open(\"GET\", \"https:\/\/jsonplaceholder.typicode.com\/users\");<\/code><\/pre>\n<p>Para enviar a solicita\u00e7\u00e3o para o servidor, usamos o m\u00e9todo <code> send()<\/code>.<\/p>\n<p>Quando o servidor envia de volta os dados, voc\u00ea pode especificar o formato em que os dados s\u00e3o devolvidos.<\/p>\n<p>Geralmente \u00e9 usado o JSON. Ent\u00e3o, garantimos que nossos dados fossem retornados em JSON adicionando isto:<\/p>\n<pre><code class=\"language-js\">xhr.responseType = \"json\";<\/code><\/pre>\n<p>Neste ponto, enviamos com sucesso uma solicita\u00e7\u00e3o GET. A pr\u00f3xima coisa a fazer \u00e9 ouvir o que o servidor responde usando um event listener (&#8216;ouvinte de eventos&#8217;):<\/p>\n<pre><code class=\"language-js\">xhr.onload = () =&gt; {\n  if (xhr.readyState == 4 && xhr.status == 200) {\n    const data = xhr.response;\n    console.log(data);\n  } else {\n    console.log(`Error: ${xhr.status}`);\n  }\n};<\/code><\/pre>\n<p>No c\u00f3digo acima, estamos usando o event listener <code>onload<\/code>. Usando uma declara\u00e7\u00e3o <code>if<\/code>, verificamos o status da resposta do servidor.<\/p>\n<p>Se o estado do cliente for 4 (DONE) e se o c\u00f3digo de status for 200 (successful), os dados ser\u00e3o registrados no console. Caso contr\u00e1rio, uma mensagem de erro mostrando o status do erro aparecer\u00e1.<\/p>\n<p>Se voc\u00ea seguiu at\u00e9 este ponto sem nenhum erro, deve ter um array de objetos em seu console\u02d0<\/p>\n<pre><code class=\"language-js\">[{\u2026}, {\u2026}, {\u2026}, {\u2026}, {\u2026}, {\u2026}, {\u2026}, {\u2026}, {\u2026}, {\u2026}]<\/code><\/pre>\n<p>Estes s\u00e3o os dados recuperados do servidor.<\/p>\n<h4>Como enviar uma solicita\u00e7\u00e3o POST em JavaScript usando XMLHttpRequest<\/h4>\n<p>Com a solicita\u00e7\u00e3o POST, voc\u00ea pode enviar novas informa\u00e7\u00f5es (dados) para o servidor\/banco de dados como um objeto. O objeto pode ser informa\u00e7\u00e3o sobre um novo usu\u00e1rio, uma nova entrada na lista de afazeres, ou qualquer outra coisa que voc\u00ea precise registrar.<\/p>\n<p>O exemplo de c\u00f3digo que voc\u00ea ver\u00e1 nesta se\u00e7\u00e3o \u00e9 similar ao da \u00faltima se\u00e7\u00e3o. A principal diferen\u00e7a \u00e9 que as solicita\u00e7\u00f5es POST requerem algumas informa\u00e7\u00f5es normalmente armazenadas em um objeto antes de serem enviadas ao servidor.<\/p>\n<p>Aqui est\u00e1 um exemplo:<\/p>\n<pre><code class=\"language-js\">const xhr = new XMLHttpRequest();\nxhr.open(\"POST\", \"https:\/\/jsonplaceholder.typicode.com\/posts\");\nxhr.setRequestHeader(\"Content-Type\", \"application\/x-www-form-urlencoded\");\nconst body = JSON.stringify({\n  title: \"Hello World\",\n  body: \"My POST request\",\n  userId: 900,\n});\nxhr.onload = () =&gt; {\n  if (xhr.readyState == 4 && xhr.status == 201) {\n    console.log(JSON.parse(xhr.responseText));\n  } else {\n    console.log(`Error: ${xhr.status}`);\n  }\n};\nxhr.send(body);<\/code><\/pre>\n<p>No c\u00f3digo acima, a informa\u00e7\u00e3o a ser enviada ao servidor \u00e9 armazenada em uma vari\u00e1vel chamada <code>body<\/code>. Ela cont\u00e9m tr\u00eas propriedades: <code>title<\/code>, <code>body<\/code>, e <code>userId<\/code>.<\/p>\n<p>Note que a vari\u00e1vel <code>body<\/code> que cont\u00e9m o objeto deve ser convertida em um objeto JSON antes de ser enviada ao servidor. A convers\u00e3o \u00e9 feita usando o m\u00e9todo <code>JSON.stringify()<\/code>.<\/p>\n<p>Para garantir que o objeto JSON seja enviado para o servidor, ele \u00e9 passado como par\u00e2metro para o m\u00e9todo <code>send()<\/code>:<\/p>\n<pre><code class=\"language-js\">xhr.send(body);<\/code><\/pre>\n<h4>Como enviar uma solicita\u00e7\u00e3o PATCH em JavaScript usando XMLHttpRequest<\/h4>\n<p>A solicita\u00e7\u00e3o PATCH \u00e9 usada para atualizar propriedades especificadas de um objeto. Isso difere do m\u00e9todo PUT, que atualiza a totalidade de um objeto.<\/p>\n<p>Aqui est\u00e1 um exemplo de uma solicita\u00e7\u00e3o PATCH usando XMLHttpRequest em JavaScript:<\/p>\n<pre><code class=\"language-js\">const xhr = new XMLHttpRequest();\nxhr.open(\"PATCH\", \"https:\/\/jsonplaceholder.typicode.com\/posts\/101\");\nxhr.setRequestHeader(\"Content-type\", \"application\/json; charset=utf-8\");\nconst body = JSON.stringify({\n  body: \"My PATCH request\",\n});\nxhr.onload = () =&gt; {\n  var data = JSON.parse(xhr.responseText);\n  if (xhr.readyState == 4 && xhr.status == \"200\") {\n    console.log(data);\n  } else {\n    console.log(`Error: ${xhr.status}`);\n  }\n};\nxhr.send(body);<\/code><\/pre>\n<p>O c\u00f3digo acima, se bem-sucedido, registrar\u00e1 a parte do objeto que foi atualizada e enviada para o servidor.<\/p>\n<h4>Como enviar uma solicita\u00e7\u00e3o DELETE em JavaScript usando XMLHttpRequest<\/h4>\n<p>Como o nome sugere, o m\u00e9todo DELETE \u00e9 usado para apagar dados de um servidor. Este \u00e9 o mesmo para qualquer m\u00e9todo HTTP em JavaScript.<\/p>\n<p>Geralmente voc\u00ea ter\u00e1 que especificar o ID dos dados que deseja excluir. O ID \u00e9 normalmente um par\u00e2metro no endpoint\/URL.<\/p>\n<p>Vamos ver um exemplo de uma solicita\u00e7\u00e3o DELETE:<\/p>\n<pre><code class=\"language-js\">const xhr = new XMLHttpRequest();\nxhr.open(\"DELETE\", \"https:\/\/jsonplaceholder.typicode.com\/posts\/3\");\nxhr.onload = function () {\n  var data = JSON.parse(xhr.responseText);\n  if (xhr.readyState == 4 && xhr.status == \"200\") {\n    console.log(data);\n  } else {\n    console.log(`Error: ${xhr.status}`);\n  }\n};\nxhr.send();<\/code><\/pre>\n<p>O c\u00f3digo acima ir\u00e1 excluir um objeto usando uma solicita\u00e7\u00e3o POST com um ID de 3, conforme especificado no endpoint (&#8220;<a href=\"https:\/\/jsonplaceholder.typicode.com\/posts\/3\">https:\/\/jsonplaceholder.typicode.com\/posts\/3<\/a>&#8220;).<\/p>\n<h3>2. Como fazer uma solicita\u00e7\u00e3o HTTP em JavaScript Usando jQuery<\/h3>\n<p>O jQuery simplifica o processo de obten\u00e7\u00e3o de dados de servidores tornando a sintaxe mais curta e direta.<\/p>\n<p>Nesta se\u00e7\u00e3o, voc\u00ea ver\u00e1 como fazer solicita\u00e7\u00f5es <a href=\"https:\/\/kinsta.com\/pt\/blog\/http3\/\">HTTP<\/a> usando diferentes m\u00e9todos jQuery.<\/p>\n<h4>Como enviar uma solicita\u00e7\u00e3o GET em JavaScript usando jQuery<\/h4>\n<p>O jQuery fornece o m\u00e9todo <code>$.get()<\/code> para enviar solicita\u00e7\u00f5es GET aos servidores. O m\u00e9todo aceita dois par\u00e2metros \u2014 a URL para o servidor e uma fun\u00e7\u00e3o de callback que \u00e9 executada se a solicita\u00e7\u00e3o for bem-sucedida.<\/p>\n<p>Aqui est\u00e1 um exemplo:<\/p>\n<pre><code class=\"language-js\">$.get(\"https:\/\/jsonplaceholder.typicode.com\/users\", (data, status) =&gt; {\n  console.log(data);\n});<\/code><\/pre>\n<p>Como se pode ver no c\u00f3digo acima, o m\u00e9todo <code>$.get()<\/code> tomou como par\u00e2metros a URL (<a href=\"https:\/\/jsonplaceholder.typicode.com\/users\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/jsonplaceholder.typicode.com\/users<\/a>) e uma fun\u00e7\u00e3o callback an\u00f4nima.<\/p>\n<p>Por meio da fun\u00e7\u00e3o callback, voc\u00ea pode acessar os dados e o status da solicita\u00e7\u00e3o. Em nosso pr\u00f3prio caso, registramos os dados no console.<\/p>\n<p>\u00c9 simples assim enviar uma solicita\u00e7\u00e3o GET usando jQuery.<\/p>\n<h4>Como enviar uma solicita\u00e7\u00e3o POST em JavaScript usando jQuery<\/h4>\n<p>Para enviar uma solicita\u00e7\u00e3o POST usando jQuery, usamos o m\u00e9todo <code>$.post()<\/code>. S\u00e3o necess\u00e1rios tr\u00eas par\u00e2metros \u2014 a URL, os dados a serem enviados para o servidor e uma fun\u00e7\u00e3o callback.<\/p>\n<pre><code class=\"language-js\">const body = JSON.stringify({\n  title: \"Hello World\",\n  body: \"My POST request\",\n  userId: 900,\n});\n$.post(\"https:\/\/jsonplaceholder.typicode.com\/users\", body, (data, status) =&gt; {\n  console.log(data);\n});<\/code><\/pre>\n<p>No c\u00f3digo acima, criamos um objeto para ser enviado ao servidor e o armazenamos em uma vari\u00e1vel chamada <code>body<\/code>. Essa vari\u00e1vel foi passada como um segundo par\u00e2metro no m\u00e9todo <code>$.post()<\/code>.<\/p>\n<p>Usando a fun\u00e7\u00e3o de callback, registramos o resultado da solicita\u00e7\u00e3o no console.<\/p>\n<h3>3. Como fazer solicita\u00e7\u00f5es ass\u00edncronas em jQuery utilizando o m\u00e9todo $.ajax()<\/h3>\n<p>Antes de continuarmos para as solicita\u00e7\u00f5es PATCH e DELETE, vamos falar sobre o m\u00e9todo <code>$.ajax()<\/code>.<\/p>\n<p>O m\u00e9todo <code>$.ajax()<\/code> em jQuery \u00e9 usado para fazer solicita\u00e7\u00f5es ass\u00edncronas.<\/p>\n<p>A sintaxe difere das outras.<\/p>\n<p>Veja como voc\u00ea faria uma solicita\u00e7\u00e3o GET usando o m\u00e9todo <code>$.ajax()<\/code>:<\/p>\n<pre><code class=\"language-js\">$.ajax({\n  url: \"https:\/\/jsonplaceholder.typicode.com\/users\",\n  type: \"GET\",\n  success: function (result) {\n    console.log(result);\n  },\n});<\/code><\/pre>\n<p>O m\u00e9todo <code>$.ajax()<\/code> tem diferentes par\u00e2metros que podemos usar.<\/p>\n<p>No c\u00f3digo acima, o par\u00e2metro <code>url<\/code> especifica a URL para o servidor, o <code>type<\/code> especifica o tipo de solicita\u00e7\u00e3o, e o par\u00e2metro <code>success<\/code> chama uma fun\u00e7\u00e3o callback se a solicita\u00e7\u00e3o for bem-sucedida.<\/p>\n<p>Na pr\u00f3xima se\u00e7\u00e3o, voc\u00ea ver\u00e1 como enviar solicita\u00e7\u00f5es PATCH e DELETE usando o m\u00e9todo jQuery <code>$.ajax()<\/code>.<\/p>\n<h4>Como enviar uma solicita\u00e7\u00e3o PATCH em JavaScript usando o m\u00e9todo $.ajax() do\u00a0jQuery<\/h4>\n<p>Nesta se\u00e7\u00e3o, voc\u00ea ver\u00e1 como enviar solicita\u00e7\u00f5es PATCH usando o m\u00e9todo <code>$.ajax()<\/code>\u00a0do jQuery.<\/p>\n<p>Aqui est\u00e1 o c\u00f3digo:<\/p>\n<pre><code class=\"language-js\">const body = JSON.stringify({\n  body: \"My PATCH request\",\n});\n$.ajax({\n  url: \"https:\/\/jsonplaceholder.typicode.com\/posts\/101\",\n  type: \"PATCH\",\n  data: body,\n  success: function (result) {\n    console.log(result);\n  },\n});<\/code><\/pre>\n<p>No c\u00f3digo acima, a propriedade a ser atualizada \u00e9 armazenada na vari\u00e1vel <code>body<\/code>. Isso \u00e9 ent\u00e3o usado como o valor para o par\u00e2metro <code>data<\/code>.<\/p>\n<p>Se a solicita\u00e7\u00e3o for bem-sucedida, a fun\u00e7\u00e3o para o par\u00e2metro <code>success<\/code> ser\u00e1 executada.<\/p>\n<h4>Como enviar uma solicita\u00e7\u00e3o DELETE em JavaScript usando o m\u00e9todo $.ajax() do jQuery<\/h4>\n<p>O envio de uma solicita\u00e7\u00e3o DELETE usando o m\u00e9todo <code>$.ajax()<\/code> do jQuery requer apenas algumas linhas de c\u00f3digo.<\/p>\n<p>Aqui est\u00e1 um exemplo:<\/p>\n<pre><code class=\"language-js\">$.ajax({\n  url: \"https:\/\/jsonplaceholder.typicode.com\/posts\/3\",\n  type: \"DELETE\",\n  success: function (result) {\n    console.log(result)\n  },\n});<\/code><\/pre>\n<p>Como se pode ver acima, tudo que tivemos de fazer foi especificar a URL com o ID do objeto a ser exclu\u00eddo, o tipo de solicita\u00e7\u00e3o e uma fun\u00e7\u00e3o que roda se a solicita\u00e7\u00e3o for bem-sucedida.<\/p>\n<h4>Como usar o m\u00e9todo $.getJSON em jQuery<\/h4>\n<p>O m\u00e9todo <code>$.getJSON<\/code> prov\u00ea uma forma mais curta de enviar solicita\u00e7\u00f5es GET.<\/p>\n<p>Para fazer uma solicita\u00e7\u00e3o bem-sucedida, voc\u00ea s\u00f3 tem de especificar a URL e a fun\u00e7\u00e3o callback. Veja um exemplo:<\/p>\n<pre><code class=\"language-js\">$.getJSON(\"https:\/\/jsonplaceholder.typicode.com\/users\", function (result) {\n  console.log(result)\n});<\/code><\/pre>\n<p>No c\u00f3digo acima, passamos a URL para o servidor e a fun\u00e7\u00e3o que ser\u00e1 executada ap\u00f3s a solicita\u00e7\u00e3o ser bem-sucedida como par\u00e2metros para o m\u00e9todo <code>$.getJSON<\/code>.<\/p>\n<p>O c\u00f3digo acima registrar\u00e1 um array de objetos contendo informa\u00e7\u00f5es do usu\u00e1rio para o console.<\/p>\n<h3>4. Como fazer uma solicita\u00e7\u00e3o HTTP em JavaScript usando a API Fetch<\/h3>\n<p>A API <code>fetch<\/code> \u00e9 uma das formas mais populares de interagir com servidores usando JavaScript. \u00c9 uma API JavaScript nativa com suporte para promessas enquanto faz solicita\u00e7\u00f5es.<\/p>\n<p>A sintaxe para usar a API <code>fetch<\/code> \u00e9 muito f\u00e1cil de entender, como voc\u00ea ver\u00e1 nas se\u00e7\u00f5es a seguir.<\/p>\n<h4>Como enviar uma solicita\u00e7\u00e3o GET em JavaScript usando a API Fetch<\/h4>\n<p>O envio de uma solicita\u00e7\u00e3o GET usando a API <code>fetch<\/code> requer apenas a URL. Isso ent\u00e3o retorna uma promessa que voc\u00ea pode acessar usando o m\u00e9todo <code>then()<\/code> ou as palavras-chave <code>async<\/code> e <code>await<\/code>.<\/p>\n<p>Vejamos um exemplo:<\/p>\n<pre><code class=\"language-js\">fetch(\"https:\/\/jsonplaceholder.typicode.com\/posts\")\n.then((response) =&gt; response.json())\n.then((json) =&gt; console.log(json));<\/code><\/pre>\n<p>No c\u00f3digo acima, passamos a URL para o m\u00e9todo <code>fetch<\/code>, o que retorna uma promessa. Ent\u00e3o acessamos a resposta do servidor usando o m\u00e9todo <code>then()<\/code>. A resposta foi convertida em um objeto JSON usando o m\u00e9todo <code>response.json()<\/code>.<\/p>\n<p>Ap\u00f3s obter a resposta, usamos outro m\u00e9todo <code>then()<\/code> para enviar os dados para o console.<\/p>\n<h4>Como enviar uma solicita\u00e7\u00e3o POST em JavaScript usando a API Fetch<\/h4>\n<p>O m\u00e9todo fetch tem um segundo par\u00e2metro que nos permite especificar o corpo (dados a serem enviados) e o tipo de solicita\u00e7\u00e3o a ser enviada. Esse segundo par\u00e2metro nos permite enviar solicita\u00e7\u00f5es POST e PATCH.<\/p>\n<p>D\u00ea uma olhada neste exemplo de c\u00f3digo:<\/p>\n<pre><code class=\"language-js\">fetch(\"https:\/\/jsonplaceholder.typicode.com\/posts\", {\n  method: \"POST\",\n  body: JSON.stringify({\n    title: \"Hello World\",\n    body: \"My POST request\",\n    userId: 900,\n  }),\n  headers: {\n    \"Content-type\": \"application\/json; charset=UTF-8\",\n  },\n})\n.then((response) =&gt; response.json())\n.then((json) =&gt; console.log(json));<\/code><\/pre>\n<p>No c\u00f3digo acima, adicionamos op\u00e7\u00f5es de solicita\u00e7\u00e3o no segundo par\u00e2metro do m\u00e9todo <code>fetch<\/code>. <code>method<\/code> foi usado para especificar o tipo de solicita\u00e7\u00e3o, <code>body<\/code> especificou os dados a serem enviados para o servidor, e <code>headers<\/code> foi usado para especificar que estar\u00edamos enviando dados JSON para o servidor.<\/p>\n<p>Como fizemos antes ao enviar uma solicita\u00e7\u00e3o GET, a promessa\/resposta retornada foi acessada usando o m\u00e9todo <code>then()<\/code>.<\/p>\n<h4>Como enviar uma solicita\u00e7\u00e3o PUT em JavaScript usando a API Fetch<\/h4>\n<p>Nas outras se\u00e7\u00f5es, quando enviamos uma solicita\u00e7\u00e3o para atualizar um objeto no servidor, usamos PATCH. Nesta se\u00e7\u00e3o usaremos PUT, que permite atualizar a totalidade de um objeto.<\/p>\n<p>Aqui est\u00e1 um exemplo, usando a API <code>fetch<\/code>:<\/p>\n<pre><code class=\"language-js\">fetch(\"https:\/\/jsonplaceholder.typicode.com\/posts\/1\", {\n  method: \"PUT\",\n  body: JSON.stringify({\n    id: 1,\n    title: \"My PUT request\",\n    body: \"Updating the entire object\",\n    userId: 1,\n  }),\n  headers: {\n    \"Content-type\": \"application\/json; charset=UTF-8\",\n  },\n})\n.then((response) =&gt; response.json())\n.then((json) =&gt; console.log(json));<\/code><\/pre>\n<p>Como estamos enviando uma solicita\u00e7\u00e3o PUT, precisamos fornecer os dados a serem atualizados, o que \u00e9 passado como um valor para a op\u00e7\u00e3o de solicita\u00e7\u00e3o <code>body<\/code>.<\/p>\n<p>Tamb\u00e9m especificamos o ID do objeto a ser atualizado como o \u00faltimo par\u00e2metro na URL. Caso a solicita\u00e7\u00e3o seja executada com sucesso, voc\u00ea deve ver o objeto atualizado registrado no console.<\/p>\n<h4>Como enviar uma solicita\u00e7\u00e3o DELETE em JavaScript usando a API Fetch<\/h4>\n<p>Enviar uma solicita\u00e7\u00e3o DELETE \u00e9 bastante simples \u2014 tudo que voc\u00ea tem de fazer \u00e9 especificar o ID do objeto a ser exclu\u00eddo. Voc\u00ea pode usar o m\u00e9todo <code>then()<\/code> para receber a resposta do servidor, como fizemos com as outras solicita\u00e7\u00f5es.<\/p>\n<p>Aqui est\u00e1 um breve exemplo:<\/p>\n<pre><code class=\"language-js\">fetch(\"https:\/\/jsonplaceholder.typicode.com\/posts\/3\", {\n  method: \"DELETE\",\n});<\/code><\/pre>\n<p>O c\u00f3digo acima ir\u00e1 apagar um objeto com um ID de 3.<\/p>\n<h3>5. Como fazer uma solicita\u00e7\u00e3o HTTP em JavaScript usando Axios<\/h3>\n<p>Axios \u00e9 uma biblioteca de terceiros baseada em promessas para o envio de solicita\u00e7\u00f5es HTTP. Assim como a maioria dos clientes HTTP modernos, ela simplifica o processo de enviar requisi\u00e7\u00f5es para um servidor.<\/p>\n<p>Nesta se\u00e7\u00e3o, voc\u00ea aprender\u00e1 como enviar solicita\u00e7\u00f5es GET, POST, PUT e DELETE para um servidor usando Axios.<\/p>\n<p>Note que o Axios n\u00e3o est\u00e1 integrado ao JavaScript \u2014 voc\u00ea ter\u00e1 de instal\u00e1-lo separadamente para usar sua funcionalidade. Para instalar o Axios em seu projeto, execute o comando abaixo no <a href=\"https:\/\/kinsta.com\/pt\/blog\/npm-gerenciador-pacotes-node\/\">terminal do seu projeto<\/a>:<\/p>\n<pre><code class=\"language-js\">npm install axios<\/code><\/pre>\n<h4>Como enviar uma solicita\u00e7\u00e3o GET em JavaScript usando Axios<\/h4>\n<p>Para enviar uma solicita\u00e7\u00e3o GET usando Axios, voc\u00ea s\u00f3 tem que passar a URL para o m\u00e9todo <code>get()<\/code>, que retorna uma promessa. A resposta retornada a partir da promessa pode ser acessada usando o m\u00e9todo <code>then()<\/code>.<\/p>\n<p>Vejamos um exemplo:<\/p>\n<pre><code class=\"language-js\">axios.get(\"https:\/\/jsonplaceholder.typicode.com\/posts\")\n.then((response) =&gt; console.log(response.data))\n.catch((error) =&gt; console.log(error));<\/code><\/pre>\n<p>O c\u00f3digo acima ir\u00e1 registrar um array de objetos contendo dados retornados pelo servidor. Note que n\u00e3o precisamos converter explicitamente os objetos retornados em objetos JSON \u2014 o Axios lida com isso internamente, e voc\u00ea pode acessar os dados usando <code>response.data<\/code>.<\/p>\n<p>Para capturar quaisquer erros, utilizamos o m\u00e9todo <code>catch()<\/code>.<\/p>\n<h4>Como enviar uma solicita\u00e7\u00e3o POST em JavaScript usando Axios<\/h4>\n<p>A solicita\u00e7\u00e3o POST no Axios leva dois par\u00e2metros \u2014 a URL e os dados a serem enviados para o servidor. Voc\u00ea pode armazenar os dados em uma vari\u00e1vel ou pass\u00e1-los diretamente como um par\u00e2metro.<\/p>\n<p>Veja como:<\/p>\n<pre><code class=\"language-js\">axios.post(\"https:\/\/jsonplaceholder.typicode.com\/posts\", {\n  title: \"POST request with Axios\",\n  body: \"POST request\",\n  userId: 10,\n})\n.then(function (response) {\n  console.log(response.data);\n})\n.then((error) =&gt; console.log(error))<\/code><\/pre>\n<p>No exemplo acima, estamos enviando dados para o servidor. Os dados s\u00e3o passados como um segundo par\u00e2metro para o m\u00e9todo <code>post()<\/code>.<\/p>\n<p>Se a solicita\u00e7\u00e3o for enviada com sucesso, voc\u00ea ver\u00e1 o resultado registrado no console.<\/p>\n<h4>Como enviar uma solicita\u00e7\u00e3o PUT em JavaScript usando Axios<\/h4>\n<p>O envio de uma solicita\u00e7\u00e3o PUT com Axios \u00e9 semelhante ao envio de uma solicita\u00e7\u00e3o POST. Para enviar uma solicita\u00e7\u00e3o PUT, voc\u00ea especifica a URL (incluindo o ID do objeto a ser atualizado) e os dados a serem atualizados como um segundo par\u00e2metro no m\u00e9todo <code>put()<\/code>.<\/p>\n<p>O exemplo abaixo ir\u00e1 atualizar um objeto com um ID de 10:<\/p>\n<pre><code class=\"language-js\">axios.put(\"https:\/\/jsonplaceholder.typicode.com\/posts\/10\", {\n  title: \"PUT request with Axios\",\n  body: \"PUT request\",\n  userId: 10,\n})\n.then(function (response) {\n  console.log(response.data);\n})\n.then((error) =&gt; console.log(error))<\/code><\/pre>\n<h4>Como enviar uma solicita\u00e7\u00e3o DELETE em JavaScript usando Axios<\/h4>\n<p>Para enviar uma solicita\u00e7\u00e3o DELETE, voc\u00ea especifica o ID do objeto a ser exclu\u00eddo na URL.<\/p>\n<p>Como de costume, voc\u00ea tem que especificar a URL junto com o ID do objeto a ser removido.\u00a0Aqui est\u00e1 um exemplo:<\/p>\n<pre><code class=\"language-js\">axios.delete(\"https:\/\/jsonplaceholder.typicode.com\/posts\/10\")\n.then(function (response) {\n  console.log(response);\n})\n.then((error) =&gt; console.log(error))<\/code><\/pre>\n<h3>6. Como fazer uma solicita\u00e7\u00e3o HTTP em JavaScript usando o SuperAgent<\/h3>\n<p>O SuperAgent \u00e9 uma das bibliotecas mais antigas criadas para fazer solicita\u00e7\u00f5es HTTP em JavaScript. Assim como o Axios, ele suporta promessas com m\u00e9todos pr\u00e9-constru\u00eddos para enviar v\u00e1rias requisi\u00e7\u00f5es HTTP para servidores.<\/p>\n<p>Para usar o SuperAgent, instale-o usando o comando abaixo:<\/p>\n<pre><code class=\"language-js\">npm install superagent<\/code><\/pre>\n<p>Vamos come\u00e7ar com um exemplo de solicita\u00e7\u00e3o GET.<\/p>\n<h4>Como enviar uma solicita\u00e7\u00e3o GET em JavaScript usando o SuperAgent<\/h4>\n<p>O SuperAgent fornece um m\u00e9todo <code>get()<\/code> para enviar solicita\u00e7\u00f5es GET. A URL \u00e9 passada como o par\u00e2metro do m\u00e9todo.<\/p>\n<p>A promessa retornada da solicita\u00e7\u00e3o pode ent\u00e3o ser avaliada usando o m\u00e9todo <code>end()<\/code>, como visto neste exemplo:<\/p>\n<pre><code class=\"language-js\">superagent\n.get(\"https:\/\/jsonplaceholder.typicode.com\/posts\")\n.end((error, response) =&gt; {\n  console.log(response.body);\n});<\/code><\/pre>\n<h4>Como enviar uma solicita\u00e7\u00e3o POST em JavaScript usando o SuperAgent<\/h4>\n<p>Ao enviar uma solicita\u00e7\u00e3o POST usando o SuperAgent, voc\u00ea passa os dados a serem enviados para o servidor como um par\u00e2metro para o m\u00e9todo <code>send()<\/code> do SuperAgent:<\/p>\n<pre><code class=\"language-js\">superagent\n.post(\"https:\/\/jsonplaceholder.typicode.com\/posts\")\n.send({\n  title: \"POST request with SuperAgent\",\n  body: \"POST request\",\n  userId: 10,\n})\n.set(\"X-API-Key\", \"foobar\")\n.set(\"accept\", \"json\")\n.end((err, res) =&gt; {\n  console.log(res.body);\n});<\/code><\/pre>\n<p>No c\u00f3digo acima, a URL foi passada como o par\u00e2metro do m\u00e9todo <code>post()<\/code>. Os dados a serem enviados foram passados para o m\u00e9todo <code>send()<\/code>. Usando o m\u00e9todo <code>end()<\/code>, obtivemos o resultado da resposta do servidor.<\/p>\n<h4>Como enviar uma solicita\u00e7\u00e3o PUT em JavaScript usando o SuperAgent<\/h4>\n<p>Voc\u00ea pode enviar uma solicita\u00e7\u00e3o PUT no SuperAgent usando o m\u00e9todo <code>put()<\/code>. Assim como o exemplo na \u00faltima se\u00e7\u00e3o, os dados a serem atualizados seriam passados como um par\u00e2metro para o m\u00e9todo <code>send()<\/code>.<\/p>\n<p>Aqui est\u00e1 um exemplo:<\/p>\n<pre><code class=\"language-js\">superagent\n.put(\"https:\/\/jsonplaceholder.typicode.com\/posts\/10\")\n.send({\n  title: \"PUT request with SuperAgent\",\n  body: \"PUT request\",\n  userId: 10,\n})\n.set(\"X-API-Key\", \"foobar\")\n.set(\"accept\", \"json\")\n.end((err, res) =&gt; {\n  console.log(res.body);\n});<\/code><\/pre>\n<h4>Como enviar uma solicita\u00e7\u00e3o DELETE em JavaScript usando o SuperAgent<\/h4>\n<p>Para enviar uma solicita\u00e7\u00e3o DELETE, voc\u00ea simplesmente especifica o ID do objeto a ser exclu\u00eddo na URL. Isso ser\u00e1 usado como um par\u00e2metro no m\u00e9todo <code>delete()<\/code>.<\/p>\n<pre><code class=\"language-js\">superagent\n.delete(\"https:\/\/jsonplaceholder.typicode.com\/posts\/10\")\n.end((err, res) =&gt; {\n  console.log(res.body);\n});<\/code><\/pre>\n<h3>7. Como fazer uma solicita\u00e7\u00e3o HTTP em JavaScript usando a Qwest<\/h3>\n<p>Qwest \u00e9 uma biblioteca AJAX para interagir com servidores. Ela est\u00e1 atualmente arquivada no <a href=\"https:\/\/kinsta.com\/pt\/blog\/que-github\/\">GitHub<\/a> \u2014 o criador descontinuou a manuten\u00e7\u00e3o da biblioteca com o surgimento da API <code>fetch<\/code> e do Axios.<\/p>\n<p>A Qwest tamb\u00e9m suporta o uso de promessas.<\/p>\n<p>Nas subse\u00e7\u00f5es seguintes, voc\u00ea ver\u00e1 como enviar solicita\u00e7\u00f5es GET, POST, PUT e DELETE usando a Qwest.<\/p>\n<h4>Como enviar uma solicita\u00e7\u00e3o GET em JavaScript usando a Qwest<\/h4>\n<p>A Qwest tem um m\u00e9todo <code>get()<\/code> que pode ser usado para enviar solicita\u00e7\u00f5es GET. Aqui est\u00e1 como us\u00e1-lo:<\/p>\n<pre><code class=\"language-js\">qwest.get(\"https:\/\/jsonplaceholder.typicode.com\/posts\")\n\n.then((xhr, response) =&gt; console.log(response));<\/code><\/pre>\n<h4>Como enviar uma solicita\u00e7\u00e3o POST em JavaScript usando a Qwest<\/h4>\n<p>Como um segundo par\u00e2metro, os dados a serem enviados para um servidor ser\u00e3o passados para o m\u00e9todo <code>post()<\/code>. O primeiro par\u00e2metro \u00e9 a URL.<\/p>\n<p>Um exemplo:<\/p>\n<pre><code class=\"language-js\">qwest.post(\"https:\/\/jsonplaceholder.typicode.com\/posts\", {\n  title: 'POST request with Qwest',\n  body: 'POST request',\n  userId: 30\n})\n.then(function(xhr, response) {\n  console.log(response)\n})\n.catch(function(e, xhr, response) {\n  console.log(e)\n});<\/code><\/pre>\n<h4>Como enviar uma solicita\u00e7\u00e3o PUT em JavaScript usando a Qwest<\/h4>\n<p>A sintaxe aqui \u00e9 a mesma da se\u00e7\u00e3o anterior. Tudo que voc\u00ea tem de mudar \u00e9 o tipo de solicita\u00e7\u00e3o e ent\u00e3o especificar o ID do objeto a ser atualizado junto com os dados com os quais voc\u00ea deseja atualizar o objeto.<\/p>\n<p>D\u00ea uma olhada neste exemplo:<\/p>\n<pre><code class=\"language-js\">qwest.put(\"https:\/\/jsonplaceholder.typicode.com\/posts\/30\", {\n  title: 'PUT request with Qwest',\n  body: 'PUT request',\n  userId: 30\n})\n.then(function(xhr, response) {\n  console.log(response)\n})\n.catch(function(e, xhr, response) {\n  console.log(e)\n});<\/code><\/pre>\n<p>Note que o ID est\u00e1 sendo especificado na URL e n\u00e3o no objeto que est\u00e1 sendo enviado ao servidor.<\/p>\n<h4>Como enviar uma solicita\u00e7\u00e3o DELETE em JavaScript usando Qwest<\/h4>\n<p>Como sempre, para excluir um objeto de um servidor, voc\u00ea tem de especificar a URL e o ID do objeto a ser exclu\u00eddo. Tanto a URL quanto o ID do objeto a ser exclu\u00eddo ser\u00e3o passados como um par\u00e2metro para o m\u00e9todo <code>delete()<\/code> na Qwest.<\/p>\n<p>Veja o exemplo:<\/p>\n<pre><code class=\"language-js\">qwest.delete(\"https:\/\/jsonplaceholder.typicode.com\/posts\/30\")\n.then(function(xhr, response) {\n  console.log(response)\n})\n.catch(function(e, xhr, response) {\n  console.log(e)\n});<\/code><\/pre>\n<p>Quando a solicita\u00e7\u00e3o for executada com sucesso, um objeto com o ID 30 ser\u00e1 exclu\u00eddo.<\/p>\n<h2>Resumo<\/h2>\n<p>Nossa habilidade de interagir com servidores usando JavaScript tem evolu\u00eddo ao longo dos anos. Com uma comunidade crescente e ativa de <a href=\"https:\/\/kinsta.com\/pt\/blog\/desenvolvedor-frontend\/\">desenvolvedores JavaScript<\/a>, mudan\u00e7as constantes continuam sendo feitas e novas ferramentas s\u00e3o introduzidas para tornar o processo mais simples e f\u00e1cil.<\/p>\n<p>Os m\u00e9todos discutidos neste tutorial n\u00e3o se aplicam apenas a servidores remotos \u2014 eles tamb\u00e9m podem ser usados para interagir com seus pr\u00f3prios servidores ao construir aplicativos full stack para a web. Eles tamb\u00e9m trabalham com in\u00fameras <a href=\"https:\/\/kinsta.com\/pt\/blog\/bibliotecas-javascript\/\">bibliotecas e frameworks JavaScript<\/a>.<\/p>\n\n<div class=\"group w-full text-token-text-primary border-b border-black\/10 dark:border-gray-900\/50 bg-gray-50 dark:bg-[#444654]\">\n<div class=\"flex p-4 gap-4 text-base md:gap-6 md:max-w-2xl lg:max-w-[38rem] xl:max-w-3xl md:py-6 lg:px-0 m-auto\">\n<div class=\"relative flex w-[calc(100%-50px)] flex-col gap-1 md:gap-3 lg:w-[calc(100%-115px)]\">\n<div class=\"flex flex-grow flex-col gap-3\">\n<div class=\"min-h-[20px] flex flex-col items-start gap-3 overflow-x-auto whitespace-pre-wrap break-words\">\n<div class=\"markdown prose w-full break-words dark:prose-invert dark\">\n<p>Neste tutorial, ensinamos como fazer solicita\u00e7\u00f5es HTTP em JavaScript. Fornecemos v\u00e1rios exemplos e explica\u00e7\u00f5es que mostraram como enviar solicita\u00e7\u00f5es GET, POST, PUT\/PATCH e DELETE usando m\u00e9todos JavaScript internos e bibliotecas de terceiros.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"flex justify-between lg:block\">\n<div class=\"text-gray-400 flex self-end lg:self-center justify-center mt-2 gap-2 md:gap-3 lg:gap-1 lg:absolute lg:top-0 lg:translate-x-full lg:right-0 lg:mt-0 lg:pl-2 visible\">\n<p>\u00a0<\/p>\n<div class=\"flex gap-1\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Construir e implantar um site pode ser uma tarefa tediosa, independentemente das habilidades que voc\u00ea possui. Mas a Kinsta torna isso f\u00e1cil e sem esfor\u00e7o com o DevKinsta. Usado por mais de 25.000 desenvolvedores, web designers e freelancers, o DevKinsta oferece um ambiente local para desenvolver temas, plugins e muito mais para o WordPress. <a href=\"https:\/\/kinsta.com\/pt\/devkinsta\/\">Confira!<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A intera\u00e7\u00e3o entre o frontend e o backend dos sites \u00e9 poss\u00edvel devido \u00e0s solicita\u00e7\u00f5es HTTP. Funcionalidades como atualizar um usu\u00e1rio novo\/antigo em um banco de &#8230;<\/p>\n","protected":false},"author":240,"featured_media":54205,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[936,489,523,528,44],"topic":[978],"class_list":["post-54204","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-http-requests","tag-http-status-codes","tag-javascript","tag-web-developement","tag-webdev","topic-tutoriais-javascript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Um Guia para Solicita\u00e7\u00f5es HTTP em JavaScript<\/title>\n<meta name=\"description\" content=\"Neste tutorial, voc\u00ea aprender\u00e1 as diversas maneiras pelas quais pode fazer solicita\u00e7\u00f5es HTTP para servidores remotos e realizar opera\u00e7\u00f5es CRUD em JavaScript.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Um Guia para Solicita\u00e7\u00f5es HTTP em JavaScript\" \/>\n<meta property=\"og:description\" content=\"Neste tutorial, voc\u00ea aprender\u00e1 as diversas maneiras pelas quais pode fazer solicita\u00e7\u00f5es HTTP para servidores remotos e realizar opera\u00e7\u00f5es CRUD em JavaScript.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstapt\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-02T08:06:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-01T20:01:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/javascript-http-request.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ihechikara Abba\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Neste tutorial, voc\u00ea aprender\u00e1 as diversas maneiras pelas quais pode fazer solicita\u00e7\u00f5es HTTP para servidores remotos e realizar opera\u00e7\u00f5es CRUD em JavaScript.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/javascript-http-request.png\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ihechikara Abba\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/\"},\"author\":{\"name\":\"Ihechikara Abba\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/ac373ce22a016949523f7e464fdcae26\"},\"headline\":\"Um Guia para Solicita\u00e7\u00f5es HTTP em JavaScript\",\"datePublished\":\"2023-10-02T08:06:42+00:00\",\"dateModified\":\"2025-10-01T20:01:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/\"},\"wordCount\":3675,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/javascript-http-request.png\",\"keywords\":[\"http requests\",\"HTTP Status Codes\",\"JavaScript\",\"web developement\",\"webdev\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/\",\"name\":\"Um Guia para Solicita\u00e7\u00f5es HTTP em JavaScript\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/javascript-http-request.png\",\"datePublished\":\"2023-10-02T08:06:42+00:00\",\"dateModified\":\"2025-10-01T20:01:24+00:00\",\"description\":\"Neste tutorial, voc\u00ea aprender\u00e1 as diversas maneiras pelas quais pode fazer solicita\u00e7\u00f5es HTTP para servidores remotos e realizar opera\u00e7\u00f5es CRUD em JavaScript.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/javascript-http-request.png\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/javascript-http-request.png\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutoriais de JavaScript\",\"item\":\"https:\/\/kinsta.com\/pt\/topicos\/tutoriais-javascript\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Um Guia para Solicita\u00e7\u00f5es HTTP em JavaScript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/pt\/#website\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstapt\/\",\"https:\/\/x.com\/kinsta_pt\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/ac373ce22a016949523f7e464fdcae26\",\"name\":\"Ihechikara Abba\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/483df106a6ba0c29683578302f74008c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/483df106a6ba0c29683578302f74008c?s=96&d=mm&r=g\",\"caption\":\"Ihechikara Abba\"},\"description\":\"Ihechikara is a software developer and technical writer. He enjoys writing articles on web technologies, programming, and IT-related topics. Connect with Ihechikara on Twitter.\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/author\/ihechivinabba\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Um Guia para Solicita\u00e7\u00f5es HTTP em JavaScript","description":"Neste tutorial, voc\u00ea aprender\u00e1 as diversas maneiras pelas quais pode fazer solicita\u00e7\u00f5es HTTP para servidores remotos e realizar opera\u00e7\u00f5es CRUD em JavaScript.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/","og_locale":"pt_PT","og_type":"article","og_title":"Um Guia para Solicita\u00e7\u00f5es HTTP em JavaScript","og_description":"Neste tutorial, voc\u00ea aprender\u00e1 as diversas maneiras pelas quais pode fazer solicita\u00e7\u00f5es HTTP para servidores remotos e realizar opera\u00e7\u00f5es CRUD em JavaScript.","og_url":"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstapt\/","article_published_time":"2023-10-02T08:06:42+00:00","article_modified_time":"2025-10-01T20:01:24+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/javascript-http-request.png","type":"image\/png"}],"author":"Ihechikara Abba","twitter_card":"summary_large_image","twitter_description":"Neste tutorial, voc\u00ea aprender\u00e1 as diversas maneiras pelas quais pode fazer solicita\u00e7\u00f5es HTTP para servidores remotos e realizar opera\u00e7\u00f5es CRUD em JavaScript.","twitter_image":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/javascript-http-request.png","twitter_creator":"@kinsta_pt","twitter_site":"@kinsta_pt","twitter_misc":{"Escrito por":"Ihechikara Abba","Tempo estimado de leitura":"18 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/"},"author":{"name":"Ihechikara Abba","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/ac373ce22a016949523f7e464fdcae26"},"headline":"Um Guia para Solicita\u00e7\u00f5es HTTP em JavaScript","datePublished":"2023-10-02T08:06:42+00:00","dateModified":"2025-10-01T20:01:24+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/"},"wordCount":3675,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/javascript-http-request.png","keywords":["http requests","HTTP Status Codes","JavaScript","web developement","webdev"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/","url":"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/","name":"Um Guia para Solicita\u00e7\u00f5es HTTP em JavaScript","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/javascript-http-request.png","datePublished":"2023-10-02T08:06:42+00:00","dateModified":"2025-10-01T20:01:24+00:00","description":"Neste tutorial, voc\u00ea aprender\u00e1 as diversas maneiras pelas quais pode fazer solicita\u00e7\u00f5es HTTP para servidores remotos e realizar opera\u00e7\u00f5es CRUD em JavaScript.","breadcrumb":{"@id":"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/#primaryimage","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/javascript-http-request.png","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/javascript-http-request.png","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/pt\/"},{"@type":"ListItem","position":2,"name":"Tutoriais de JavaScript","item":"https:\/\/kinsta.com\/pt\/topicos\/tutoriais-javascript\/"},{"@type":"ListItem","position":3,"name":"Um Guia para Solicita\u00e7\u00f5es HTTP em JavaScript"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/pt\/#website","url":"https:\/\/kinsta.com\/pt\/","name":"Kinsta\u00ae","description":"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura","publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/pt\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstapt\/","https:\/\/x.com\/kinsta_pt","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/ac373ce22a016949523f7e464fdcae26","name":"Ihechikara Abba","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/483df106a6ba0c29683578302f74008c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/483df106a6ba0c29683578302f74008c?s=96&d=mm&r=g","caption":"Ihechikara Abba"},"description":"Ihechikara is a software developer and technical writer. He enjoys writing articles on web technologies, programming, and IT-related topics. Connect with Ihechikara on Twitter.","url":"https:\/\/kinsta.com\/pt\/blog\/author\/ihechivinabba\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/54204","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/users\/240"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/comments?post=54204"}],"version-history":[{"count":15,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/54204\/revisions"}],"predecessor-version":[{"id":64436,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/54204\/revisions\/64436"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54204\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54204\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54204\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54204\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54204\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54204\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54204\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54204\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54204\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54204\/translations\/dk"},{"href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54204\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media\/54205"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media?parent=54204"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/tags?post=54204"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/topic?post=54204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}