Blame view

api.raml 11.4 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
52
53
54
55
56
57
                  "expire": 1485607703,
                  "role": "admin",
                  "permissions": [
                    {
                      "nom": "CREER_EVENEMENT"
                    },
                    {
                      "nom": "SUPPRIMER_EVENEMENT"
                    }
                  ]
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
73
74
      securedBy: [oauth_2_0]
      description: Obtenir la liste des persones
      responses: 
e9bf0f84   badetitou   Evenement
75
76
77
78
  =======
     description: Obtenir la liste des persones
     responses:
  >>>>>>> 4b12d95... Evenement
509e1d6e   Geoffrey PREUD'HOMME   API: Login
79
80
81
       200:
         body:
            application/json:
90a48e21   Geoffrey PREUD'HOMME   Personnes
82
              example: |
509e1d6e   Geoffrey PREUD'HOMME   API: Login
83
                [
90a48e21   Geoffrey PREUD'HOMME   Personnes
84
85
86
                 {
                    "id": 42,
                    "carte": "AAAAA",
509e1d6e   Geoffrey PREUD'HOMME   API: Login
87
88
                    "naissance": "1997-02-14",
                    "solde": 1337,
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
89
90
                    "login": "gbontoux",
                    "role": "etudiant"
509e1d6e   Geoffrey PREUD'HOMME   API: Login
91
92
                  }
                ]
90a48e21   Geoffrey PREUD'HOMME   Personnes
93
94
    /{idPersonne}:
      get:
464d0189   Geoffrey PREUD'HOMME   Sécurité
95
        securedBy: [oauth_2_0]
90a48e21   Geoffrey PREUD'HOMME   Personnes
96
97
98
99
100
101
102
103
104
105
106
107
        description: Obtenir les infos sur une personne
        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
108
109
                    "login": "gbontoux",
                    "role": "etudiant"
90a48e21   Geoffrey PREUD'HOMME   Personnes
110
111
112
113
                  }
          404:
            description: Utilisateur non trouvé
      put:
464d0189   Geoffrey PREUD'HOMME   Sécurité
114
        securedBy: [oauth_2_0]
90a48e21   Geoffrey PREUD'HOMME   Personnes
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
        description: Modifer les infos d'une personne
        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
134
135
136
137
138
          role:
            displayName: Rôle
            type: string
            required: false
            example: etudiant
90a48e21   Geoffrey PREUD'HOMME   Personnes
139
140
141
        responses:
          202:
            description: Utilisateur modifié
90a48e21   Geoffrey PREUD'HOMME   Personnes
142
143
144
          404:
            description: Utilisateur non trouvé
      delete:
464d0189   Geoffrey PREUD'HOMME   Sécurité
145
        securedBy: [oauth_2_0]
90a48e21   Geoffrey PREUD'HOMME   Personnes
146
147
148
149
150
151
152
        description: Obtenir les infos sur une personne
        responses:
          204:
            description: Utilisateur supprimé
          404:
            description: Utilisateur non trouvé
    post:
464d0189   Geoffrey PREUD'HOMME   Sécurité
153
      securedBy: [oauth_2_0]
90a48e21   Geoffrey PREUD'HOMME   Personnes
154
      description: Ajoute une nouvelle personne
509e1d6e   Geoffrey PREUD'HOMME   API: Login
155
      queryParameters:
90a48e21   Geoffrey PREUD'HOMME   Personnes
156
        carte:
509e1d6e   Geoffrey PREUD'HOMME   API: Login
157
158
159
          displayName: ID de la carte NFC
          type: string
          required: false
90a48e21   Geoffrey PREUD'HOMME   Personnes
160
161
162
          minLength: 14
          maxLength: 14
          example: 39cdd9ed0b191d
509e1d6e   Geoffrey PREUD'HOMME   API: Login
163
164
        naissance:
          displayName: Date de naissance
90a48e21   Geoffrey PREUD'HOMME   Personnes
165
166
167
168
169
170
171
172
          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
173
174
175
176
177
178
        role:
          displayName: Rôle
          type: string
          required: true
          example: etudiant
          default: etudiant
e9bf0f84   badetitou   Evenement
179
      responses:
90a48e21   Geoffrey PREUD'HOMME   Personnes
180
181
182
183
184
185
186
187
        201:
          description: Personne ajoutée avec succès
          body:
            application/json:
              example: |
                {
                  "id": 42
                }
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
188
189
  /role:
    get:
464d0189   Geoffrey PREUD'HOMME   Sécurité
190
      securedBy: [oauth_2_0]
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
191
      description: Liste les rôles
e9bf0f84   badetitou   Evenement
192
      responses:
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
193
        200:
e9bf0f84   badetitou   Evenement
194
          body:
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
            application/json:
              example: |
                [
                  {
                    "nom": "etudiant",
                    "permissions": []
                  },
                  {
                    "nom": "bde",
                      "permissions": [
                      {
                        "nom": "CREER_EVENEMENT"
                      },
                      {
                        "nom": "SUPPRIMER_EVENEMENT"
                      }
                    ]
                  }
                ]
    post:
