Blame view

api.raml 12.3 KB
90a48e21   Geoffrey PREUD'HOMME   Personnes
1
  #%RAML 0.8
ea2f57e1   Geoffrey PREUD'HOMME   Test API
2
3
4
  title: API d'Etunicorn
  baseUri: https://etunicorn.plil.net/{version}/
  version: v1
90a48e21   Geoffrey PREUD'HOMME   Personnes
5
  
464d0189   Geoffrey PREUD'HOMME   Sécurité
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  securitySchemes:
      - oauth_2_0:
          description: Il faut un token OAuth 2.0 pour utiliser cette API
          type: OAuth 2.0
          describedBy:
              headers:
                  Authorization:
                      description: |
                         Utilisé pour envoyer un token d'accès OAuth 2. Ne pas envoyer en même temps que le paramètre de requête "access_token"
                      type: string
              queryParameters:
                  access_token:
                      description: |
                         Utilisé pour envoyer un token d'accès OAuth 2. Ne pas envoyer en même temps que le header "Authorization"
                      type: string
              responses:
                  401:
                      description: Token expiré ou invalide. Reconnectez-vous
                  403:
                      description: Permission refusée. Se re-connecter ne changera rien
  
  # Les codes 400 sont implicites
509e1d6e   Geoffrey PREUD'HOMME   API: Login
28
  /login:
b8824e3a   Geoffrey PREUD'HOMME   Avec le login, ce...
29
30
    post:
      description: Instancie une nouvelle connexion
90a48e21   Geoffrey PREUD'HOMME   Personnes
31
      queryParameters:
b8824e3a   Geoffrey PREUD'HOMME   Avec le login, ce...
32
33
34
35
36
37
38
39
        login:
          displayName: Login Polytech
          type: string
          required: true
        password:
          displayName: Mot de passe Polytech
          type: string
          required: false
e9bf0f84   badetitou   Evenement
40
      responses:
b8824e3a   Geoffrey PREUD'HOMME   Avec le login, ce...
41
42
43
44
        200:
          description: Authentification réussie
          body:
            application/json:
90a48e21   Geoffrey PREUD'HOMME   Personnes
45
              example: |
b8824e3a   Geoffrey PREUD'HOMME   Avec le login, ce...
46
47
                {
                  "token": "ooT6zahdura7vaethuiph1ugiph6co",
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
48
49
50
51
                  "expire": 1485607703,
                  "role": "admin",
                  "permissions": [
                    {
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
52
                      "nom": "CREER_EVNMT"
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
53
54
                    },
                    {
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
55
                      "nom": "SUPPRIMER_EVNMT"
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
56
57
                    }
                  ]
b8824e3a   Geoffrey PREUD'HOMME   Avec le login, ce...
58
59
60
                }
        401:
          description: Authentication échouée
90a48e21   Geoffrey PREUD'HOMME   Personnes
61
62
63
    /{token}:
      delete:
        description: Se déconnecter
e9bf0f84   badetitou   Evenement
64
        responses:
90a48e21   Geoffrey PREUD'HOMME   Personnes
65
66
67
          204:
            description: Déconnecté avec succès
          404:
464d0189   Geoffrey PREUD'HOMME   Sécurité
68
            description: Jeton invalide ou expiré. À priori, vous êtes déjà déconnecté
ea2f57e1   Geoffrey PREUD'HOMME   Test API
69
  /personne:
509e1d6e   Geoffrey PREUD'HOMME   API: Login
70
    get:
e9bf0f84   badetitou   Evenement
71
  <<<<<<< HEAD
464d0189   Geoffrey PREUD'HOMME   Sécurité
72
      securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
73
  <<<<<<< HEAD
464d0189   Geoffrey PREUD'HOMME   Sécurité
74
75
      description: Obtenir la liste des persones
      responses: 
e9bf0f84   badetitou   Evenement
76
77
78
79
  =======
     description: Obtenir la liste des persones
     responses:
  >>>>>>> 4b12d95... Evenement
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
80
81
82
83
  =======
      description: Obtenir la liste des persones. Nécessite COMPTE_ADMIN
      responses:
  >>>>>>> f177050... Ajout des permissions
509e1d6e   Geoffrey PREUD'HOMME   API: Login
84
85
86
       200:
         body:
            application/json:
90a48e21   Geoffrey PREUD'HOMME   Personnes
87
              example: |
