{"id":8102,"date":"2020-02-28T16:03:23","date_gmt":"2020-02-29T00:03:23","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=8102"},"modified":"2025-06-13T23:16:55","modified_gmt":"2025-06-14T06:16:55","slug":"fullstack-react-couchbase-1","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/fullstack-react-couchbase-1\/","title":{"rendered":"Fullstack React e GraphQL: Couchbase"},"content":{"rendered":"<p>Primeiro de tr\u00eas artigos focados na cria\u00e7\u00e3o de Fullstack com React e GraphQL com Express e Couchbase Server.<\/p>\n<ul>\n<li>Configura\u00e7\u00e3o de um servidor NoSQL Couchbase (Parte 1)<\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/fullstack-react-express-2\/\">Cria\u00e7\u00e3o de uma API Express-GraphQL (Parte 2)<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/fullstack-react-apollo-3\/\">Criar um cliente Apollo GraphQL em React (Parte 3)<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/httpJunkie\/rage-with-couchbase-final\">C\u00f3digo-fonte final<\/a><\/li>\n<\/ul>\n<h2 id=\"project-overview\">Aplicativo Fullstack React e GraphQL<\/h2>\n<p>Vamos criar um Fullstack <a href=\"https:\/\/reactjs.org\/\">Reagir<\/a> aplicativo usando <a>GraphQL<\/a>. Este \u00e9 um tutorial acess\u00edvel, mas esperamos que voc\u00ea tenha alguma familiaridade com JavaScript, React, conceitos de GraphQL e NoSQL. Tamb\u00e9m usamos o Docker para provisionar nosso servidor Couchbase de n\u00f3 \u00fanico. Vamos nos conectar ao Couchbase por meio do Express-GraphQL, criado com o <a href=\"https:\/\/nodejs.org\/en\/\">Node JS<\/a> e <a href=\"https:\/\/expressjs.com\/en\/api.html\">Expressar JS<\/a> usando <a href=\"https:\/\/github.com\/graphql\/express-graphql\">express-graphql<\/a>. Em seguida, consultaremos a API no React usando o <a href=\"https:\/\/www.apollographql.com\/docs\/react\/\">Apollo GraphQL<\/a> cliente.<\/p>\n<h3 id=\"graphql-high-level-overview\">Uma vis\u00e3o geral de alto n\u00edvel do GraphQL<\/h3>\n<p>Antes de come\u00e7armos a criar esse aplicativo, quero falar sobre nossa escolha de usar um <a href=\"https:\/\/spec.graphql.org\/June2018\/\">API GraphQL<\/a> em vez de um <a href=\"https:\/\/restfulapi.net\/\">API REST<\/a>e, em seguida, vamos para a configura\u00e7\u00e3o do banco de dados.<\/p>\n<p>GraphQL \u00e9 uma linguagem de consulta fortemente tipada para APIs. \u00c9 uma forma declarativa de buscar dados, que est\u00e1 sendo rapidamente adotada pela comunidade JavaScript e tamb\u00e9m por outras comunidades. Permite controle granular sobre a obten\u00e7\u00e3o de dados e economiza tempo ao fazer chamadas adicionais \u00e0 API. Todas as consultas e muta\u00e7\u00f5es ocorrem em um \u00fanico ponto de extremidade, em vez de v\u00e1rios pontos de extremidade como o REST. Isso significa menos c\u00f3digo para escrever gerenciando URLs no React. Al\u00e9m disso, h\u00e1 uma pegada menor na conex\u00e3o. Para obter mais informa\u00e7\u00f5es sobre GraphQL vs REST, sugiro uma palestra de Nate Barbettini intitulada: <a href=\"https:\/\/www.youtube.com\/watch?v=IvsANO0qZEg\">Confronto de APIs: RPC vs REST vs GraphQL<\/a>.<\/p>\n<p>Se voc\u00ea estiver familiarizado com JSON, ver\u00e1 que <a href=\"https:\/\/graphql.org\/learn\/queries\/\">Sintaxe de consulta do GraphQL<\/a> simples de usar e seus dados f\u00e1ceis de explorar <a href=\"https:\/\/www.electronjs.org\/apps\/graphiql\">GraphiQL<\/a>um IDE no navegador que usamos para testar nossas consultas e descobrir o que \u00e9 poss\u00edvel com qualquer API GraphQL.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/travel-sample-graphiql-airlinesUK.jpg\" alt=\"GraphiQL demo, get all UK airlines\" \/><\/p>\n<p>Esse IDE do GraphiQL ser\u00e1 \u00fatil mais tarde, quando precisarmos testar nossos pr\u00f3prios pontos de extremidade do GraphQL. O GraphiQL est\u00e1 dispon\u00edvel para todos os servidores GraphQL. Por exemplo, o GitHub tem uma das APIs p\u00fablicas mais antigas do GraphQL (sendo um dos primeiros a adotar). Ela permite que voc\u00ea explore esse gr\u00e1fico de dados usando a API <a href=\"https:\/\/developer.github.com\/v4\/explorer\/\">Explorador da API v4 do GraphQL do GitHub<\/a>.<\/p>\n<p><strong>Observa\u00e7\u00e3o:<\/strong> O GitHub tinha uma das APIs RESTful p\u00fablicas mais populares conhecidas pela comunidade de desenvolvedores e, em 2016, eles mudaram para um aplicativo GraphQL em vez de REST para sua vers\u00e3o 4 da API do GitHub. Isso reduz muito o esfor\u00e7o que um desenvolvedor tem de fazer para usar a API do GitHub e torna a experi\u00eancia do desenvolvedor melhor. Uma solicita\u00e7\u00e3o \u00e9 simplesmente um texto enviado por meio de um HTTP POST em uma sintaxe que parece um h\u00edbrido entre JSON e fun\u00e7\u00f5es JS. A resposta \u00e9 uma resposta leve (apenas o que eu pedi) da API GraphQL. Esses s\u00e3o apenas alguns dos benef\u00edcios que os desenvolvedores obt\u00eam com a mudan\u00e7a de REST para GraphQL pelo GitHub.<\/p>\n<h3 id=\"the-couchbase-datastore\">O banco de dados do Couchbase<\/h3>\n<p>Para dar in\u00edcio ao nosso projeto, precisamos de dados. Abordaremos este projeto como se tiv\u00e9ssemos um cliente que j\u00e1 tem um banco de dados, especificamente, ele est\u00e1 usando <a href=\"https:\/\/docs.couchbase.com\/server\/6.0\/sdk\/overview.html\">Servidor Couchbase<\/a> como um armazenamento de documentos.<\/p>\n<p>O <a href=\"https:\/\/docs.couchbase.com\/nodejs-sdk\/current\/start-using-sdk.html\">SDK do NodeJS do servidor Couchbase<\/a> fornece as ferramentas necess\u00e1rias para se conectar via Node JS e Express ao nosso servidor Couchbase e seus dados.<\/p>\n<p>Para sua informa\u00e7\u00e3o, h\u00e1 muitos outros SDKs dispon\u00edveis al\u00e9m do <a href=\"https:\/\/docs.couchbase.com\/nodejs-sdk\/current\/start-using-sdk.html\">Node JS<\/a> para o Couchbase Server, incluindo <a href=\"https:\/\/docs.couchbase.com\/c-sdk\/current\/hello-world\/start-using-sdk.html\">C<\/a>, <a href=\"https:\/\/docs.couchbase.com\/dotnet-sdk\/current\/hello-world\/start-using-sdk.html\">.NET<\/a>, <a href=\"https:\/\/docs.couchbase.com\/go-sdk\/current\/hello-world\/start-using-sdk.html\">Ir<\/a>, <a href=\"https:\/\/docs.couchbase.com\/java-sdk\/current\/hello-world\/start-using-sdk.html\">Java<\/a>, <a href=\"https:\/\/docs.couchbase.com\/php-sdk\/current\/hello-world\/start-using-sdk.html\">PHP<\/a>, <a href=\"https:\/\/docs.couchbase.com\/python-sdk\/current\/hello-world\/start-using-sdk.html\">Python<\/a>e <a href=\"https:\/\/docs.couchbase.com\/scala-sdk\/current\/hello-world\/start-using-sdk.html\">Scala<\/a>.<\/p>\n<h3 id=\"put-your-sql-skills-to-work-in-nosql\">Coloque suas habilidades de SQL para trabalhar no NoSQL<\/h3>\n<p>O Couchbase Server aproveita suas habilidades em SQL por meio do <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/n1ql\/\">N1QL (SQL para JSON) Linguagem de consulta de banco de dados<\/a> que permite que voc\u00ea consulte o Couchbase, um reposit\u00f3rio de dados de documentos NoSQL com uma sintaxe quase id\u00eantica \u00e0 do SQL.<\/p>\n<h3 id=\"install-and-run-couchbase-with-docker\">Instalar e executar o Couchbase com o Docker<\/h3>\n<p>Se voc\u00ea optar por fazer download e instalar o Couchbase localmente e n\u00e3o quiser usar o Docker, basta <a href=\"#install-couchbase-locally\">pule para as instru\u00e7\u00f5es de instala\u00e7\u00e3o manual<\/a>. Para obter ajuda com o pr\u00f3prio Docker, visite <a href=\"https:\/\/docs.docker.com\">docs.docker.com<\/a>.<\/p>\n<p>Obter o <code>couchbase<\/code> imagem:<\/p>\n<pre class=\"highlight decode:true\"><code class=\"language-bash\">docker pull couchbase<\/code><\/pre>\n<p>Vamos clonar um reposit\u00f3rio existente para obter o <code>arquivo de encaixe<\/code> e <code>configuration.sh<\/code> que precisamos:<\/p>\n<pre class=\"highlight decode:true\"><code class=\"language-bash\">git clone https:\/\/github.com\/httpJunkie\/couchbase-server &amp;&amp; cd couchbase-server &amp;&amp; chmod +x configure.sh<\/code><\/pre>\n<p>Criar uma nova imagem a partir de <code>Dockerfile<\/code> que usa o <code>couchbase<\/code> Docker como sua base:<\/p>\n<pre class=\"highlight decode:true\"><code class=\"language-bash\">docker build -t couchbase-server .<\/code><\/pre>\n<p>Execute essa nova imagem:<\/p>\n<pre class=\"highlight decode:true\"><code class=\"language-bash\">docker run -d -p 8091-8094:8091-8094 -p 11210:11210 -e CB_ADMIN_USER=Administrador -e CB_ADMIN_PASS=senha --network=\"bridge\" --name cbs1 couchbase-server<\/code><\/pre>\n<p>Se voc\u00ea tiver problemas para executar o \u00faltimo comando, pode ser que n\u00e3o tenha uma rede chamada \"bridge\". Nesse caso, execute <code>docker network ls<\/code> e encontre o nome de seu nome de rede e driver padr\u00e3o e use-o em seu lugar.<\/p>\n<p>Nesse ponto, podemos visitar <a href=\"https:\/\/localhost:8091\">localhost:8091<\/a> e fa\u00e7a login com o <strong><code>Administrador<\/code><\/strong> &amp; <strong><code>senha<\/code><\/strong>.<\/p>\n<h3 id=\"install-couchbase-locally\">Instalando o Couchbase localmente<\/h3>\n<p>Se voc\u00ea instalou com o Docker, poder\u00e1 <a href=\"#explore-our-bucket-in-the-console\">pule para a pr\u00f3xima se\u00e7\u00e3o<\/a>.<\/p>\n<p>O processo de instala\u00e7\u00e3o \u00e9 simples e n\u00f3s o ajudamos a <a href=\"https:\/\/docs.couchbase.com\/server\/4.0\/install\/install-linux.html\">Linux<\/a>, <a href=\"https:\/\/docs.couchbase.com\/server\/4.0\/install\/macos-install.html\">Mac<\/a>e <a href=\"https:\/\/docs.couchbase.com\/server\/4.0\/install\/install-package-windows.html\">Windows<\/a>.<\/p>\n<p>Depois de instalado, voc\u00ea pode acessar o Console da Web do Couchbase Server usando <a href=\"https:\/\/localhost:8091\">localhost:8091<\/a>.<\/p>\n<p>Nessa tela, voc\u00ea pode clicar em \"<a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/manage\/manage-nodes\/create-cluster.html\">Configurar novo cluster<\/a>&#8220;.<\/p>\n<p>O nome do cluster fica a seu crit\u00e9rio e representa todos os seus buckets do Couchbase. O usu\u00e1rio e a senha de administrador \u00e9 uma conta de administrador do servidor para fazer login no painel de todo o servidor, n\u00e3o \u00e9 um usu\u00e1rio e uma senha para se conectar a um bucket espec\u00edfico de dentro do nosso aplicativo Express. Falaremos sobre isso mais tarde.<\/p>\n<p>Configurei meu cluster com os servi\u00e7os padr\u00e3o e as cotas de mem\u00f3ria.<\/p>\n<h3 id=\"explore-our-bucket-in-the-console\">Explore nossa ca\u00e7amba no console<\/h3>\n<p>Vamos acessar o Couchbase Server Dashboard e clicar em \"Servers\" (Servidores) para ver nosso servidor criado inicialmente.<\/p>\n<p>Em seguida, clique em \"Buckets\". Um Couchbase <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/buckets-memory-and-storage\/buckets.html\">Balde<\/a> \u00e9 uma cole\u00e7\u00e3o de documentos. Voc\u00ea pode \"Add Bucket\" para criar sua pr\u00f3pria cole\u00e7\u00e3o de documentos ou adicionar dados de amostra. Se voc\u00ea seguiu as instru\u00e7\u00f5es do arquivo Docker, o <code>amostra de viagem<\/code> O balde j\u00e1 deve estar carregado e vis\u00edvel nessa tela.<\/p>\n<p>O uso desse banco de dados de amostra nos permitir\u00e1 come\u00e7ar a trabalhar com nosso aplicativo Fullstack React e GraphQL, e come\u00e7aremos com o Express para criar nossa API, o que facilitar\u00e1 as coisas para n\u00f3s, pois j\u00e1 temos dados e \u00edndices configurados.<\/p>\n<p>Os \u00edndices s\u00e3o configurados automaticamente nesse <code>amostra de viagem<\/code> como parte do script usado para instalar o bucket. Esses \u00edndices s\u00e3o necess\u00e1rios para usar a linguagem de consulta N1QL (SQL para JSON).<\/p>\n<p>Se voc\u00ea quiser saber mais e criar seu pr\u00f3prio bucket e \u00edndices, <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/create-right-index-get-right-performance\/\">D\u00ea uma olhada neste artigo<\/a>!<\/p>\n<p>Seu Bucket deve ser semelhante ao bucket da imagem abaixo:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/travel-sample-bucket.jpg\" alt=\"couchbase dashboard travel-sample bucket\" \/><\/p>\n<p>Se clicarmos no bot\u00e3o \"Documents\" (Documentos), poderemos ver alguns dos dados em nosso Bucket:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/travel-sample-document.jpg\" alt=\"couchbase dashboard travel-sample document\" \/><\/p>\n<p>Ao clicar em \"Edit Document as JSON\", voc\u00ea ver\u00e1 o JSON do valor dessa chave espec\u00edfica e poder\u00e1 at\u00e9 mesmo editar os dados a partir daqui. Experimente!<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/travel-sample-edit-document.jpg\" alt=\"couchbase dashboard travel-sample edit document\" \/><\/p>\n<p>Antes de prosseguir, queremos clicar na guia \"Security\" (Seguran\u00e7a) e configurar um usu\u00e1rio para se conectar a esse bucket.<\/p>\n<p>Na p\u00e1gina \"Security\" (Seguran\u00e7a), clique em \"Create User\" (Criar usu\u00e1rio). Adicione um nome de usu\u00e1rio e uma senha espec\u00edficos para se conectar ao bucket a partir do nosso aplicativo Express. Usei meu pr\u00f3prio nome e ele corresponder\u00e1 \u00e0s informa\u00e7\u00f5es no c\u00f3digo-fonte do projeto. Portanto, lembre-se de usar seu nome e atualizar o c\u00f3digo conforme necess\u00e1rio.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/travel-sample-user.jpg\" alt=\"couchbase dashboard travel-sample add user\" \/><\/p>\n<p>Certifique-se de marcar a caixa de sele\u00e7\u00e3o \"Application Access\" (Acesso ao aplicativo) para o nosso <code>amostra de viagem<\/code> balde. Isso \u00e9 tudo de que precisamos. Lembre-se de seu nome de usu\u00e1rio e senha, pois precisaremos deles para nos conectarmos.<\/p>\n<h3 id=\"bucket-indexes\">\u00cdndices de balde<\/h3>\n<p>Para esta demonstra\u00e7\u00e3o, nossos \u00edndices foram gerados automaticamente. Se voc\u00ea quiser adicionar \u00edndices, poder\u00e1 adicion\u00e1-los usando a guia \"Query\" (Consulta) e executar o SQL necess\u00e1rio para cri\u00e1-los. Se voc\u00ea estiver familiarizado com SQL, a cria\u00e7\u00e3o de \u00edndices para o Couchbase ser\u00e1 intuitiva!<\/p>\n<p>Se quiser saber mais sobre \u00edndices no Couchbase, d\u00ea uma olhada em <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/index-advisor-service\/\">um artigo recente<\/a> mostrando como usar o <a href=\"https:\/\/index-advisor.couchbase.com\/indexadvisor\/#1\">Servi\u00e7o de consultoria de \u00edndice para o Couchbase<\/a>. Essa \u00e9 uma nova ferramenta fornecida junto com a vers\u00e3o mais recente do Couchbase Server 6.5. Outro ponto de interesse tamb\u00e9m pode ser o nosso <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/services-and-indexes\/indexes\/global-secondary-indexes.html\">\u00cdndices secund\u00e1rios globais<\/a> documenta\u00e7\u00e3o.<\/p>\n<p>Aqui est\u00e3o os \u00edndices para o <code>amostra de viagem<\/code> que instalamos com o Couchbase Server.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/travel-sample-indexes.jpg\" alt=\"couchbase dashboard travel-sample indexes\" \/><\/p>\n<h3 id=\"n1ql\">Uma breve men\u00e7\u00e3o sobre as consultas N1QL<\/h3>\n<p>Outro aspecto a ser mencionado sobre o Couchbase Server \u00e9 a linguagem que usamos para consultar nossos documentos. O Couchbase Server usa <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/n1ql\/\">N1QL<\/a>. N1QL \u00e9 uma sintaxe semelhante \u00e0 do SQL que qualquer pessoa com experi\u00eancia relacional deve ser capaz de entender. Ela \u00e9 especialmente \u00fatil para consultar cole\u00e7\u00f5es de documentos. Abordaremos alguns conceitos b\u00e1sicos em nosso pr\u00f3ximo artigo, quando criarmos nossa API GraphQL.<\/p>\n<p>Voc\u00ea pode encontrar mais informa\u00e7\u00f5es em <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/index.html\">N1QL<\/a> na documenta\u00e7\u00e3o, bem como informa\u00e7\u00f5es sobre o uso do <code>couchbase.get<\/code> para consultar todas as informa\u00e7\u00f5es que podem ser encontradas em nosso <a href=\"https:\/\/docs.couchbase.com\/nodejs-sdk\/current\/core-operations.html#crud-overview\">SDK do NodeJS do servidor Couchbase<\/a> documentos.<\/p>\n<p>Com a configura\u00e7\u00e3o do Couchbase, agora podemos continuar e entrar na parte do JavaScript para criar nosso aplicativo Fullstack React e GraphQL. Passaremos \u00e0 cria\u00e7\u00e3o do nosso aplicativo <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/fullstack-react-express-2\/\">Servidor Express-GraphQL<\/a> em seguida, e depois <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/fullstack-react-apollo-3\/\">criar um cliente React<\/a> no \u00faltimo segmento.<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/fullstack-react-express-2\/\">Cria\u00e7\u00e3o de uma API Express-GraphQL (Parte 2)<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>First of three articles focused on building Fullstack with React and GraphQL with Express and Couchbase Server. Setting up a NoSQL Couchbase Server (Part 1) Building an Express-GraphQL API (Part 2) Create Apollo GraphQL Client in React (Part 3) Final [&hellip;]<\/p>","protected":false},"author":53002,"featured_media":10875,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,1822,1812,2201],"tags":[2210,2454,1950],"ppma_author":[8922],"class_list":["post-8102","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-node-js","category-n1ql-query","category-tools-sdks","tag-graphql","tag-react","tag-rest-api"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Build Fullstack React + GraphQL Application | Couchbase<\/title>\n<meta name=\"description\" content=\"Let\u2019s build a Fullstack React application using GraphQL application. We do expect some familiarity with JavaScript, React, GraphQL concepts, and NoSQL.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/fullstack-react-couchbase-1\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Fullstack React and GraphQL : Couchbase\" \/>\n<meta property=\"og:description\" content=\"Let\u2019s build a Fullstack React application using GraphQL application. We do expect some familiarity with JavaScript, React, GraphQL concepts, and NoSQL.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/fullstack-react-couchbase-1\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-29T00:03:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:16:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/02\/couchbase-server-2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Eric Bishard\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@httpJunkie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Eric Bishard\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/\"},\"author\":{\"name\":\"Eric Bishard\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/67d3a4b597e42370ccd34b715a6b1f4c\"},\"headline\":\"Fullstack React and GraphQL : Couchbase\",\"datePublished\":\"2020-02-29T00:03:23+00:00\",\"dateModified\":\"2025-06-14T06:16:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/\"},\"wordCount\":1404,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/02\/couchbase-server-2.jpg\",\"keywords\":[\"graphql\",\"React\",\"REST API\"],\"articleSection\":[\"Couchbase Server\",\"Node.js\",\"SQL++ \/ N1QL Query\",\"Tools &amp; SDKs\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/\",\"name\":\"Build Fullstack React + GraphQL Application | Couchbase\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/02\/couchbase-server-2.jpg\",\"datePublished\":\"2020-02-29T00:03:23+00:00\",\"dateModified\":\"2025-06-14T06:16:55+00:00\",\"description\":\"Let\u2019s build a Fullstack React application using GraphQL application. We do expect some familiarity with JavaScript, React, GraphQL concepts, and NoSQL.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/02\/couchbase-server-2.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/02\/couchbase-server-2.jpg\",\"width\":1200,\"height\":628,\"caption\":\"RAGE With Couchbase Server Featured Image\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Fullstack React and GraphQL : Couchbase\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/67d3a4b597e42370ccd34b715a6b1f4c\",\"name\":\"Eric Bishard\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/b7d1d2580c41d35a21654fb1abe65d23\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a316a2658772914defd259571b8cad18878eb23c9d0cc3a97dd803deca0c09ca?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a316a2658772914defd259571b8cad18878eb23c9d0cc3a97dd803deca0c09ca?s=96&d=mm&r=g\",\"caption\":\"Eric Bishard\"},\"description\":\"International speaker, blogging and advocating for the JavaScript, React, GraphQL and NoSQL community working as a Senior Developer Advocate for Couchbase.\",\"sameAs\":[\"https:\/\/www.reactstateofmind.com\",\"https:\/\/www.linkedin.com\/in\/eric-b\/\",\"https:\/\/x.com\/httpJunkie\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/eric-bishard\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Build Fullstack React + GraphQL Application | Couchbase","description":"Let\u2019s build a Fullstack React application using GraphQL application. We do expect some familiarity with JavaScript, React, GraphQL concepts, and NoSQL.","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:\/\/www.couchbase.com\/blog\/pt\/fullstack-react-couchbase-1\/","og_locale":"pt_BR","og_type":"article","og_title":"Fullstack React and GraphQL : Couchbase","og_description":"Let\u2019s build a Fullstack React application using GraphQL application. We do expect some familiarity with JavaScript, React, GraphQL concepts, and NoSQL.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/fullstack-react-couchbase-1\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-02-29T00:03:23+00:00","article_modified_time":"2025-06-14T06:16:55+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/02\/couchbase-server-2.jpg","type":"image\/jpeg"}],"author":"Eric Bishard","twitter_card":"summary_large_image","twitter_creator":"@httpJunkie","twitter_misc":{"Written by":"Eric Bishard","Est. reading time":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/"},"author":{"name":"Eric Bishard","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/67d3a4b597e42370ccd34b715a6b1f4c"},"headline":"Fullstack React and GraphQL : Couchbase","datePublished":"2020-02-29T00:03:23+00:00","dateModified":"2025-06-14T06:16:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/"},"wordCount":1404,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/02\/couchbase-server-2.jpg","keywords":["graphql","React","REST API"],"articleSection":["Couchbase Server","Node.js","SQL++ \/ N1QL Query","Tools &amp; SDKs"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/","url":"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/","name":"Build Fullstack React + GraphQL Application | Couchbase","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/02\/couchbase-server-2.jpg","datePublished":"2020-02-29T00:03:23+00:00","dateModified":"2025-06-14T06:16:55+00:00","description":"Let\u2019s build a Fullstack React application using GraphQL application. We do expect some familiarity with JavaScript, React, GraphQL concepts, and NoSQL.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/02\/couchbase-server-2.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/02\/couchbase-server-2.jpg","width":1200,"height":628,"caption":"RAGE With Couchbase Server Featured Image"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/fullstack-react-couchbase-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Fullstack React and GraphQL : Couchbase"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/67d3a4b597e42370ccd34b715a6b1f4c","name":"Eric Bishard","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/b7d1d2580c41d35a21654fb1abe65d23","url":"https:\/\/secure.gravatar.com\/avatar\/a316a2658772914defd259571b8cad18878eb23c9d0cc3a97dd803deca0c09ca?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a316a2658772914defd259571b8cad18878eb23c9d0cc3a97dd803deca0c09ca?s=96&d=mm&r=g","caption":"Eric Bishard"},"description":"Palestrante internacional, blogueiro e defensor da comunidade JavaScript, React, GraphQL e NoSQL, trabalhando como defensor s\u00eanior de desenvolvedores da Couchbase.","sameAs":["https:\/\/www.reactstateofmind.com","https:\/\/www.linkedin.com\/in\/eric-b\/","https:\/\/x.com\/httpJunkie"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/eric-bishard\/"}]}},"authors":[{"term_id":8922,"user_id":53002,"is_guest":0,"slug":"eric-bishard","display_name":"Eric Bishard","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/a316a2658772914defd259571b8cad18878eb23c9d0cc3a97dd803deca0c09ca?s=96&d=mm&r=g","first_name":"Eric","last_name":"Bishard","user_url":"https:\/\/www.reactstateofmind.com","author_category":"","description":"Palestrante internacional, blogueiro e defensor da comunidade JavaScript, React, GraphQL e NoSQL, trabalhando como defensor s\u00eanior de desenvolvedores da Couchbase."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/8102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/53002"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=8102"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/8102\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/10875"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=8102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=8102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=8102"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=8102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}