464d0189   Geoffrey PREUD'HOMME   Sécurité
215
      securedBy: [oauth_2_0]
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
216
      description: Ajoute un nouveau rôle
e9bf0f84   badetitou   Evenement
217
      queryParameters:
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
218
219
220
221
222
        nom:
          type: string
          minLength: 3
          required: true
          example: bde
e9bf0f84   badetitou   Evenement
223
      responses:
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
224
225
226
227
228
229
        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é
230
        securedBy: [oauth_2_0]
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
231
        description: Supprime un rôle
e9bf0f84   badetitou   Evenement
232
        responses:
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
233
234
235
236
237
          204:
            description: Rôle supprimé
          404:
            description: Rôle inconnu
      post:
464d0189   Geoffrey PREUD'HOMME   Sécurité
238
        securedBy: [oauth_2_0]
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
239
        description: Ajoute une permission à un rôle
e9bf0f84   badetitou   Evenement
240
        queryParameters:
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
241
242
243
244
          nom:
            type: string
            required: true
            minLength: 3
e9bf0f84   badetitou   Evenement
245
        responses:
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
246
247
248
249
250
251
          201:
            description: Permission ajouté avec succès
          404:
            description: Permission ou rôle inconnu
      /{nomPermission}:
        delete:
464d0189   Geoffrey PREUD'HOMME   Sécurité
252
          securedBy: [oauth_2_0]
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
253
          description: Enlève la permission du rôle
e9bf0f84   badetitou   Evenement
254
          responses:
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
255
256
257
258
259
260
            204:
              description: Permission enlevée avec succès
            404:
              description: Permission ou rôle inconnu
    /permission:
      get:
464d0189   Geoffrey PREUD'HOMME   Sécurité
261
        securedBy: [oauth_2_0]
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
262
263
264
265
266
267
268
269
270
271
272
273
274
275
        description: Liste les permissions
        responses:
          200:
            body:
              application/json:
                example: |
                  [
                    {
                      "nom": "CREER_EVENEMENT"
                    },
                    {
                      "nom": "SUPPRIMER_EVENEMENT"
                    }
                  ]
e9bf0f84   badetitou   Evenement
276
  
ff2fc742   badetitou   untab
277
278
  /evenement:
    get:
bea1faeb   Geoffrey PREUD'HOMME   Plus de sécurité
279
      securedBy: [oauth_2_0]
ff2fc742   badetitou   untab
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
      description: Obtenir la liste de tout les evenements
      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é
301
      securedBy: [oauth_2_0]
ff2fc742   badetitou   untab
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
      description: Permet de creer un nouvel evenement
      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
318
  
ff2fc742   badetitou   untab
319
320
    /{evenementId}:
      put:
bea1faeb   Geoffrey PREUD'HOMME   Plus de sécurité
321
        securedBy: [oauth_2_0]
ff2fc742   badetitou   untab
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
        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é
341
        securedBy: [oauth_2_0]
ff2fc742   badetitou   untab
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
        description: Obtenir l'evenement {evenementId}
        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é
359
        securedBy: [oauth_2_0]
ff2fc742   badetitou   untab
360
361
362
363
        description: Permet de supprimer l'evenement {evenementId}
        responses:
          200:
            description: L'evenement a été bien supprimé
e9bf0f84   badetitou   Evenement
364
365
366
367
  
  
  
  
ff2fc742   badetitou   untab
368
369
  /consomation:
    get:
e8c4d43f   Geoffrey PREUD'HOMME   Encore plus de sé...
370
      securedBy: [oauth_2_0]
ff2fc742   badetitou   untab
371
372
373
374
375
376
377
378
379
380
      description: Obtenir la liste de tout les consomations
      responses:
        200:
          body:
            application/json:
              example: |
                [
                  {
                    "id": 1,
                    "nomConsomation": "juis de fruit",
e8c4d43f   Geoffrey PREUD'HOMME   Encore plus de sé...
381
                    "prix": 4
ff2fc742   badetitou   untab
382
383
384
385
                  },
                  {
                    "id": 2,
                    "nomEvenement": "juis de fruit flambe",
e8c4d43f   Geoffrey PREUD'HOMME   Encore plus de sé...
386
                    "prix": 5
ff2fc742   badetitou   untab
387
388
389
                  }
                ]
    post:
e8c4d43f   Geoffrey PREUD'HOMME   Encore plus de sé...
390
      securedBy: [oauth_2_0]
ff2fc742   badetitou   untab
391
392
393
394
395
396
397
398
399
400
401
402
      description: Permet de creer un nouvel evenement
      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
403
  
ff2fc742   badetitou   untab
404
405
    /{consomationId}:
      put:
e8c4d43f   Geoffrey PREUD'HOMME   Encore plus de sé...
406
        securedBy: [oauth_2_0]
ff2fc742   badetitou   untab
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
        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é...
422
        securedBy: [oauth_2_0]
ff2fc742   badetitou   untab
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
        description: Obtenir la Consomation {consomationId}
        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é...
440
        securedBy: [oauth_2_0]
ff2fc742   badetitou   untab
441
442
443
444
        description: Permet de supprimer la consomation {consomationId}
        responses:
          200:
            description: La consomation a été bien supprime