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

alexruzenhack

Alex Ruzenhack

Posted on May 14, 2018

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.

💖 💪 🙅 🚩
alexruzenhack
Alex Ruzenhack

Posted on May 14, 2018

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related