DEV Community

Alex Ruzenhack
Alex Ruzenhack

Posted on • Edited on

Como criar uma aplicação REST API básica com Spark

Através do micro framework Spark é possível criar micro serviços web com grande facilidade, envelopar num jar gordo e botar pra rodar numa micro instância Docker.

1. Crie um projeto maven

Configure o arquivo pom.xml com as seguintes dependências:

<dependencies>
    <dependency>
        <groupId>com.sparkjava</groupId>
        <artifactId>spark-core</artifactId>
        <version>2.7.1</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.21</version>
    </dependency>
</dependencies>
Enter fullscreen mode Exit fullscreen mode

2. Configure a montagem do jar

Construa um jar gordo que contenha todas as dependências do seu projeto, assim você pode rodar sua aplicação de forma independente.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>attached</goal>
            </goals>
            <phase>package</phase>
            <configuration>
                <finalName>${project.name}</finalName>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>yourgroupid.sparkrest.HelloWorld</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </execution>
    </executions>
</plugin>
Enter fullscreen mode Exit fullscreen mode

3. Crie um endpoint para sua REST API

Crie uma classe chamada HelloWorld onde você irá configurar um endpoint que receba requisições GET e devolva o texto simples Hello World.

import static spark.Spark.*;

public class HelloWorld {
    public static void main(String[] args) {
        get("/hello", (req, res) -> "Hello World");
    }
}
Enter fullscreen mode Exit fullscreen mode

4. Rode sua aplicação

Pra finalizar, execute esse script para compilar sua aplicação

$> mvn dependency:resolver
$> mvn verify
$> mvn package
Enter fullscreen mode Exit fullscreen mode

Agora execute o jar gordo compilado

$> java -jar nomedoprojeto-jar-with-dependencies.jar
Enter fullscreen mode Exit fullscreen mode

Faça uma requisição na URL http://localhost:4567/hello

// Resposta
Hello World
Enter fullscreen mode Exit fullscreen mode

Conclusão

O Spark oferece uma solução de micro serviço para aplicações web REST API com requisições bloqueantes, isto é, uma requisição fica presa numa tread. Portanto, a recomendação é que as aplicações construídas sobre esse framework sejam simples.

Para escalar aplicações que utilizem essa tecnologia é preciso usar uma arquitetura de microserviços com load balancer e criar novas instâncias de acordo com a demanda.

Top comments (0)