Blame view

api.raml 7.13 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
40
41
42
43
44
        login:
          displayName: Login Polytech
          type: string
          required: true
        password:
          displayName: Mot de passe Polytech
          type: string
          required: false
      responses: 
        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
64
65
66
67
    /{token}:
      delete:
        description: Se déconnecter
        responses: 
          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:
464d0189   Geoffrey PREUD'HOMME   Sécurité
71
72
73
      securedBy: [oauth_2_0]
      description: Obtenir la liste des persones
      responses: 
509e1d6e   Geoffrey PREUD'HOMME   API: Login
74
75
76
       200:
         body:
            application/json:
90a48e21   Geoffrey PREUD'HOMME   Personnes
77
              example: |
509e1d6e   Geoffrey PREUD'HOMME   API: Login
78
                [
90a48e21   Geoffrey PREUD'HOMME   Personnes
79
80
81
                 {
                    "id": 42,
                    "carte": "AAAAA",
509e1d6e   Geoffrey PREUD'HOMME   API: Login
82
83
                    "naissance": "1997-02-14",
                    "solde": 1337,
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
84
85
                    "login": "gbontoux",
                    "role": "etudiant"
509e1d6e   Geoffrey PREUD'HOMME   API: Login
86
87
                  }
                ]
90a48e21   Geoffrey PREUD'HOMME   Personnes
88
89
    /{idPersonne}:
      get:
464d0189   Geoffrey PREUD'HOMME   Sécurité
90
        securedBy: [oauth_2_0]
90a48e21   Geoffrey PREUD'HOMME   Personnes
91
92
93
94
95
96
97
98
99
100
101
102
        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
103
104
                    "login": "gbontoux",
                    "role": "etudiant"
90a48e21   Geoffrey PREUD'HOMME   Personnes
105
106
107
108
                  }
          404:
            description: Utilisateur non trouvé
      put:
464d0189   Geoffrey PREUD'HOMME   Sécurité
109
        securedBy: [oauth_2_0]
90a48e21   Geoffrey PREUD'HOMME   Personnes
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
        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
129
130
131
132
133
          role:
            displayName: Rôle
            type: string
            required: false
            example: etudiant
90a48e21   Geoffrey PREUD'HOMME   Personnes
134
135
136
        responses:
          202:
            description: Utilisateur modifié
90a48e21   Geoffrey PREUD'HOMME   Personnes
137
138
139
          404:
            description: Utilisateur non trouvé
      delete:
464d0189   Geoffrey PREUD'HOMME   Sécurité
140
        securedBy: [oauth_2_0]
90a48e21   Geoffrey PREUD'HOMME   Personnes
141
142
143
144
145
146
147
        description: Obtenir les infos sur une personne
        responses:
          204:
            description: Utilisateur supprimé
          404:
            description: Utilisateur non trouvé
    post:
464d0189   Geoffrey PREUD'HOMME   Sécurité
148
      securedBy: [oauth_2_0]
90a48e21   Geoffrey PREUD'HOMME   Personnes
149
      description: Ajoute une nouvelle personne
509e1d6e   Geoffrey PREUD'HOMME   API: Login
150
      queryParameters:
90a48e21   Geoffrey PREUD'HOMME   Personnes
151
        carte:
509e1d6e   Geoffrey PREUD'HOMME   API: Login
152
153
154
          displayName: ID de la carte NFC
          type: string
          required: false
90a48e21   Geoffrey PREUD'HOMME   Personnes
155
156
157
          minLength: 14
          maxLength: 14
          example: 39cdd9ed0b191d
509e1d6e   Geoffrey PREUD'HOMME   API: Login
158
159
        naissance:
          displayName: Date de naissance
90a48e21   Geoffrey PREUD'HOMME   Personnes
160
161
162
163
164
165
166
167
          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
168
169
170
171
172
173
        role:
          displayName: Rôle
          type: string
          required: true
          example: etudiant
          default: etudiant
90a48e21   Geoffrey PREUD'HOMME   Personnes
174
175
176
177
178
179
180
181
182
      responses: 
        201:
          description: Personne ajoutée avec succès
          body:
            application/json:
              example: |
                {
                  "id": 42
                }
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
183
184
  /role:
    get:
464d0189   Geoffrey PREUD'HOMME   Sécurité
185
      securedBy: [oauth_2_0]
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
      description: Liste les rôles
      responses: 
        200:
          body: 
            application/json:
              example: |
                [
                  {
                    "nom": "etudiant",
                    "permissions": []
                  },
                  {
                    "nom": "bde",
                      "permissions": [
                      {
                        "nom": "CREER_EVENEMENT"
                      },
                      {
                        "nom": "SUPPRIMER_EVENEMENT"
                      }
                    ]
                  }
                ]
    post:
464d0189   Geoffrey PREUD'HOMME   Sécurité
210
      securedBy: [oauth_2_0]
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
211
212
213
214
215
216
217
218
219
220
221
222
223
224
      description: Ajoute un nouveau rôle
      queryParameters: 
        nom:
          type: string
          minLength: 3
          required: true
          example: bde
      responses: 
        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é
225
        securedBy: [oauth_2_0]
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
226
227
228
229
230
231
232
        description: Supprime un rôle
        responses: 
          204:
            description: Rôle supprimé
          404:
            description: Rôle inconnu
      post:
464d0189   Geoffrey PREUD'HOMME   Sécurité
233
        securedBy: [oauth_2_0]
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
234
235
236
237
238
239
240
241
242
243
244
245
246
        description: Ajoute une permission à un rôle
        queryParameters: 
          nom:
            type: string
            required: true
            minLength: 3
        responses: 
          201:
            description: Permission ajouté avec succès
          404:
            description: Permission ou rôle inconnu
      /{nomPermission}:
        delete:
464d0189   Geoffrey PREUD'HOMME   Sécurité
247
          securedBy: [oauth_2_0]
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
248
249
250
251
252
253
254
255
          description: Enlève la permission du rôle
          responses: 
            204:
              description: Permission enlevée avec succès
            404:
              description: Permission ou rôle inconnu
    /permission:
      get:
464d0189   Geoffrey PREUD'HOMME   Sécurité
256
        securedBy: [oauth_2_0]
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
257
258
259
260
261
262
263
264
265
266
267
268
269
270
        description: Liste les permissions
        responses:
          200:
            body:
              application/json:
                example: |
                  [
                    {
                      "nom": "CREER_EVENEMENT"
                    },
                    {
                      "nom": "SUPPRIMER_EVENEMENT"
                    }
                  ]