509e1d6e   Geoffrey PREUD'HOMME   API: Login
88
                [
90a48e21   Geoffrey PREUD'HOMME   Personnes
89
90
91
                 {
                    "id": 42,
                    "carte": "AAAAA",
509e1d6e   Geoffrey PREUD'HOMME   API: Login
92
93
                    "naissance": "1997-02-14",
                    "solde": 1337,
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
94
95
                    "login": "gbontoux",
                    "role": "etudiant"
509e1d6e   Geoffrey PREUD'HOMME   API: Login
96
97
                  }
                ]
90a48e21   Geoffrey PREUD'HOMME   Personnes
98
99
    /{idPersonne}:
      get:
464d0189   Geoffrey PREUD'HOMME   Sécurité
100
        securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
101
        description: Obtenir les infos sur une personne. Nécessite COMPTE_ADMIN
90a48e21   Geoffrey PREUD'HOMME   Personnes
102
103
104
105
106
107
108
109
110
111
112
        responses:
          200:
            description: Utilisateur récupéré
            body:
              application/json:
                example: |
                 {
                    "id": 42,
                    "carte": "AAAAA",
                    "naissance": "1997-02-14",
                    "solde": 1337,
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
113
114
                    "login": "gbontoux",
                    "role": "etudiant"
90a48e21   Geoffrey PREUD'HOMME   Personnes
115
116
117
118
                  }
          404:
            description: Utilisateur non trouvé
      put:
464d0189   Geoffrey PREUD'HOMME   Sécurité
119
        securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
120
        description: Modifer les infos d'une personne. Nécessite COMPTE_ADMIN
90a48e21   Geoffrey PREUD'HOMME   Personnes
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
        queryParameters:
          carte:
            displayName: ID de la carte NFC
            type: string
            required: false
            minLength: 14
            maxLength: 14
            example: 39cdd9ed0b191d
          naissance:
            displayName: Date de naissance
            type: date
            required: false
            example: 1997-02-14
          login:
            displayName: Login Polytech
            type: string
            required: false
            example: gbontoux
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
139
140
          role:
            displayName: Rôle
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
141
            description: Nécessite ROLE_ADMIN
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
142
143
144
            type: string
            required: false
            example: etudiant
90a48e21   Geoffrey PREUD'HOMME   Personnes
145
146
147
        responses:
          202:
            description: Utilisateur modifié
90a48e21   Geoffrey PREUD'HOMME   Personnes
148
149
150
          404:
            description: Utilisateur non trouvé
      delete:
464d0189   Geoffrey PREUD'HOMME   Sécurité
151
        securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
152
        description: Obtenir les infos sur une personne. Nécessite COMPTE_ADMIN
90a48e21   Geoffrey PREUD'HOMME   Personnes
153
154
155
156
157
158
        responses:
          204:
            description: Utilisateur supprimé
          404:
            description: Utilisateur non trouvé
    post:
464d0189   Geoffrey PREUD'HOMME   Sécurité
159
      securedBy: [oauth_2_0]
90a48e21   Geoffrey PREUD'HOMME   Personnes
160
      description: Ajoute une nouvelle personne
509e1d6e   Geoffrey PREUD'HOMME   API: Login
161
      queryParameters:
90a48e21   Geoffrey PREUD'HOMME   Personnes
162
        carte:
509e1d6e   Geoffrey PREUD'HOMME   API: Login
163
164
165
          displayName: ID de la carte NFC
          type: string
          required: false
90a48e21   Geoffrey PREUD'HOMME   Personnes
166
167
168
          minLength: 14
          maxLength: 14
          example: 39cdd9ed0b191d
509e1d6e   Geoffrey PREUD'HOMME   API: Login
169
170
        naissance:
          displayName: Date de naissance
90a48e21   Geoffrey PREUD'HOMME   Personnes
171
172
173
174
175
176
177
178
          type: date
          required: false
          example: 1997-02-14
        login:
          displayName: Login Polytech
          type: string
          required: false
          example: gbontoux
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
179
180
        role:
          displayName: Rôle
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
181
          description: Nécessite ROLE_ADMIN
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
182
          type: string
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
183
          required: false
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
184
185
          example: etudiant
          default: etudiant
e9bf0f84   badetitou   Evenement
186
      responses:
90a48e21   Geoffrey PREUD'HOMME   Personnes
187
188
189
190
191
192
193
194
        201:
          description: Personne ajoutée avec succès
          body:
            application/json:
              example: |
                {
                  "id": 42
                }
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
195
196
  /role:
    get:
464d0189   Geoffrey PREUD'HOMME   Sécurité
197
      securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
198
      description: Liste les rôles. Nécessite ROLE_ADMIN
e9bf0f84   badetitou   Evenement
199
      responses:
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
200
        200:
