Commit 8a1b7ac805704025f0d7ec13179eb568066043dc

Authored by Geoffrey PREUD'HOMME
1 parent d4b5ecd0

CR 14/12/16

Showing 1 changed file with 96 additions and 0 deletions   Show diff stats
_posts/2016-12-14-compte-rendu-reunion.markdown 0 → 100644
... ... @@ -0,0 +1,96 @@
  1 +---
  2 +layout: post
  3 +title: "Compte-rendu de réunion"
  4 +date: 2016-12-14 13:45:00 +0100
  5 +author: "Geoffrey Preud'homme"
  6 +tags: ci cr
  7 +---
  8 +
  9 +# Flashmob de l'associatif
  10 +
  11 +Le principe aurait été de faire une chorée club
  12 +de 30 secondes et une chorée avec tous les autres clubs d'une
  13 +minute. Les répétitions sont pendant les examens donc personne
  14 +n'est chaud pour faire la chorégraphie, pas même les autres clubs
  15 +:)
  16 +
  17 +# Kilobits
  18 +
  19 +Le repo est prêt pour bosser.
  20 +
  21 +On utilise le protocole REST pour accéder et
  22 +modifier les ressources depuis les applications clientes et le
  23 +serveur. Pour cela, c'est Spring qu'on utilise (à titre informatif,
  24 +on utilise plus le faux Spring mais le vrai. Ça a rien changé parce
  25 +qu'on l'avait pas utilisé ^^).
  26 +
  27 +On peut demander à ce qu'une ressource soit
  28 +récupérée (GET), ajoutée (POST), modifiée (PUT) ou supprimée
  29 +(DELETE), que l'on envoie à un certaine adresse correspondant à la
  30 +ressource.
  31 +
  32 +Exemple de déclaration d'une classe, que
  33 +l'on crée pour chaque type de ressource.
  34 +
  35 +```java
  36 +@RestController
  37 +@RequestMapping("/user")
  38 +public class UserRest {
  39 +```
  40 +
  41 +Exemple d'une fonction :
  42 +
  43 +```java
  44 +@RequestMapping(value = "/list", method = RequestMethod.GET)
  45 +public List<User> getAllUser() {
  46 + return dao.getAllUser();
  47 +}
  48 +```
  49 +
  50 +Par exemple, ici en faisant une
  51 +requête GET sur `/user/list` le serveur nous retournera la liste des
  52 +utilisateurs.
  53 +
  54 +Plus d'exemples :
  55 +[https://github.com/ClubInfoPolytechLille/kilobits-serv/blob/master/src/main/java/com/tbe/rest/UserREST.java](https://github.com/ClubInfoPolytechLille/kilobits-serv/blob/master/src/main/java/com/tbe/rest/UserREST.java)
  56 +
  57 +On utilise JDBI pour simplifier la
  58 +manière dont on accède aux bases de données. On peut du coup
  59 +écrire une requête en deux lignes (à peu près).
  60 +
  61 +On crée aussi une classe par type de
  62 +ressource :
  63 +
  64 +```java
  65 +public interface UserDao {
  66 + String strCreateUtilisateurTable = "Create table if not exists Utilisateur (...)"
  67 +```
  68 +
  69 +Et on déclare ici ce qui est était
  70 +appelé dans la fonction REST pour récupérer les utilisateurs :
  71 +
  72 +```java
  73 +@SqlQuery("Select * from utilisateur")
  74 +@RegisterMapperFactory(BeanMapperFactory.class)
  75 +List<User> getAllUser();
  76 +```
  77 +
  78 +Un autre exemple avec modification de données
  79 +(donc POST) :
  80 +
  81 +```java
  82 +@SqlUpdate("insert into langue (langue) values (:langue)")
  83 +@GetGeneratedKeys
  84 +int addLangue(@Bind("langue") String langue);
  85 +```
  86 +
  87 +Et tout ça, ça se passe ici :
  88 +[https://github.com/ClubInfoPolytechLille/kilobits-serv/tree/master/src/main/java/com/tbe/database](https://github.com/ClubInfoPolytechLille/kilobits-serv/tree/master/src/main/java/com/tbe/database)
  89 +
  90 +Petites explications sur le code
  91 +directement, c'est un peu compliqué à écrire directement sur un
  92 +compte rendu donc fermez les yeux et imaginez. Ou ouvrez le code
  93 +c'est mieux.
  94 +
  95 +Ré-éxplication de Trello, cf [compte-rendu de la
  96 +dernière fois](https://clubinfo.plil.net/cr/2016/12/07/compte-rendu-reunion.html#nouveaux-outils-de-gestion-de-projet).
... ...