Blame view

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