Article image
Olival Neto
Olival Neto02/04/2023 17:03
Compartilhe

Criação e Consumo de API - A jornada Full Stack com Java, MySQL, Spring Boot e JavaScript, Html, Css com Reactjs - Do Back ao Front-end

  • #Spring Framework
  • #JavaScript
  • #Java

Fala, Dev. Hoje, compartilho um pouco da minha jornada de criação e consumo de API, usando Spring Boot e React.js. Depois de muito estudo, acessando os conteúdos certos, o cenário full stack que desejo está tomando forma.

Neste exemplo, uso o Spring Boot com JPA, MySQL, Spring Web, Spring Boot Dev Tools, para criar uma api, o mais simples possível, assim tentei rsrs.

Usei o gerenciador de pacotes Maven e a versão 2.7.10 do Spring, que são as que tenho mais afinidade.

Durante a criação do projeto fui desafiado a pesquisar quais os requisitos para se criar uma api, depois de já ter assistido algumas aulas de reactjs com javascript, para aprender a consumí-la. Criar uma API simples, que consome um banco de dados MySQL, que possui apenas dois campos, nome e e-mail, com Java e Spring Boot possui muitos detalhes.

Como gosto de criação de páginas de vendas, páginas de captura, nome e e-mail, geralmente, são as informações mais úteis. 

Para este projeto, criei 4 pacotes (principal, controller, model, repository), onde fui desafiado a identificar a finalidade de cada um, buscando visualizar o padrão de desenvolvimento model-view-controller com o repository.

O controlador fica responsável pelas requisições http, das rotas, enquanto o repository abstrai as queries do banco de dados MySQL acessadas via JPA, o model possui a lógica do negócio, que neste exemplo está limitada a mapear uma classe em java, na entidade do banco de dados, que terá a tabela, com as colunas nome e e-mail, para armazenar os dados.

Antes de chegar neste resultado, queimei algumas horas vasculhando direcionamentos, conteúdos, contextos, até entender que não precisa ser tão complicado assim. O chatgpt me economizou algumas horas nestas pesquisas.

Após isso, usei a experiência que adquiri com Reactjs e Spring Boot nos últimos meses, com o bootcamp OrangeTech+ aqui da Dio, para criar um componente simples, que consome a API. O bom do Spring Boot é que ele consegue restringir de qual local virá o acesso, ou seja, qual a url pode requisitar os dados da API. Isso faz parte da politica de segurança de acesso. Se você quer desejar aberto a qualquer acesso ou restrito, isso precisa ser configurado. Por padrão, o acesso externo é bloqueado.

Até descobri isso, passei mais alguns minutos pesquisando para descobrir o motivo da minha aplicação React não conseguir se comunicar com a API Spring Boot. Para consumo da API, com Reactjs, utilizei programação assíncrona com async, await, fetch e then.

A curva de aprendizado até aqui foi longa e ainda continua. Agora, é documentar tudo, refazer ainda mais simples, e testar as novas possibilidades, identificar os conceitos e práticas que ainda não estão claros, e assim, inserir dados, atualizar, apagar, estilizar o componente, criando uma landing page com cara profissional, que consome e armazena dados, para que por fim, seja hospedado e disponibilizado para acesso na web.

Gostou da visão.

Em breve, teremos mais.

#mysql #react #reactjs #java #springboot #jpa #javascript #html #css #eclipse #visualstudiocode #vscode #bancodedados #api #consumodeapi #criacaodeapi #springframework 

Inscreva-se no Canal para acompanhar novidades sobre Java, JavaScript, Html, Css, MySQL, Spring Boot, Reactjs, Carreira Dev, Freelancer, Tecnologia e mais. Acesse e conheça: https://www.linkedin.com/in/olivalpaulino/

LinkedIn: https://www.linkedin.com/in/olivalpaulino/

Compartilhe
Comentários (1)

EJ

Edson Júnior - 08/04/2023 15:35

Muito bom Olival. Estou buscando qual stack devo aprender. Passei um tempo estudando HTML, CSS, JavaScript, React, um pouco de Node, banco de dados, recentemente comecei a estudar Python para ter uma visão de uma outra linguagem, comecei uma graduação em Cências da Computação e vou seguindo. Pretendo me aprofundar mais em banco de dados e estudar para back-end para decidir se vou pelo caminho full stack ou back-end mesmo.

Ótimo post, muito bom para ver o caminho de uma aplicação completa.