{"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_84 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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Isso deve retornar todos os documentos do MongoDB na cole\u00e7\u00e3o <code>Person<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><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 class=\"wp-block-paragraph\"><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 class=\"wp-block-paragraph\"><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"],"_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}]}}