RFC 7231 suggerisce che una richiesta priva dell’intestazione Accept debba essere trattata come */*, ma chiamare l’endpoint POST dell’API per una query di Data Explorer senza tale intestazione restituisce 406 Not Acceptable. Non sono sicuro che questo sia specifico di Data Explorer o se si applichi anche ad altre richieste POST. Tutte le altre richieste GET che ho utilizzato non hanno presentato questo problema.
È il caso che curl e la libreria requests di Python aggiungano Accept: */* a tutte le loro richieste per impostazione predefinita, ma non tutti gli strumenti lo fanno. È possibile osservare questo comportamento disabilitando l’intestazione predefinita di curl con un’intestazione vuota, ad esempio:
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:"
Non è una questione grave, ma potrebbe essere un problema che colpisce anche altri strumenti… e sembra che possa essere una correzione semplice, soprattutto dato che tutti gli altri endpoint che ho utilizzato funzionano senza di essa.