e9bf0f84   badetitou   Evenement
201
          body:
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
202
203
204
205
206
207
208
209
210
211
212
            application/json:
              example: |
                [
                  {
                    "nom": "etudiant",
                    "permissions": []
                  },
                  {
                    "nom": "bde",
                      "permissions": [
                      {
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
213
                        "nom": "CREER_EVNMT"
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
214
215
                      },
                      {
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
216
                        "nom": "SUPPRIMER_EVNMT"
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
217
218
219
220
221
                      }
                    ]
                  }
                ]
    post:
464d0189   Geoffrey PREUD'HOMME   Sécurité
222
      securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
223
      description: Ajoute un nouveau rôle. Nécessite ROLE_ADMIN
e9bf0f84   badetitou   Evenement
224
      queryParameters:
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
225
226
227
228
229
        nom:
          type: string
          minLength: 3
          required: true
          example: bde
e9bf0f84   badetitou   Evenement
230
      responses:
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
231
232
233
234
235
236
        201:
          description: Rôle créé avec succès
        409:
          description: Un rôle avec le même nom existe déjà
    /{nomRole}:
      delete:
464d0189   Geoffrey PREUD'HOMME   Sécurité
237
        securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
238
        description: Supprime un rôle. Nécessite ROLE_ADMIN
e9bf0f84   badetitou   Evenement
239
        responses:
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
240
241
242
243
244
          204:
            description: Rôle supprimé
          404:
            description: Rôle inconnu
      post:
464d0189   Geoffrey PREUD'HOMME   Sécurité
245
        securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
246
        description: Ajoute une permission à un rôle. Nécessite ROLE_ADMIN
e9bf0f84   badetitou   Evenement
247
        queryParameters:
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
248
249
250
251
          nom:
            type: string
            required: true
            minLength: 3
e9bf0f84   badetitou   Evenement
252
        responses:
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
253
254
255
256
257
258
          201:
            description: Permission ajouté avec succès
          404:
            description: Permission ou rôle inconnu
      /{nomPermission}:
        delete:
464d0189   Geoffrey PREUD'HOMME   Sécurité
259
          securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
260
          description: Enlève la permission du rôle. Nécessite ROLE_ADMIN
e9bf0f84   badetitou   Evenement
261
          responses:
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
262
263
264
265
266
267
            204:
              description: Permission enlevée avec succès
            404:
              description: Permission ou rôle inconnu
    /permission:
      get:
464d0189   Geoffrey PREUD'HOMME   Sécurité
268
        securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
269
        description: Liste les permissions. Nécessite ROLE_ADMIN
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
270
271
272
273
274
275
276
        responses:
          200:
            body:
              application/json:
                example: |
                  [
                    {
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
277
                      "nom": "CREER_EVNMT"
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
278
279
                    },
                    {
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
280
                      "nom": "SUPPRIMER_EVNMT"
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
281
282
                    }
                  ]
e9bf0f84   badetitou   Evenement
283
  
ff2fc742   badetitou   untab
284
285
  /evenement:
    get:
bea1faeb   Geoffrey PREUD'HOMME   Plus de sécurité
286
      securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
287
      description: Obtenir la liste de tout les evenements. Nécessite EVNMT_ADMIN ou EVNMT_ACHETER ou EVNMT_REMBOURSER
ff2fc742   badetitou   untab
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
      responses:
        200:
          body:
            application/json:
              example: |
                [
                  {
                    "id": 1,
                    "nomEvenement": "patate",
                    "prix": 4,
                    "date": "2001-09-11"
                  },
                  {
                    "id": 2,
                    "nomEvenement": "patate flambe",
                    "prix": 5,
                    "date": "2001-09-11"
                  }
                ]
    post:
bea1faeb   Geoffrey PREUD'HOMME   Plus de sécurité
308
      securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
309
      description: Permet de creer un nouvel evenement. Nécessite EVNMT_ADMIN
ff2fc742   badetitou   untab
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
      queryParameters:
        nomEvenement:
          description: Le nom de l'evenement
          type: string
          required: true
        prix:
          description: Le prix de l'evenement
          type: number
          required: true
        date:
          description: La date de l'evenement
          type: date
          required: true
      responses:
        201:
e9bf0f84   badetitou   Evenement
325
  
ff2fc742   badetitou   untab
326
327
    /{evenementId}:
      put:
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
328
        description: Permet de modifier un évènement existant. Nécessite EVNMT_ADMIN
bea1faeb   Geoffrey PREUD'HOMME   Plus de sécurité
329
        securedBy: [oauth_2_0]
