Tutorial

Tutorial

Criando Back-end API com Spring Boot 2.0

Tags:, , , , , , , , , , , , Artigos, Destaque, Tecnologia, Tutorial
featured image

Você utiliza Spring Boot? Quer saber o que mudou com as atualizações e como funciona? Ou ainda NÃO CONHECE essa ferramenta? Então continue lendo e veja na prática a criação de uma Back-end API com Spring Boot 2.0.

O que você vai encontrar nesse artigo:

  • O que é Spring Boot
  • Atualizações no Spring Boot 2.0
  • Conceito básico de Back-end e API
  • Instalações e principais configurações
  • Vídeo tutorial com passo a passo completo

O que é Spring Boot

Primeiramente, uma breve explicação sobre o Spring Boot. O projeto foi criado pela Spring com o objetivo de facilitar o processo de configuração e publicação de aplicações, a fim de ter o projeto rodando o mais rápido possível e sem maiores dificuldades.

Isso é possível porque o Spring Boot consegue favorecer a convenção sobre a configuração. Ou seja, é só dizer quais módulos deseja utilizar (WEB, Template, Persistência, Segurança, etc.) que ele reconhece e faz as configurações.

Com a primeira versão, a ferramenta ficou conhecida principalmente pela facilidade de criação, configuração de projetos e a utilização de microsserviços. Além disso, o Spring Boot proporciona maior liberdade para pensar nas regras de negócio da aplicação.

o que é spring boot

Atualizações no Spring Boot 2.0

A Spring está constantemente trazendo melhorias e o Spring Boot 2.0 é veio com algumas modificações, entre elas estão quebras de compatibilidades e inclusão de novas funcionalidades que ajudam o desenvolvimento e melhoria de qualidade do código. 

Outro ponto importante, é a versão do Java necessária para utilizar o Spring Boot. Alguns métodos e classes são encontradas apenas à partir da versão 8. Entretanto, o recomendado é utilizar da 9 em diante. Fique atento e atualize o seu.

SAIBA MAIS: JAVA – UMA SOBREVIVENTE NA ERA DAS NOVAS LINGUAGENS

Back-end API

Antes de entrar nas configurações, relembremos o que significa e para que serve uma API.

Começando pelo significado, a sigla refere-se ao termo em inglês “Application Programming Interface” que traduzido para o português significa “Interface de Programação de Aplicativos”.

E essas interfaces são um conjunto de rotinas e padrões de programação para acesso a um aplicativo de software ou plataforma baseado na Web. Em resumo, uma API é composta por uma série de funções acessíveis somente por meio de programação.

Mas afinal, quando APIs precisam ser criadas? Um caso comum é quando uma empresa de software tem intenção de que outros criadores de software desenvolvam produtos associados ao seu serviço.

Para exemplificar, o Google Maps é um dos mais utilizados. Por meio do código original, muitos outros sites e aplicações utilizam e adaptam os dados do Maps conforme seus objetivos.

Se você já trabalha e tem experiência com back-end, sabe a importância de se preocupar com a persistência dos dados, regras de negócio, segurança da informação, performance, etc.

Caso esteja começando na programação e caiu aqui de “paraquedas”, faça uma pesquisa sobre alguns conceitos. Abaixo sugestão de sites que podem ajudar:

https://mkyong.com/

https://www.youtube.com/user/algaworks

Agora que já deu para tirar algumas dúvidas e entender alguns conceitos, se prepare aí! A seguir começa o passo a passo para criar uma back-end API com Spring Boot 2.0.

Instalações e principais configurações

O Spring Tool Suite é uma IDE baseada em Eclipse que dá algumas facilidades para trabalhos com o Spring no geral. Uma das vantagens é que ajuda a criar projetos com Spring Boot.

Mas não se preocupe, o STS não é pré-requisito para criação de projetos com Spring Boot. Você pode trabalhar com Spring Boot em qualquer IDE que dê suporte ao Maven. Nesse site você vai encontrar suporte para utilizar outras IDEs: http://start.spring.io 

Faça a instalação se você ainda não tiver o Java instalado ou se a sua versão for anterior a 8. 

SAIBA MAIS: JAVASCRIPT – UMA LINGUAGEM DE ALTO NÍVEL PARA DESENVOLVIMENTO WEB

