8a1b7ac8
Geoffrey PREUD'HOMME
CR 14/12/16
|
1
2
3
4
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
95
96
|
---
layout: post
title: "Compte-rendu de réunion"
date: 2016-12-14 13:45:00 +0100
author: "Geoffrey Preud'homme"
tags: ci cr
---
# 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).
|