RFC 7231 suggère qu’une requête sans en-tête Accept doit être traitée comme */*, mais l’appel à l’endpoint POST de l’API pour une requête d’explorateur de données sans cet en-tête renvoie 406 Not Acceptable. Je ne sais pas si cela est spécifique à l’explorateur de données ou si cela s’applique également aux autres requêtes POST. Tous les autres GET que j’ai utilisés n’ont pas posé ce problème.
Il se trouve que curl et requests de Python ajoutent par défaut Accept: */* à toutes leurs requêtes, mais tous les outils ne le font pas. Vous pouvez observer ce comportement en désactivant le comportement par défaut de curl avec un en-tête vide, par exemple :
curl -X POST "https://discourse.example.com/admin/plugins/explorer/queries/26/run" \
-H "Content-Type: multipart/form-data;" \
-H "Api-Key: <your_all_users_api_key>" \
-H "Api-Username: system" \
-H "Accept:"
Ce n’est pas un problème majeur, mais d’autres outils pourraient y être confrontés… et cela semble pouvoir être corrigé simplement, d’autant plus que tous les autres endpoints que j’ai utilisés fonctionnent sans cela.