{"id":1157,"date":"2024-10-08T19:02:41","date_gmt":"2024-10-08T22:02:41","guid":{"rendered":"https:\/\/micheladrianomedeiros.com.br\/blog\/?p=1157"},"modified":"2024-10-08T19:33:01","modified_gmt":"2024-10-08T22:33:01","slug":"mongodb-quarkus-e-graalvm","status":"publish","type":"post","link":"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/","title":{"rendered":"Quarkus: CRUD com MongoDB e GraalVM"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"634\" height=\"404\" src=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2024\/10\/0_q_zHoIsOHD6MSEJJ1.jpg\" alt=\"Quarkus\" class=\"wp-image-1158\" srcset=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2024\/10\/0_q_zHoIsOHD6MSEJJ1.jpg 634w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2024\/10\/0_q_zHoIsOHD6MSEJJ1-300x191.jpg 300w\" sizes=\"auto, (max-width: 634px) 100vw, 634px\" \/><\/figure>\n<\/div>\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 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\">Conte\u00fado<\/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-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#O_que_e_o_Quarkus\" >O que \u00e9 o Quarkus?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#Como_configurar_o_Quarkus_com_o_MongoDB\" >Como configurar o Quarkus com o MongoDB<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#Passo_1_Criar_um_novo_projeto_Quarkus\" >Passo 1: Criar um novo projeto Quarkus<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#Passo_2_Adicionar_a_dependencia_do_MongoDB\" >Passo 2: Adicionar a depend\u00eancia do MongoDB<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#Passo_3_Configurar_a_conexao_com_o_MongoDB\" >Passo 3: Configurar a conex\u00e3o com o MongoDB<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#Passo_4_Criar_uma_entidade_Panache\" >Passo 4: Criar uma entidade Panache<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#Passo_5_Criar_um_recurso_REST_para_manipular_os_dados\" >Passo 5: Criar um recurso REST para manipular os dados<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#Passo_6_Executar_a_aplicacao\" >Passo 6: Executar a aplica\u00e7\u00e3o<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#Passo_7_Testar_a_aplicacao\" >Passo 7: Testar a aplica\u00e7\u00e3o<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#Conclusao\" >Conclus\u00e3o<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#Links\" >Links<\/a><\/li><\/ul><\/nav><\/div>\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"O_que_e_o_Quarkus\"><\/span>O que \u00e9 o Quarkus?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Quarkus \u00e9 um <em>framework<\/em> open-source para construir aplica\u00e7\u00f5es Java nativas para a nuvem, com foco em otimiza\u00e7\u00e3o de desempenho e redu\u00e7\u00e3o no consumo de mem\u00f3ria. Ele foi criado para rodar de forma eficiente em ambientes de containers e servidores em nuvem, como Kubernetes e OpenShift. O Quarkus combina v\u00e1rias bibliotecas e tecnologias populares da stack Java, como Hibernate, RESTEasy e CDI, oferecendo suporte a aplica\u00e7\u00f5es Java tradicionais (JVM) e aplica\u00e7\u00f5es nativas (via GraalVM).<\/p>\n\n\n\n<p>Algumas das principais caracter\u00edsticas do Quarkus incluem:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Baixa lat\u00eancia e alto desempenho<\/strong>: Ele reduz significativamente o tempo de inicializa\u00e7\u00e3o e o uso de mem\u00f3ria, especialmente em compara\u00e7\u00e3o com frameworks Java tradicionais, como Spring ou Java EE.<\/li>\n\n\n\n<li><strong>Desenvolvimento otimizado<\/strong>: O Quarkus oferece um modo de desenvolvimento em que as mudan\u00e7as no c\u00f3digo s\u00e3o automaticamente refletidas na aplica\u00e7\u00e3o sem precisar reiniciar o servidor (hot-reload).<\/li>\n\n\n\n<li><strong>Suporte para Kubernetes e nuvem<\/strong>: Ele foi projetado para ser integrado nativamente com o Kubernetes, oferecendo uma experi\u00eancia simplificada para desenvolvimento e execu\u00e7\u00e3o de microsservi\u00e7os em ambientes de nuvem.<\/li>\n\n\n\n<li><strong>Compatibilidade com GraalVM<\/strong>: GraalVM permite a compila\u00e7\u00e3o de aplica\u00e7\u00f5es Java em bin\u00e1rios nativos, o que significa tempos de inicializa\u00e7\u00e3o mais r\u00e1pidos e menor consumo de recursos.<\/li>\n\n\n\n<li><strong>Stack full Java<\/strong>: Embora seja otimizado para microsservi\u00e7os e arquitetura nativa da nuvem, ele ainda oferece suporte total a muitas das ferramentas e bibliotecas tradicionais da JVM, permitindo a ado\u00e7\u00e3o gradual.<\/li>\n<\/ol>\n\n\n\n<p>Em resumo, o Quarkus \u00e9 uma solu\u00e7\u00e3o moderna para quem deseja construir microsservi\u00e7os eficientes, com foco em escalabilidade e velocidade em ambientes baseados em nuvem.<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video_embed clearfix\"><div class=\"video_embed clearfix\"><iframe loading=\"lazy\" title=\"Iniciando no mundo das extens\u014des  Quarkus - Matheus Cruz\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/AUywWR689Rs?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div><\/div>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Como_configurar_o_Quarkus_com_o_MongoDB\"><\/span>Como configurar o Quarkus com o MongoDB<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Para configurar o <strong>Quarkus<\/strong> com o <strong>MongoDB<\/strong>, voc\u00ea precisar\u00e1 seguir algumas etapas b\u00e1sicas para integrar o banco de dados no seu projeto. O Quarkus oferece extens\u00f5es que facilitam essa integra\u00e7\u00e3o, como a extens\u00e3o MongoDB Panache, que simplifica as opera\u00e7\u00f5es CRUD. Aqui est\u00e1 um guia passo a passo para configurar o Quarkus com MongoDB:<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video_embed clearfix\"><div class=\"video_embed clearfix\"><iframe loading=\"lazy\" title=\"#3 - Quarkus e MongoDB\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/fOGPUl3g5g0?list=PLxuFqIk29JL1OZFZuRjqfmf2RVPq2K3Tq\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div><\/div>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Passo_1_Criar_um_novo_projeto_Quarkus\"><\/span>Passo 1: Criar um novo projeto Quarkus<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Voc\u00ea pode criar um projeto Quarkus com o <strong>Maven<\/strong> ou <strong>Gradle<\/strong>. Aqui vamos usar o Maven como exemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mvn io.quarkus:quarkus-maven-plugin:create -DprojectGroupId=com.example -DprojectArtifactId=quarkus-mongodb-demo -DclassName=\"com.example.demo.MongoResource\" -Dpath=\"\/mongo\"<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video_embed clearfix\"><div class=\"video_embed clearfix\"><iframe loading=\"lazy\" title=\"CRIANDO UM PROJETO EM QUARKUS COM ENTIDADES JPA VIA HIBERNATE ORM COM PANACHE\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/eptY9yBmLHo?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div><\/div>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Passo_2_Adicionar_a_dependencia_do_MongoDB\"><\/span>Passo 2: Adicionar a depend\u00eancia do MongoDB<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Depois de criar o projeto, abra o arquivo <code>pom.xml<\/code> e adicione as depend\u00eancias do <strong>MongoDB<\/strong> e <strong>MongoDB Panache<\/strong>:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:xhtml decode:true \" >&lt;dependency&gt;\n    &lt;groupId&gt;io.quarkus&lt;\/groupId&gt;\n    &lt;artifactId&gt;quarkus-mongodb-panache&lt;\/artifactId&gt;\n&lt;\/dependency&gt;\n&lt;dependency&gt;\n    &lt;groupId&gt;io.quarkus&lt;\/groupId&gt;\n    &lt;artifactId&gt;quarkus-mongodb-client&lt;\/artifactId&gt;\n&lt;\/dependency&gt;<\/pre><\/div>\n\n\n\n<p>Ou, voc\u00ea pode adicionar essas extens\u00f5es automaticamente usando o seguinte comando no terminal:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mvn quarkus:add-extension -Dextensions=\"mongodb-panache\"<\/code><\/pre>\n\n\n\n<p>Isso adicionar\u00e1 a integra\u00e7\u00e3o com MongoDB e o Panache para simplificar as opera\u00e7\u00f5es.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Passo_3_Configurar_a_conexao_com_o_MongoDB\"><\/span>Passo 3: Configurar a conex\u00e3o com o MongoDB<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Baixe o MongoDB para o seu computador <a href=\"https:\/\/www.mongodb.com\/try\/download\/community\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.mongodb.com\/try\/download\/community<\/a> e depois abaixe o <a href=\"https:\/\/www.mongodb.com\/products\/tools\/compass\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.mongodb.com\/products\/tools\/compass<\/a> para manipular os dados que estar\u00e3o no seu pc.<\/p>\n\n\n\n<p>Agora, configure as propriedades de conex\u00e3o com o MongoDB no arquivo <code>application.properties<\/code> (localizado na pasta <code>src\/main\/resources<\/code>). Voc\u00ea precisar\u00e1 configurar o <strong>URI<\/strong> de conex\u00e3o ao MongoDB:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>quarkus.mongodb.connection-string = mongodb:\/\/localhost:27017\nquarkus.mongodb.database = quarkusdb\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video_embed clearfix\"><div class=\"video_embed clearfix\"><iframe loading=\"lazy\" title=\"MongoDB - Construindo meu primeiro cluster e banco de dados no MongoDB Atlas\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/qW_NxiWKQak?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div><\/div>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Passo_4_Criar_uma_entidade_Panache\"><\/span>Passo 4: Criar uma entidade Panache<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>O Quarkus Panache simplifica o mapeamento entre documentos MongoDB e classes Java. Crie uma classe de entidade que represente um documento no MongoDB. Por exemplo, um documento de <code>Person<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:java decode:true \">package com.example.demo;\n\nimport io.quarkus.mongodb.panache.PanacheMongoEntity;\nimport org.bson.types.ObjectId;\n\npublic class Person extends PanacheMongoEntity {\n    public String name;\n    public int age;\n}\n<\/pre><\/div>\n\n\n\n<p>Essa classe herda de <code>PanacheMongoEntity<\/code>, que simplifica as opera\u00e7\u00f5es CRUD com MongoDB. O campo <code>ObjectId<\/code> ser\u00e1 gerado automaticamente como o ID do documento.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Passo_5_Criar_um_recurso_REST_para_manipular_os_dados\"><\/span>Passo 5: Criar um recurso REST para manipular os dados<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Agora, crie um recurso REST que permita interagir com o banco de dados. No arquivo <code>MongoResource.java<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:java decode:true \">package com.example.demo;\n\nimport javax.ws.rs.*;\nimport javax.ws.rs.core.MediaType;\nimport javax.ws.rs.core.Response;\nimport java.util.List;\n\n@Path(\"\/mongo\")\n@Produces(MediaType.APPLICATION_JSON)\n@Consumes(MediaType.APPLICATION_JSON)\npublic class MongoResource {\n\n    @GET\n    public List&lt;Person&gt; listAll() {\n        return Person.listAll();\n    }\n\n    @POST\n    public Response addPerson(Person person) {\n        person.persist();\n        return Response.ok(person).status(201).build();\n    }\n\n    @GET\n    @Path(\"\/{id}\")\n    public Person getPerson(@PathParam(\"id\") String id) {\n        return Person.findById(new ObjectId(id));\n    }\n\n    @DELETE\n    @Path(\"\/{id}\")\n    public Response deletePerson(@PathParam(\"id\") String id) {\n        Person person = Person.findById(new ObjectId(id));\n        if (person != null) {\n            person.delete();\n            return Response.noContent().build();\n        }\n        return Response.status(404).build();\n    }\n}\n<\/pre><\/div>\n\n\n\n<p>Esse recurso REST b\u00e1sico permite criar, listar, buscar e deletar <code>Person<\/code> no MongoDB. Os dados s\u00e3o manipulados diretamente com m\u00e9todos como <code>listAll()<\/code>, <code>persist()<\/code> e <code>findById()<\/code> providos pela API do Panache.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Passo_6_Executar_a_aplicacao\"><\/span>Passo 6: Executar a aplica\u00e7\u00e3o<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Execute esse comando para adicionar a depend\u00eancia necess\u00e1ria.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mvn quarkus:add-extension -Dextensions=\"io.quarkus:quarkus-rest-jackson\"<\/code><\/pre>\n\n\n\n<p>Com tudo configurado, voc\u00ea pode executar o Quarkus em modo de desenvolvimento usando o seguinte comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mvn quarkus:dev<\/code><\/pre>\n\n\n\n<p>O Quarkus inicia a aplica\u00e7\u00e3o no modo dev com recarregamento autom\u00e1tico. Voc\u00ea pode acessar o recurso REST no endere\u00e7o <code>http:\/\/localhost:8080\/mongo<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Passo_7_Testar_a_aplicacao\"><\/span>Passo 7: Testar a aplica\u00e7\u00e3o<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Agora, voc\u00ea pode testar a API com ferramentas como <strong>Postman<\/strong> ou <strong>curl<\/strong>. Por exemplo, para adicionar uma nova pessoa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -X POST \"http:\/\/localhost:8080\/mongo\" \\\n    -H \"Content-Type: application\/json\" \\\n    -d '{\"name\":\"John\", \"age\":30}'\n<\/code><\/pre>\n\n\n\n<p>Para listar todas as pessoas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -X GET \"http:\/\/localhost:8080\/mongo\"<\/code><\/pre>\n\n\n\n<p>Isso deve retornar todos os documentos do MongoDB na cole\u00e7\u00e3o <code>Person<\/code>.<\/p>\n\n\n\n<p>Se acessar essa url tamb\u00e9m consegue ver os resultados: http:\/\/localhost:8080\/mongo<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusao\"><\/span>Conclus\u00e3o<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Com essas etapas, voc\u00ea configurou o Quarkus com MongoDB, usando a extens\u00e3o <strong>MongoDB Panache<\/strong> para simplificar as opera\u00e7\u00f5es de banco de dados. O Quarkus oferece uma maneira eficiente de criar aplica\u00e7\u00f5es modernas, otimizadas para a nuvem, com integra\u00e7\u00e3o nativa com MongoDB.<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video_embed clearfix\"><div class=\"video_embed clearfix\"><iframe loading=\"lazy\" title=\"Pr\u00e1tica de Implementa\u00e7\u00e3o de API REST com Quarkus (Mysql, JPA, JAVA, Quarkus, Hibernate ORM)\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/4NfDqUiHwug?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div><\/div>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Links\"><\/span>Links<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><a href=\"https:\/\/www.mongodb.com\/pt-br\/developer\/languages\/java\/quarkus-rest-crud\/\" target=\"_blank\" rel=\"noreferrer noopener\">Como criar um aplicativo CRUD com MongoDB, Quarkus e GraalVM<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/go.hotmart.com\/Q95576182F\" target=\"_blank\" rel=\"noreferrer noopener\">Jornada Java: Do Zero ao Spring Boot com Aplica\u00e7\u00f5es Pr\u00e1ticas<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/collections-framework-do-java\/\">Collections Framework do Ja<\/a><a href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/collections-framework-do-java\/\" target=\"_blank\" rel=\"noreferrer noopener\">va<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O que \u00e9 o Quarkus? Quarkus \u00e9 um framework open-source para construir aplica\u00e7\u00f5es Java nativas para a nuvem, com foco em otimiza\u00e7\u00e3o de desempenho e redu\u00e7\u00e3o no consumo de mem\u00f3ria. Ele foi criado para rodar de forma eficiente em ambientes de containers e servidores em nuvem, como Kubernetes e OpenShift. O Quarkus combina v\u00e1rias bibliotecas [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1158,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[57,195],"tags":[206,198,203,211,213,205,196,201,200,5,207,209,210,208,212,214,199,204,197,202,154],"class_list":["post-1157","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-framework","category-quarkus","tag-api-rest","tag-banco-de-dados-nosql","tag-cloud-computing","tag-cloud-native","tag-containers","tag-crud","tag-desenvolvimento-java","tag-graalvm","tag-integracao-mongodb","tag-java","tag-kubernetes","tag-microsservicos","tag-mongodb","tag-openshift","tag-panache","tag-projeto-quarkus","tag-quarkus","tag-quarkus-mongodb","tag-quarkus-mongodb-panache","tag-quarkus-panache","tag-rest"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.5 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Quarkus: CRUD com MongoDB e GraalVM - Viciados em Aprender<\/title>\n<meta name=\"description\" content=\"Quarkus \u00e9 um framework open-source para construir aplica\u00e7\u00f5es Java nativas para a nuvem, com foco em otimiza\u00e7\u00e3o de desempenho e redu\u00e7\u00e3o\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Quarkus: CRUD com MongoDB e GraalVM\" \/>\n<meta property=\"og:description\" content=\"Quarkus \u00e9 um framework open-source para construir aplica\u00e7\u00f5es Java nativas para a nuvem, com foco em otimiza\u00e7\u00e3o de desempenho e redu\u00e7\u00e3o\" \/>\n<meta property=\"og:url\" content=\"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/\" \/>\n<meta property=\"og:site_name\" content=\"Viciados em Aprender\" \/>\n<meta property=\"article:published_time\" content=\"2024-10-08T22:02:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-08T22:33:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2024\/10\/0_q_zHoIsOHD6MSEJJ1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"634\" \/>\n\t<meta property=\"og:image:height\" content=\"404\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"blackzig\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"blackzig\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/mongodb-quarkus-e-graalvm\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/mongodb-quarkus-e-graalvm\\\/\"},\"author\":{\"name\":\"blackzig\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\"},\"headline\":\"Quarkus: CRUD com MongoDB e GraalVM\",\"datePublished\":\"2024-10-08T22:02:41+00:00\",\"dateModified\":\"2024-10-08T22:33:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/mongodb-quarkus-e-graalvm\\\/\"},\"wordCount\":832,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\"},\"image\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/mongodb-quarkus-e-graalvm\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/0_q_zHoIsOHD6MSEJJ1.jpg\",\"keywords\":[\"API REST\",\"banco de dados NoSQL\",\"cloud computing\",\"cloud-native\",\"containers\",\"CRUD\",\"desenvolvimento Java\",\"GraalVM\",\"integra\u00e7\u00e3o MongoDB\",\"java\",\"Kubernetes\",\"microsservi\u00e7os\",\"MongoDB\",\"OpenShift\",\"Panache\",\"projeto Quarkus\",\"Quarkus\",\"Quarkus MongoDB\",\"Quarkus MongoDB Panache\",\"Quarkus Panache\",\"REST\"],\"articleSection\":[\"Framework\",\"quarkus\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/mongodb-quarkus-e-graalvm\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/mongodb-quarkus-e-graalvm\\\/\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/mongodb-quarkus-e-graalvm\\\/\",\"name\":\"Quarkus: CRUD com MongoDB e GraalVM - Viciados em Aprender\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/mongodb-quarkus-e-graalvm\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/mongodb-quarkus-e-graalvm\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/0_q_zHoIsOHD6MSEJJ1.jpg\",\"datePublished\":\"2024-10-08T22:02:41+00:00\",\"dateModified\":\"2024-10-08T22:33:01+00:00\",\"description\":\"Quarkus \u00e9 um framework open-source para construir aplica\u00e7\u00f5es Java nativas para a nuvem, com foco em otimiza\u00e7\u00e3o de desempenho e redu\u00e7\u00e3o\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/mongodb-quarkus-e-graalvm\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/mongodb-quarkus-e-graalvm\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/mongodb-quarkus-e-graalvm\\\/#primaryimage\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/0_q_zHoIsOHD6MSEJJ1.jpg\",\"contentUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/0_q_zHoIsOHD6MSEJJ1.jpg\",\"width\":634,\"height\":404,\"caption\":\"quarkus\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/mongodb-quarkus-e-graalvm\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Quarkus: CRUD com MongoDB e GraalVM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/\",\"name\":\"Viciados em Aprender\",\"description\":\"Queremos aprender tudo o que for poss\u00edvel nesta vida.\",\"publisher\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\",\"name\":\"blackzig\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\",\"contentUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\",\"width\":1920,\"height\":1080,\"caption\":\"blackzig\"},\"logo\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\"},\"sameAs\":[\"http:\\\/\\\/www.micheladrianomedeiros.com.br\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Quarkus: CRUD com MongoDB e GraalVM - Viciados em Aprender","description":"Quarkus \u00e9 um framework open-source para construir aplica\u00e7\u00f5es Java nativas para a nuvem, com foco em otimiza\u00e7\u00e3o de desempenho e redu\u00e7\u00e3o","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:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/","og_locale":"pt_PT","og_type":"article","og_title":"Quarkus: CRUD com MongoDB e GraalVM","og_description":"Quarkus \u00e9 um framework open-source para construir aplica\u00e7\u00f5es Java nativas para a nuvem, com foco em otimiza\u00e7\u00e3o de desempenho e redu\u00e7\u00e3o","og_url":"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/","og_site_name":"Viciados em Aprender","article_published_time":"2024-10-08T22:02:41+00:00","article_modified_time":"2024-10-08T22:33:01+00:00","og_image":[{"width":634,"height":404,"url":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2024\/10\/0_q_zHoIsOHD6MSEJJ1.jpg","type":"image\/jpeg"}],"author":"blackzig","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"blackzig","Tempo estimado de leitura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#article","isPartOf":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/"},"author":{"name":"blackzig","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e"},"headline":"Quarkus: CRUD com MongoDB e GraalVM","datePublished":"2024-10-08T22:02:41+00:00","dateModified":"2024-10-08T22:33:01+00:00","mainEntityOfPage":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/"},"wordCount":832,"commentCount":0,"publisher":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e"},"image":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#primaryimage"},"thumbnailUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2024\/10\/0_q_zHoIsOHD6MSEJJ1.jpg","keywords":["API REST","banco de dados NoSQL","cloud computing","cloud-native","containers","CRUD","desenvolvimento Java","GraalVM","integra\u00e7\u00e3o MongoDB","java","Kubernetes","microsservi\u00e7os","MongoDB","OpenShift","Panache","projeto Quarkus","Quarkus","Quarkus MongoDB","Quarkus MongoDB Panache","Quarkus Panache","REST"],"articleSection":["Framework","quarkus"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/","name":"Quarkus: CRUD com MongoDB e GraalVM - Viciados em Aprender","isPartOf":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#primaryimage"},"image":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#primaryimage"},"thumbnailUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2024\/10\/0_q_zHoIsOHD6MSEJJ1.jpg","datePublished":"2024-10-08T22:02:41+00:00","dateModified":"2024-10-08T22:33:01+00:00","description":"Quarkus \u00e9 um framework open-source para construir aplica\u00e7\u00f5es Java nativas para a nuvem, com foco em otimiza\u00e7\u00e3o de desempenho e redu\u00e7\u00e3o","breadcrumb":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#primaryimage","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2024\/10\/0_q_zHoIsOHD6MSEJJ1.jpg","contentUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2024\/10\/0_q_zHoIsOHD6MSEJJ1.jpg","width":634,"height":404,"caption":"quarkus"},{"@type":"BreadcrumbList","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/mongodb-quarkus-e-graalvm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/micheladrianomedeiros.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Quarkus: CRUD com MongoDB e GraalVM"}]},{"@type":"WebSite","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#website","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/","name":"Viciados em Aprender","description":"Queremos aprender tudo o que for poss\u00edvel nesta vida.","publisher":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/micheladrianomedeiros.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":["Person","Organization"],"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e","name":"blackzig","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg","contentUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg","width":1920,"height":1080,"caption":"blackzig"},"logo":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg"},"sameAs":["http:\/\/www.micheladrianomedeiros.com.br\/"]}]}},"_links":{"self":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/1157","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=1157"}],"version-history":[{"count":26,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/1157\/revisions"}],"predecessor-version":[{"id":1186,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/1157\/revisions\/1186"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media\/1158"}],"wp:attachment":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media?parent=1157"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/categories?post=1157"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/tags?post=1157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}