Você criará um webservice que aceitará solicitações HTTP GET em http://localhost:8080/alo.

A resposta será uma representação JSON de um objeto, como mostrado a seguir:

{"id":1,"content":"alô mundo"}

Para todos os aplicativos Spring, você deve começar com o Spring Initializr . O Initializr oferece uma maneira rápida de obter todas as dependências de que você precisa para um aplicativo e faz grande parte da configuração para você. Vamos precisar neste exemplo apenas da dependência Spring Web.

A seguir é mostrado o arquivo pom.xml criado:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>2.4.3</version>
                <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.professorangoti</groupId>
        <artifactId>teste</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>teste</name>
        <description>Demo project for Spring Boot</description>
        <properties>
                <java.version>1.8</java.version>
        </properties>
        <dependencies>
                <dependency>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-web</artifactId>
                </dependency>

                <dependency>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-test</artifactId>
                        <scope>test</scope>
                </dependency>
        </dependencies>

        <build>
                <plugins>
                        <plugin>
                                <groupId>org.springframework.boot</groupId>
                                <artifactId>spring-boot-maven-plugin</artifactId>
                        </plugin>
                </plugins>
        </build>

</project>

Agora que configurou o projeto, você pode criar seu serviço da web. Comece o processo pensando nas interações de serviço.

O serviço tratará as requisições GET /alo, e retornará uma resposta HTTP com código 200 OK e corpo no formato JSON que representa um objeto do domínio. Deve ser semelhante à seguinte saída:

A classe Java simples que representa a resposta deverá conter campos, construtores e getters/setters os dados id e conteúdo como na listagem seguinte:

package com.professorangoti.restservice;

public class Dominio {

        private static long id;
        private final String conteudo;

        public Dominio(String conteudo) {
                ++id;
                this.conteudo = conteudo;
        }

        public long getId() {
                return id;
        }

        public String getConteudo() {
                return conteudo;
        }
}

Na abordagem do Spring para construir webservices RESTful, as requisições HTTP são tratadas por um controlador. Esses componentes são identificados pela anotação @RestController, e a classe mostrada na seguinte listagem lida com as requisições GET /alo retornando uma nova instância da classe Dominio:

package com.professorangoti.restservice;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class Controlador {

        @GetMapping("/alo")
        public Dominio greeting() {
                return new Dominio("alô mundo");
        }
}

Uma diferença importante entre um controlador MVC tradicional e o controlador RESTful é a maneira como o corpo de resposta HTTP é criado. Em vez de depender de uma tecnologia de visualização para realizar a renderização do lado do servidor para HTML, este controlador cria um objeto e os dados do objeto serão usados diretamente no corpo da resposta HTTP no formato JSON.

Execute a classe criado pelo Initializr para iniciar o serviço. O código da aplicação é mostrado a seguir:

package com.professorangoti;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class TesteApplication {

        public static void main(String[] args) {
                SpringApplication.run(TesteApplication.class, args);
        }
}

Agora que o serviço está ativo, visite http://localhost:8080/alo, onde você verá: