{"id":697,"date":"2020-02-04T11:10:23","date_gmt":"2020-02-04T14:10:23","guid":{"rendered":"https:\/\/micheladrianomedeiros.com.br\/blog\/?p=697"},"modified":"2020-02-04T11:10:26","modified_gmt":"2020-02-04T14:10:26","slug":"introducao-ao-spring-boot-3","status":"publish","type":"post","link":"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/","title":{"rendered":"Introdu\u00e7\u00e3o ao Spring Boot #3"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#Desenvolvendo_Sua_Primeira_Aplicacao_Spring_Boot\" >Desenvolvendo Sua Primeira\nAplica\u00e7\u00e3o Spring Boot<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#Adicionando_as_Dependencias_Classpath\" >Adicionando as Depend\u00eancias\nClasspath<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#Escrevendo_o_Codigo\" >Escrevendo o C\u00f3digo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#As_Anotacoes_RestController_e_RequestMapping\" >As Anota\u00e7\u00f5es @RestController e\n@RequestMapping<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#A_Anotacao_EnableAutoConfiguration\" >A Anota\u00e7\u00e3o @EnableAutoConfiguration<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#Iniciadores_e_Autoconfiguracao\" >Iniciadores e Autoconfigura\u00e7\u00e3o<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/introducao-ao-spring-boot-3\/#O_Metodo_%E2%80%9Cmain%E2%80%9D\" >O M\u00e9todo \u201cmain\u201d<\/a><\/li><\/ul><\/nav><\/div>\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Desenvolvendo_Sua_Primeira_Aplicacao_Spring_Boot\"><\/span><strong>Desenvolvendo Sua Primeira\nAplica\u00e7\u00e3o Spring Boot<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de come\u00e7armos, abra um terminal\ne vamos verificar a vers\u00e3o do Java e do Maven.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>C:\\Users\\zigui>java -version<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">java version &#8220;1.8.0_241&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Java(TM) SE Runtime Environment (build 1.8.0_241-b07)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07,\nmixed mode)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>C:\\Users\\zigui>mvn -v<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Apache Maven 3.6.1\n(d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T16:00:29-03:00)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Maven home:\nC:\\NovosProgramas\\apache-maven-3.6.1\\bin\\..<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Java version: 13.0.1, vendor: Oracle Corporation,\nruntime: C:\\Program Files\\Java\\jdk-13.0.1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Default locale: pt_BR, platform encoding: Cp1252<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">OS name: &#8220;windows 10&#8221;, version:\n&#8220;10.0&#8221;, arch: &#8220;amd64&#8221;, family: &#8220;windows&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Criando o POM<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos criar um arquivo chamado pom.xml. O pom.xml \u00e9 a receita que \u00e9 utilizada para construir o projeto. Abra um editor de texto e digite o seguinte:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?>\n&lt;project xmlns=\"http:\/\/maven.apache.org\/POM\/4.0.0\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n    xsi:schemaLocation=\"http:\/\/maven.apache.org\/POM\/4.0.0 https:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd\">\n    &lt;modelVersion>4.0.0&lt;\/modelVersion>\n\n    &lt;groupId>com.example&lt;\/groupId>\n    &lt;artifactId>myproject&lt;\/artifactId>\n    &lt;version>0.0.1-SNAPSHOT&lt;\/version>\n\n    &lt;parent>\n        &lt;groupId>org.springframework.boot&lt;\/groupId>\n        &lt;artifactId>spring-boot-starter-parent&lt;\/artifactId>\n        &lt;version>2.2.4.RELEASE&lt;\/version>\n    &lt;\/parent>\n\n    &lt;description\/>\n    &lt;developers>\n        &lt;developer\/>\n    &lt;\/developers>\n    &lt;licenses>\n        &lt;license\/>\n    &lt;\/licenses>\n    &lt;scm>\n        &lt;url\/>\n    &lt;\/scm>\n    &lt;url\/>\n\n    &lt;!-- Additional lines to be added here... -->\n\n&lt;\/project>\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para testar voc\u00ea pode executar\no comando mvn package. Em uma IDE n\u00e3o h\u00e1 necessidade de fazer o comando.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Adicionando_as_Dependencias_Classpath\"><\/span><strong>Adicionando as Depend\u00eancias\nClasspath<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Spring Boot fornece um n\u00famero\nde \u201cIniciadores\u201d que permite que voc\u00ea adicione jars para o seu classpath.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nossas aplica\u00e7\u00f5es para teste\nde fuma\u00e7a utiliza o spring-boot-starter-parent dentro da se\u00e7\u00e3o parent do POM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O spring-boot-starter-parent \u00e9\num iniciador especial que fornece configura\u00e7\u00f5es padr\u00f5es do Maven.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tamb\u00e9m fornece uma se\u00e7\u00e3o dependency-management\nque voc\u00ea pode omitir a tag version.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Outros \u201cIniciadores\u201d fornecem\ndepend\u00eancias que voc\u00ea precisar\u00e1 quando desenvolver um tipo espec\u00edfico de\naplica\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se formos desenvolver uma\naplica\u00e7\u00e3o web, n\u00f3s precisaremos adicionar a depend\u00eancia\nspring-boot-starter-web.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Antes disso execute o comando:\nmvn dependency:tree<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;[INFO]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&lt;\ncom.example:myproject &gt;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[INFO] Building myproject 0.0.1-SNAPSHOT<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;[ jar\n]&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[INFO]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[INFO] &#8212; maven-dependency-plugin:3.1.1:tree\n(default-cli) @ myproject &#8212;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[INFO] com.example:myproject:jar:0.0.1-SNAPSHOT<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[INFO]\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[INFO] BUILD SUCCESS<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[INFO] Total time:&nbsp;\n12.521 s<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[INFO] Finished at: 2020-02-04T09:35:01-03:00<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[INFO]\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O comando mvn dependency:tree\nimprime a \u00e1rvore de depend\u00eancia do seu projeto. Voc\u00ea pode ver as depend\u00eancias que\no spring-boot-starter-parent fornece.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para adicionar as depend\u00eancias necess\u00e1ria, edite o seu pom.xml e adicione a depend\u00eancia spring-boot-starter-web abaixo da se\u00e7\u00e3o parent.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\t&lt;dependencies>\n\t\t&lt;dependency>\n\t\t\t&lt;groupId>org.springframework.boot&lt;\/groupId>\n\t\t\t&lt;artifactId>spring-boot-starter-web&lt;\/artifactId>\n\t\t&lt;\/dependency>\n\t&lt;\/dependencies>\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Execute novamente o mvn\ndependency:tree e ver\u00e1 que ser\u00e1 adicionada mais depend\u00eancias no projeto como o\nTomcat web server e o Spring Boot.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Escrevendo_o_Codigo\"><\/span><strong>Escrevendo o C\u00f3digo<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Para terminar nossa aplica\u00e7\u00e3o,\nn\u00f3s precisamos criar um arquivo java. Por padr\u00e3o, o Maven compila o c\u00f3digo\nfonte da pasta src\/main\/java, ent\u00e3o n\u00f3s precisamos criar essa estrutura e\ndepois criar um arquivo java.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No fim o caminho desse arquivo ficar\u00e1 assim: src\/main\/java\/Example.java. Vamos criar o arquivo Example com o seguinte c\u00f3digo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import org.springframework.boot.*;\nimport org.springframework.boot.autoconfigure.*;\nimport org.springframework.web.bind.annotation.*;\n\n@RestController\n@EnableAutoConfiguration\npublic class Example {\n\n    @RequestMapping(\"\/\")\n    String home() {\n        return \"Hello World!\";\n    }\n\n    public static void main(String&#91;] args) {\n        SpringApplication.run(Example.class, args);\n    }\n\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Apesar de ter pouco c\u00f3digo, h\u00e1\nmuita coisa acontecendo. Iremos ver as partes principais.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"As_Anotacoes_RestController_e_RequestMapping\"><\/span><strong>As Anota\u00e7\u00f5es @RestController e\n@RequestMapping<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">A primeira anota\u00e7\u00e3o da nossa\nclasse Example \u00e9 a @RestController. Isso \u00e9 conhecido como uma anota\u00e7\u00e3o estereotipa\n(<em>stereotype<\/em>&nbsp;annotation).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ela fornece dicas para as\npessoas que est\u00e3o lendo o c\u00f3digo e para o Spring \u00e9 fornecido uma regra\nespec\u00edfica.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nesse caso, nossa classe \u00e9 uma\nweb @Controller, o Spring entende que essa classe ir\u00e1 manipular requisi\u00e7\u00f5es vinda\nda web.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A anota\u00e7\u00e3o @RequestMapping fornece\ninforma\u00e7\u00f5es sobre o \u201croteamento\u201d. No Spring qualquer requisi\u00e7\u00e3o HTTP com o caminho\n\/ \u00e9 mapeado pelo m\u00e9todo home.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A anota\u00e7\u00e3o @RestController diz\nao Spring para renderizar o resultado e retornar para o requisitor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As anota\u00e7\u00f5es @RestController e\n@RequestMapping s\u00e3o anota\u00e7\u00f5es do Spring MVC e n\u00e3o do Spring Boot.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"A_Anotacao_EnableAutoConfiguration\"><\/span><strong>A Anota\u00e7\u00e3o @EnableAutoConfiguration<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">O segundo n\u00edvel de anota\u00e7\u00e3o \u00e9\no @EnableAutoConfiguration. Essa anota\u00e7\u00e3o diz ao Spring Boot \u201cse virar\u201d com a\nconfigura\u00e7\u00e3o do Spring, baseados nas depend\u00eancias que voc\u00ea adicionou.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O spring-boot-starter-web\nadiciona o Tomcat e o Spring MVC, a autoconfigura\u00e7\u00e3o assume que voc\u00ea \u00e9 um\ndesenvolvedor web e configura o Spring de acordo com esse cen\u00e1rio.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Iniciadores_e_Autoconfiguracao\"><\/span><strong>Iniciadores e Autoconfigura\u00e7\u00e3o<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Autoconfigura\u00e7\u00e3o \u00e9 projetado\npara trabalhar bem com os \u201cIniciadores\u201d, mas os dois conceitos n\u00e3o est\u00e3o ligados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voc\u00ea \u00e9 livre para escolher\ndepend\u00eancias externas dos iniciadores. Ainda assim o Spring Boot far\u00e1 a melhor\nconfigura\u00e7\u00e3o para a sua aplica\u00e7\u00e3o.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"O_Metodo_%E2%80%9Cmain%E2%80%9D\"><\/span><strong>O M\u00e9todo \u201cmain\u201d<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">A parte final da nossa\naplica\u00e7\u00e3o \u00e9 o m\u00e9todo main. Esse \u00e9 apenas o m\u00e9todo padr\u00e3o do Java para inicializar\numa aplica\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nosso m\u00e9todo main \u00e9 controlado\npela classe SpringApplication do Spring Boot que executa o run.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SpringApplication sobe a nossa\naplica\u00e7\u00e3o, iniciando o Spring, o qual inicia a autoconfigura\u00e7\u00e3o do Tomcat web\nserver.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00f3s precisamos passar\nExample.class como argumento para o m\u00e9todo run para dizer ao SpringApplication que\n\u00e9 o primeiro componente Spring.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O args array \u00e9 tamb\u00e9m passado para expor quaisquer argumentos da linha de comando.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fonte:  <a href=\"https:\/\/docs.spring.io\/spring-boot\/docs\/2.2.4.RELEASE\/reference\/html\/getting-started.html#getting-started-first-application\">https:\/\/docs.spring.io\/spring-boot\/docs\/2.2.4.RELEASE\/reference\/html\/getting-started.html#getting-started-first-application<\/a> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Desenvolvendo Sua Primeira Aplica\u00e7\u00e3o Spring Boot Antes de come\u00e7armos, abra um terminal e vamos verificar a vers\u00e3o do Java e do Maven. C:\\Users\\zigui>java -version java version &#8220;1.8.0_241&#8221; Java(TM) SE Runtime Environment (build 1.8.0_241-b07) Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode) C:\\Users\\zigui>mvn -v Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T16:00:29-03:00) Maven home: C:\\NovosProgramas\\apache-maven-3.6.1\\bin\\.. Java version: 13.0.1, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":60,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"class_list":["post-697","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-springboot"],"_links":{"self":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/697","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/comments?post=697"}],"version-history":[{"count":1,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/697\/revisions"}],"predecessor-version":[{"id":698,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/697\/revisions\/698"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media\/60"}],"wp:attachment":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media?parent=697"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/categories?post=697"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/tags?post=697"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}