Criando o projeto

spring boot 2.0 starter project

Abra o programa e faça a criação do seu projeto. Basta seguir o caminho: File > New > Spring Starter Project

Escolha o nome do projeto, versão do java, deixa padrão os demais itens e segue para o próximo passo. 

Configurando as dependências do projeto

spring boot 2.0 dependências

Faça a seguinte seleção:

Java 11 / H2 Database / Spring Data JPA / Spring Boot Dev Tools / Spring Web / Validation

Dependências Swagger

spring boot 2.0 dependências swagger

Nas dependências do Swagger é necessário adicionar esse trecho no pom.xml para poder utilizar. Esse processo é manual por não ser uma dependência padrão da Spring, apesar de ser muito utilizada em aplicações Web.

Config Properties

properties são propriedades internas do pom.xml

Os properties são propriedades internas do pom.xml, é onde se define as versões das dependências que são adicionadas manualmente no projeto.

Essa config é opcional porque pode-se colocar o número da versão direto na tag <version></version> da dependência. As dependências do Spring (que foram selecionadas ao criar o projeto) não precisam estar ali, são inferidas automaticamente.

Meta Model Entity Processor

Meta Model Entity Processor é utilizado na hora de criar as specifications

O Meta Model Entity Processor é utilizado na criação das specifications para filtrar/pesquisar dados. 

Assim que finalizar esse passo faça um Update no projeto: Maven > Update Project > Force > OK!

Criando primeiros pacotes

.config / controller / model / repository / service / specs 

.config / controller / model / repository / service / specs 

  • config: pacote para agrupar classes contendo configurações do projeto
  • controller: pacote para armazenar as classes que conterão os endpoints da API
  • service: pacote para armazenar as classes que conterão as regras de negócio da aplicação.
  • repository: pacote para armazenar interfaces responsáveis pela abstração da comunicação com o banco de dados.
  • specs: pacote para armazenar classes utilitárias de conversão de filtros de pesquisa de dados em Specifications do Spring Data JPA.
  • model: pacote para armazenar as classes do modelo de dados contendo os mapeamentos das entidades do banco de dados.
  • dto: pacote para armazenar conjunto de pacotes contendo as classes de definições dos objetos que serão  produzidos e consumidos pela API.

Pacotes de DTOs 

Dto.req / dto.res / dtp.filter

dto.req: pacote para classes dos objetos que serão consumidos pela API.

dto.res: pacote para para as classes dos objetos que serão retornados pela API.

dto.filter: pacote para as classes contendo as estruturas dos filtros de pesquisa de dados que também serão consumidos pela API.

Configurações de cors

Cross-origin resource sharing

“Cross-origin resource sharing é uma especificação de uma tecnologia de navegadores que define meios para um servidor permitir que seus recursos sejam acessados por uma página web de um domínio diferente. Esse tipo de acesso seria de outra forma negado pela same origin policy”. Wikipédia

Essa configuração libera a API para ser consumida/utilizada publicamente por qualquer site ou origem, além disso não é necessário autorizar origem previamente. 

(Configuração útil durante o desenvolvimento que deve ser revista na hora de colocar o projeto em ambientes de produção).

SwaggerConfig / corsConfig / jpaAuDitingConfig

SwaggerConfig: Configurações da dependência do Swagger(Open Api) para uma página contendo documentações da API seja gerada automaticamente, permitindo também o teste dos endpoints sem a necessidade da utilização de ferramentas como o Postman.

JpaAuditingConfig: Configurações do Spring para habilitar notações de auditoria de dados, conforme a documentação oficial: https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#auditing.basics

Application Properties  

Arquivo de configuração padrão do spring boot, podemos configurar parâmetros para acesso ao banco de dados, a porta http que a API deverá utilizar, e diversos outros parâmetros.

Chegando até aqui a infraestrutura básica da tua Back-end API com Spring Boot 2.0 está configurada!

No tutorial em vídeo você consegue ver os passos completos e com mais detalhes. Não deixa de visualizar e boa sorte na criação do teu projeto.

Vídeo tutorial com passo a passo completo

*Artigo escrito por Nicolas Wojcichoski, programador da Kbase