cnumr/EcoIndex

Soucis au niveau des type de tests effectués - API - Verif content-type

DocRoms opened this issue · 3 comments

Ce soucis est un soucis API, il faut que l'on puisse vérifier le type mime du content-type de la ressource testée. Vu que nous ne souhaitons tester que des sites internet, il nous faut vérifier que le content type soit bien égal à text/html.

Idéalement, il faudrait renvoyer une erreur à intérpreter coté front, que nos users sachent que les APIs et les ressources CSS/JS ne peuvent pas être testé unitairement.

Discussed in #140

Originally posted by DocRoms September 17, 2022
@vvatelot m'a également transmis la liste du top 50 des sites testés sur ecoIndex v2, et j'ai pu constaté que nous avions la possibilité de tester non pas que des pages, mais aussi des ressources ou des pages API. Ainsi, si on teste une route API qui renvoie du JSON, ou un fichier CSS, on s'octroie un grade A, sans difficulté.
Ici il faut que l'on fasse deux vérifications :

  • la première coté FRONT, en testant le type d'URL et en vérifiant que l'on tente pas de tester une ressource (JS/CSS/PNG/...)
  • la seconde coté API, en testant le content-type que celui-ci retourne bien du text/html.

Les deux vérifications sont essentielles, la première va éviter de faire trop d'appels à l'API, la seconde valider le résultat.

Voilà la réponse proposée si la ressource analysée n'est pas une page html. L'API renverrait une 500 avec le contenu:

{
  "detail": {
    "args": [
      {
        "message": "This resource is not a standard page with mimeType 'text/html'"
      }
    ],
    "exception": "TypeError",
    "message": null
  }
}

OK ?

Finalement, il s'agira d'une erreur avec le code custom 520:

{
  "detail": {
    "mimetype": "text/css",
    "message": "This resource is not a standard page with mimeType 'text/html'"
  }
}
yaaax commented

Ca me parait plus simple :)