Article image

PP

Patricia Paula09/06/2024 13:51
Compartilhe

Criando uma API Java com framework Spring

    Tem vontade de criar uma API com Java e Spring, mas está com dúvidas de como começar?

    Nesse artigo, você irá conseguir criar a sua primeira API usando Java e Spring Boot. Será uma API simples para somar dois números.

    Tópicos presentes no artigo:

    • O que é um framework?
    • Por que usar um framework?
    • Framework Spring e Spring Boot
    • Instalação do JDK
    • Instalação do Spring Tool Suite
    • Apache Maven
    • Configuração do Spring Tools
    • Insomnia
    • Criando a primeira API com Spring Boot
    • Conclusão

    O que é um framework?

    Framework é uma estrutura que fornece uma base para o processo de desenvolvimento de aplicações. Com a utilização de um framework, você pode evitar escrever tudo zero, ou seja, é possível fazer a reutilização do código.

    Por que usar um framework?

    O uso de frameworks economiza tempo e reduz risco de erros. Algumas vantagens de sua utilização são:

    • Código mais seguro
    • Teste e depuração mais simples
    • Evitamento de código duplicado
    • Código limpo e facilmente adaptável

    Framework Spring e Spring Boot

    Spring é um framework open-source para desenvolvimento de aplicações Java. O Spring oferece uma série de conjunto de ferramentas e bibliotecas.

    Spring Boot é uma extensão do Spring Framework que traz diversos recursos pré configurados facilitando e acelerando o processo de manutenção e setup.

    Instalação do JDK

    Como o Spring é um framework para aplicações Java, temos que ter em nosso computador o JDK instalado.

    Para fazer a instalação do JDK, basta fazer o download na página da Oracle. Nessa aplicação iremos usar o JDK 21.

    Site para instalação: https://www.oracle.com/java/technologies/javase/jdk21-archive-downloads.html

    Para a instalação, basta instalar a versão compatível com seu sistema operacional, no meu caso será a do Windows.

    image

    Após a instalação, vá em downloads no seu computador e execute o arquivo.

    Instalação do Spring Tool Suite

    Spring Tools é uma IDE baseada em Eclipse que nos proporciona algumas facilidades para trabalhar com Spring.

    Site para instalação: https://spring.io/tools

    Selecionaremos a versão Spring Tools 4 for Eclipse.

    image

    Agora, basta criar uma pasta no arquivo C: com o nome SpringTools e colar o download do arquivo nessa pasta.

    Após isso, execute o arquivo e você verá que ele criou uma nova pasta.

    image

    Entre nessa pasta e abra o arquivo SpringToolSuite4.

    image

    Apache Maven

    Apache Maven serve para automatizar a execução de testes unitários durante a fase de build.

    Iremos utilizar o Maven nessa aplicação.

    Site para download: https://maven.apache.org/download.cgi

    Instale o Binary zip archive

    image

    Após a instalação, não é necessário executar o Maven.

    Configuração do Spring Tools

    Para a configuração do Spring Tools, você precisa estar com o programa Spring Tools Suite 4 aberto.

    Etapas da configuração:

    1- Clique em Window -> preference -> Java -> Installed JREs -> add -> Standard VM -> Next -> Directory. Após clicar em Directory, será preciso informar o diretório do JDK. Geralmente, o JDK fica no seguinte diretório: C:\Program Files\Java\jdk-21

    image

    Selecione a opção que está o diretório e clique em Apply and Close.

    2 - Clique em Window -> preferences -> Maven -> Installations -> add -> Directory. Após clicar em Directory, será preciso informar o diretório da pasta Maven.

    image

    Selecione a opção do diretório que acabou de ser inserido e clique em Apply and Close.

    Insomnia

    Iremos utilizar o Insomnia para o envio de requisições.

    Site para download: https://insomnia.rest/download

    Criando a primeira API com Spring Boot

    Para criar a aplicação, usaremos o Spring Tools Suite 4.

    Para começar, é preciso clicar em Create new Spring Starter Project.

    image

    Após isso, aparecerá uma tela para preencher com algumas informações, como nome do projeto, versão do Java, descrição, entre outras coisas relacionadas a aplicação.

    image

    Preencha com as informações acima e clique em Next e depois em Finish.

    Feito isso, você verá que foi criado uma pasta com vários arquivos dentro.

    Agora, clique em pom.xml (pom.xml é o principal arquivo de configuração do Maven, é dentro dele que se define quais as dependências do projeto e as propriedades).

    image

    Vamos adicionar uma dependência.

         <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-web</artifactId>
             </dependency>
    

    O Spring boot starter, faz com que conseguimos criar endpoints para chamadas HTTP.

    Criaremos mais uma dependência no pom.xml.

      <deendency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-devtools</artifactId>
      </dependency>
    

    Após adicionar a dependência, clique com o botão direito do mouse em cima da aplicação Java e clique em Maven -> update project. Veja se a opção "Force Update of Snapshots/Releases" está marcada, se não estiver, selecione ela. Clique em OK.

    image

    Em src/main/java, clique com o botão direito e clique em new -> Package.

    Criaremos um pacote chamado com.java.controllers.

    • Controller ajuda a gerenciar o fluxo de uma aplicação web e a lidar com solicitações HTTP.

    Clique com o botão direito do mouse em com.java.controllers e crie uma classe chamada MathController.

    Ela terá a seguinte estrutura:

    package com.java.controllers;
    
    import org.springframework.http.MediaType;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RestController;
    
    import com.java.math.SimpleMath;
    
    @RestController
    @RequestMapping(path = "/math")
    
    public class MathController {
    
    private simpleMath simpleMath;
    public class MathController {
      private simpleMath simpleMath;
      public mathController(){
          simpleMath = new simpleMath();
       }
      @GetMapping(path = "/sum/{numberOne}/{numberTwo}")
      public Double sum(@PathVariable(name = "numberOne")String numberOne, @PathVariable(name = "numberTwo")String       numberTwo){
          return mathConverter.convert(numberOne)+mathConverter.convert(numberTwo);
      }
    }
    

    Explicação:

    @Restcontroller: Indica que essa classe é um controlador REST e que cada método nesta classe anotado com @RequesMapping retornará dados em vez de visualizações.

    @RequestMapping(path = "/math"): Mapeia as solicitações HTTP que começam com "/math" para este controlador.

    @GetMapping(path = "/sum/{numberOne}/{numberTwo}"): Mapeia solicitações GET para a URL "/math/sum/{numberOne}/{numberTwo}". numberOne e numberTwo são variáveis de caminho que podem ser usadas para passar parâmetros através da URL.

    public Double sum(@PathVariable(name = "numberOne")String numberOne, @PathVariable(name = "numberTwo")String numberTwo): Este método lida com solicitações GET para "/math/sum/{numberOne}/{numberTwo}". Ele usa as anotações @PathVariable para capturar os valores de numberOne e numberTwo da URL e realizar a soma.

    return mathConverter.convert(numberOne) + mathConverter.convert(numberTwo): Aqui, é chamado mathConverter.convert() para converter as strings numberOne e numberTwo em números e então realizar a soma.

    Criaremos agora um package com o nome com.java.converters. Dentro dele criaremos uma classe chamada MathConverter, que terá o seguinte código:

    package com.java.converters;
    
    public class MathConverter{
      public static Double convert(String number) {
          if (number == null)
              return 0D;
          number.replaceAll(",", ".");
          if(isNumeric(number))
              return Double.parseDouble(number);
          return 0D;
      }
      public static boolean isNumeric(String number) {
          if(number == null)
              return false;
          number.replaceAll(",", ".");
          return number.matches("[-+]?[0-9]*\\.?[0-9]+");
      }
    }
    

    Explicação: Essa classe fornece métodos para converter Strings em números e verificar se uma String é numérica.

    Agora, criamos o package com.java.math, com a classe simpleMath, que terá a seguinte estrutura:

    package com.java.math
    import com.java.converters.mathConverter;
    
    public class simpleMath{
      public Double sum(String numberOne, String numberTwo) {
          var numberOneConverted = mathConverter.convert(numberOne);
          var numberTwoConverted = mathConverter.convert(numberTwo);
          return numberOneConverted + numberTwoConverted;
      }
    }
    

    Explicação: Usa-se a classe MathConverter para converter as Strings em números antes de realizar a operação de soma. 

    Com isso, criamos a nossa aplicação com Spring. Agora, utilizaremos o Insomnia para testar.

    Abra o Insomnia, selecione a opção GET e digite "localhost:8080/math/sum", na frente de sum coloque os dois números que deseja somar, no meu caso coloquei "localhost:8080/math/sum/1/1", que somará 1 + 1.

    Como podemos ver, o resultado mostrado foi 2.

    image

    Conclusão

    O Spring Framework, em conjunto com o Spring Boot e Apache Maven, são extremamente eficaz para o desenvolvimento de aplicativos Java. Ao usar o Spring, os desenvolvedores se beneficiam de uma estrutura que simplifica o desenvolvimento, promove a manutenção e melhora a escalabilidade de aplicativos. O Spring Boot, oferece uma configuração simples e automática, permitindo que os desenvolvedores iniciem rapidamente projetos sem a necessidade de configurações tediosas. Ao integrar o Apache Maven, a gestão de dependências e compilação do projeto se torna mais organizada e eficiente. Por conta disso, a combinação do Spring Framework, Spring Boot e Apache Maven oferece aos desenvolvedores ferramentas poderosas para criar aplicativos Java de alta qualidade, de forma rápida e eficiente.

    Compartilhe
    Comentários (2)
    Genildo Barros
    Genildo Barros - 14/06/2024 13:09

    Parabéns!


    Rosana TSFrancisco
    Rosana TSFrancisco - 14/06/2024 10:17

    perfeito parabensss!!!