ff2fc742   badetitou   untab
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
        queryParameters:
          nomEvenement:
            description: Le nom de l'evenement
            type: string
            required: false
          prix:
            description: Le prix de l'evenement
            type: number
            required: false
          date:
            description: La date de l'evenement
            type: date
            required: false
        responses:
          202:
            description: Modification pris en compte
          404:
            description: L'evenement n'existe pas
      get:
bea1faeb   Geoffrey PREUD'HOMME   Plus de sécurité
349
        securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
350
        description: Obtenir l'evenement {evenementId}. Nécessite EVNMT_ADMIN ou EVNMT_ACHETER ou EVNMT_REMBOURSER 
ff2fc742   badetitou   untab
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
        responses:
          200:
            body:
              application/json:
                example: |
                  [
                     {
                      "id": 1,
                      "nomEvenement": "patate",
                      "prix": 4,
                      "date": "2001-09-11"
                    }
                  ]
          404:
            description: Evenement non existant
      delete:
bea1faeb   Geoffrey PREUD'HOMME   Plus de sécurité
367
        securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
368
        description: Permet de supprimer l'evenement {evenementId}. Nécessite EVNMT_ADMIN
ff2fc742   badetitou   untab
369
370
371
        responses:
          200:
            description: L'evenement a été bien supprimé
e9bf0f84   badetitou   Evenement
372
373
374
375
  
  
  
  
ff2fc742   badetitou   untab
376
377
  /consomation:
    get:
e8c4d43f   Geoffrey PREUD'HOMME   Encore plus de sé...
378
      securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
379
      description: Obtenir la liste de toutes les consomations. Nécessite CONSO_ADMIN ou CONSO_ACHETER ou CONSO_REMBOURSER
ff2fc742   badetitou   untab
380
381
382
383
384
385
386
387
388
      responses:
        200:
          body:
            application/json:
              example: |
                [
                  {
                    "id": 1,
                    "nomConsomation": "juis de fruit",
e8c4d43f   Geoffrey PREUD'HOMME   Encore plus de sé...
389
                    "prix": 4
ff2fc742   badetitou   untab
390
391
392
393
                  },
                  {
                    "id": 2,
                    "nomEvenement": "juis de fruit flambe",
e8c4d43f   Geoffrey PREUD'HOMME   Encore plus de sé...
394
                    "prix": 5
ff2fc742   badetitou   untab
395
396
397
                  }
                ]
    post:
e8c4d43f   Geoffrey PREUD'HOMME   Encore plus de sé...
398
      securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
399
      description: Permet de creer une nouvelle consomation. Nécessite CONSO_ADMIN
ff2fc742   badetitou   untab
400
401
402
403
404
405
406
407
408
409
410
      queryParameters:
        nomConsomation:
          description: Le nom de la Consomation
          type: string
          required: true
        prix:
          description: Le prix de la Consomation
          type: number
          required: true
      responses:
        201:
e9bf0f84   badetitou   Evenement
411
  
ff2fc742   badetitou   untab
412
413
    /{consomationId}:
      put:
e8c4d43f   Geoffrey PREUD'HOMME   Encore plus de sé...
414
        securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
415
        description: Permet de modifier une consommation. Nécessite CONSO_ADMIN
ff2fc742   badetitou   untab
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
        queryParameters:
          nomEvenement:
            description: Le nom de la Consomation
            type: string
            required: false
          prix:
            description: Le prix de la Consomation
            type: number
            required: false
        responses:
          202:
            description: Modification pris en compte
          404:
            description: L'evenement n'existe pas
      get:
e8c4d43f   Geoffrey PREUD'HOMME   Encore plus de sé...
431
        securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
432
        description: Obtenir la Consomation {consomationId}. Nécessite CONSO_ADMIN ou CONSO_ACHETER ou CONSO_REMBOURSER
ff2fc742   badetitou   untab
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
        responses:
          200:
            body:
              application/json:
                example: |
                  [
                     {
                      "id": 1,
                      "nomEvenement": "patate",
                      "prix": 4,
                      "date": "2001-09-11"
                    }
                  ]
          404:
            description: Consomation non existante
      delete:
e8c4d43f   Geoffrey PREUD'HOMME   Encore plus de sé...
449
        securedBy: [oauth_2_0]
3b818f18   Geoffrey PREUD'HOMME   Ajout des permiss...
450
        description: Permet de supprimer la consomation {consomationId}. Nécessite CONSO_ADMIN
ff2fc742   badetitou   untab
451
452
453
        responses:
          200:
            description: La consomation a été bien supprime