Blame view

api.raml 5.9 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
  
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
6
  # Les codes 400 et 403 sont implicites
509e1d6e   Geoffrey PREUD'HOMME   API: Login
7
  /login:
b8824e3a   Geoffrey PREUD'HOMME   Avec le login, ce...
8
9
    post:
      description: Instancie une nouvelle connexion
90a48e21   Geoffrey PREUD'HOMME   Personnes
10
      queryParameters:
b8824e3a   Geoffrey PREUD'HOMME   Avec le login, ce...
11
12
13
14
15
16
17
18
19
20
21
22
23
        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
24
              example: |
b8824e3a   Geoffrey PREUD'HOMME   Avec le login, ce...
25
26
                {
                  "token": "ooT6zahdura7vaethuiph1ugiph6co",
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
27
28
29
30
31
32
33
34
35
36
                  "expire": 1485607703,
                  "role": "admin",
                  "permissions": [
                    {
                      "nom": "CREER_EVENEMENT"
                    },
                    {
                      "nom": "SUPPRIMER_EVENEMENT"
                    }
                  ]
b8824e3a   Geoffrey PREUD'HOMME   Avec le login, ce...
37
38
39
                }
        401:
          description: Authentication échouée
90a48e21   Geoffrey PREUD'HOMME   Personnes
40
41
42
43
44
45
46
47
    /{token}:
      delete:
        description: Se déconnecter
        responses: 
          204:
            description: Déconnecté avec succès
          404:
            description: Jeton non trouvé
ea2f57e1   Geoffrey PREUD'HOMME   Test API
48
  /personne:
509e1d6e   Geoffrey PREUD'HOMME   API: Login
49
50
51
52
53
54
    get:
     description: Obtenir la liste des persones
     responses: 
       200:
         body:
            application/json:
90a48e21   Geoffrey PREUD'HOMME   Personnes
55
              example: |
509e1d6e   Geoffrey PREUD'HOMME   API: Login
56
                [
90a48e21   Geoffrey PREUD'HOMME   Personnes
57
58
59
                 {
                    "id": 42,
                    "carte": "AAAAA",
509e1d6e   Geoffrey PREUD'HOMME   API: Login
60
61
                    "naissance": "1997-02-14",
                    "solde": 1337,
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
62
63
                    "login": "gbontoux",
                    "role": "etudiant"
509e1d6e   Geoffrey PREUD'HOMME   API: Login
64
65
                  }
                ]
90a48e21   Geoffrey PREUD'HOMME   Personnes
66
67
68
69
70
71
72
73
74
75
76
77
78
79
    /{idPersonne}:
      get:
        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
80
81
                    "login": "gbontoux",
                    "role": "etudiant"
90a48e21   Geoffrey PREUD'HOMME   Personnes
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
                  }
          404:
            description: Utilisateur non trouvé
      put:
        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
105
106
107
108
109
          role:
            displayName: Rôle
            type: string
            required: false
            example: etudiant
90a48e21   Geoffrey PREUD'HOMME   Personnes
110
111
112
        responses:
          202:
            description: Utilisateur modifié
90a48e21   Geoffrey PREUD'HOMME   Personnes
113
114
115
116
117
118
119
120
121
122
123
          404:
            description: Utilisateur non trouvé
      delete:
        description: Obtenir les infos sur une personne
        responses:
          204:
            description: Utilisateur supprimé
          404:
            description: Utilisateur non trouvé
    post:
      description: Ajoute une nouvelle personne
509e1d6e   Geoffrey PREUD'HOMME   API: Login
124
      queryParameters:
90a48e21   Geoffrey PREUD'HOMME   Personnes
125
        carte:
509e1d6e   Geoffrey PREUD'HOMME   API: Login
126
127
128
          displayName: ID de la carte NFC
          type: string
          required: false
90a48e21   Geoffrey PREUD'HOMME   Personnes
129
130
131
          minLength: 14
          maxLength: 14
          example: 39cdd9ed0b191d
509e1d6e   Geoffrey PREUD'HOMME   API: Login
132
133
        naissance:
          displayName: Date de naissance
90a48e21   Geoffrey PREUD'HOMME   Personnes
134
135
136
137
138
139
140
141
          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
142
143
144
145
146
147
        role:
          displayName: Rôle
          type: string
          required: true
          example: etudiant
          default: etudiant
90a48e21   Geoffrey PREUD'HOMME   Personnes
148
149
150
151
152
153
154
155
156
      responses: 
        201:
          description: Personne ajoutée avec succès
          body:
            application/json:
              example: |
                {
                  "id": 42
                }
377081e3   Geoffrey PREUD'HOMME   Rôles et permissions
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
  /role:
    get:
      description: Liste les rôles
      responses: 
        200:
          body: 
            application/json:
              example: |
                [
                  {
                    "nom": "etudiant",
                    "permissions": []
                  },
                  {
                    "nom": "bde",
                      "permissions": [
                      {
                        "nom": "CREER_EVENEMENT"
                      },
                      {
                        "nom": "SUPPRIMER_EVENEMENT"
                      }
                    ]
                  }
                ]
    post:
      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:
        description: Supprime un rôle
        responses: 
          204:
            description: Rôle supprimé
          404:
            description: Rôle inconnu
      post:
        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:
          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:
        description: Liste les permissions
        responses:
          200:
            body:
              application/json:
                example: |
                  [
                    {
                      "nom": "CREER_EVENEMENT"
                    },
                    {
                      "nom": "SUPPRIMER_EVENEMENT"
                    }
                  ]