Spark est un framework Java qui permet de construire une application web en quelques étapes. Il fonctionne de manière simple à partir d'un serveur web Jetty embarqué et a été inspiré par le framework Sinatra écrit en Ruby. A noter que la dernière version 2.0 a été écrite pour supporter Java 8.
Pour commencer un projet web il suffit d'ajouter une seule dépendance Maven :
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-core</artifactId>
<version>2.0.0</version>
</dependency>
Pour créer une première page web, il suffit d'écrire :
import static spark.Spark.*;
public class HelloWorld {
public static void main(String[] args) {
get("/",(request, response) -> {
return "Hello World!";
});
}
}
Ensuite exécuter la classe HelloWord, et notre application web se lance.
On peux vérifier cela sur l'adresse suivante : http://localhost:4567
Ce framework fonctionne en implémentant des routes définies de cette manière :
- Une méthode : get, post, put, delete, head, trace, connect, options
- Un chemin : /hello, /users/:name
- Une fonction de retour : (request, response) -> { }
Comme on peut le voir dans la définition du chemin ,il est très simple de définir un paramètre attendu de la requête.
get("/hello/:name", (request, response) -> {
return "Hello: " + request.params(":name");
});
Il est du coup facile de construire une application web respectant le standard REST.
Il est également possible de définir des Filters pour évaluer une requête avant ou après un traitement.
before(new Filter("/hello") {
@Override
public void handle(Request request, Response response) {
response.header("Foo", "Set by before filter");
}
});
get(new Route("/hello") {
@Override
public Object handle(Request request, Response response) {
return "Hello World!";
}
});
after(new Filter("/hello") {
@Override
public void handle(Request request, Response response) {
response.header("spark", "added by after filter");
}
});
En conclusion je conseillerais d'utiliser ce framework dans le but de créer rapidement un POC d'une application web.
Site officiel : http://www.sparkjava.com/
Source : https://github.com/perwendel/spark