On Github ybonnel / simpleweb4j-slides
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);