api.raml 3.64 KB
#%RAML 0.8
title: API d'Etunicorn
baseUri: https://etunicorn.plil.net/{version}/
version: v1

# Les codes 401 et 400 sont implicites
/login:
  post:
    description: Instancie une nouvelle connexion
    queryParameters:
      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:
            example: |
              {
                "token": "ooT6zahdura7vaethuiph1ugiph6co",
                "expire": 1485607703
              }
      401:
        description: Authentication échouée
  /{token}:
    delete:
      description: Se déconnecter
      responses: 
        204:
          description: Déconnecté avec succès
        404:
          description: Jeton non trouvé
/personne:
  get:
   description: Obtenir la liste des persones
   responses: 
     200:
       body:
          application/json:
            example: |
              [
               {
                  "id": 42,
                  "carte": "AAAAA",
                  "naissance": "1997-02-14",
                  "solde": 1337,
                  "login": "gbontoux"
                }
              ]
  /{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,
                  "login": "gbontoux"
                }
        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
      responses:
        202:
          description: Utilisateur modifié
          body:
            application/json:
              example: |
               {
                  "id": 42,
                  "carte": "AAAAA",
                  "naissance": "1997-02-14",
                  "solde": 1337,
                  "login": "gbontoux"
                }
        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
    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
    responses: 
      201:
        description: Personne ajoutée avec succès
        body:
          application/json:
            example: |
              {
                "id": 42
              }