Développeur Java chez Sopra Group depuis 7 ans
Développeur Android la nuit :
Développeur open-source :
Où me trouver?
Encore un framework web!
Mouvance MVC Client
Léger
Rapide à mettre en place
Facile à deployer
Gestion d'une carte de cidre
CRUD des cidres
Affichage de la carte
Gestion des utilisateurs (si on a le temps)
SimpleWeb4j.resource()
SimpleWeb4j.resource(new CidreResource("cidre"));
Test via Http
public class CidreTest extends SimpleWeb4jTest {
@Before
public void setup() {
Main.startServer(getPort(), false);
}
@After
public void tearDown() {
stop();
}
@Test
public void should_return_no_cidre() {
List<Cidre> cidres = new Gson().fromJson(
HttpRequest.get(defaultUrl() + "/cidre").body(),
new TypeToken<List<Cidre>>(){}.getType());
assertTrue(cidres.isEmpty());
}
}
public class CidreWebTest extends SimpleWeb4jTest {
@Before
public void setup() {
Main.startServer(getPort(), false);
goTo("/");
}
@After
public void tearDown() {
stop();
}
@Test
public void should_not_have_cidre() {
assertThat(find("tbody tr")).isEmpty();
}
}
Filtre à appliquer sur toutes les requètes (exemple : sécurité)
public class SecurityFilter extends AbstractFilter {
@Override
public void handle(Route route, RouteParameters routeParams)
throws HttpErrorException {
if (!"admin".equals(routeParams.getParam("login"))
|| !"admin".equals(routeParams.getParam("password"))) {
throw new HttpErrorException(
HttpServletResponse.SC_UNAUTHORIZED);
}
}
}
SimpleWeb4j.addFilter(new SecurityFilter());
Création d'un site hébergé ailleur utilisant le backend SompleWeb4j
Route<Void, List<Cidre>> jsonpRoute =
new Route<>("/jsonp/cidre", Void.class) {
@Override
public Response<List<Cidre>> handle(
Void param, RouteParameters routeParameters) {
return cidreRessource.getAll();
}
};
jsonp("CALLBACK", jsonpRoute);
step0
step1
step2
step2
step3
step4