# Réponses

L'API répond aux requêtes **HTTPS POST** avec le contenu JSON. En cas de succès, le code d'état **est 200** et le contenu contient le résultat selon l'appel. Chaque réponse contient  le champ **message**. Ce champ décrit **la cause de l'erreur** ou **une information de succès.**

#### Exemple après une authentification réussie

Code : `200 OK`

```
 {
    "Dictionary": {
        "version": 1,
        "authorization": "all",
        "endValidity": "2022-07-16",
        "variety": "shiKomori",
        "entries": "10841/10841",
        "words": [
            ...
            ]
    },
    "message": "Votre licence expire le 2022-07-16. Vous disposez de 10841/10841 mots pour la suggestion automatique du clavier."
}
```

#### Exemple, lorsqu'il y a une erreur d'authentification

Code : `401 Unauthorized`

```
{
    "Dictionary": {
        "authorization": "none"
    },
    "message": "AUTH - L'identifiant ou mot de passe est incorrect!"
}
```

### Les codes d'erreur <a href="#reponses_derreur_cote_client" id="reponses_derreur_cote_client"></a>

* `400 Bad Request` - Cette erreur est renvoyée quand il y aune erreur de syntaxe dans la requête, ou qu'il manque un champ obligatoire.
* `401 Unauthorized` - Cette erreur est causée pendant l'authentification cliente, quand il y a des identifiants ou une clé API invalides, ou quand le client n'a pas de permission pour accéder au Endpoint.
* `403 Forbidden` - Cette erreur est renvoyée quand le client n'a pas les droits d'accès au contenu, donc le serveur refuse de donner la véritable réponse.
* `405 Method Not Allowed` -  Cette erreur est renvoyée quand la méthode n'est pas implémentée ou n'est pas autorisée  par le serveur.
* `408 Request Timeout` - Cette erreur est renvoyée quand il y a des requêtes lourdes qui prennent trop de temps à traiter (de l'ordre de dizaines de secondes).&#x20;
* `429 Too Many Requests` - Cette erreur est renvoyée quand l'utilisateur émet trop de requêtes dans un laps temps donné.
* `500 Internal Server Error` - Cette erreur est renvoyée quand le serveur rencontre une situation qu'il ne sait pas traiter.
