Sto costruendo un'API che utilizzerà i token di accesso in modo da poter monitorare l'utilizzo tra i vari dipartimenti e il controllo degli accessi. Il mio piano è di utilizzare i verbi HTTP in modo appropriato - GET
recupererà le informazioni, POST
aggiungerà, DELETE
eliminerà, ecc.
La mia domanda è, come devo gestire i token di accesso sulle chiamate GET?
Opzione 1:
Fornisce il token di accesso come parte della stringa di query: /api/users/?token=ACCESSTOKEN
. Il problema che ho con questo è che ACCESSTOKEN appare nei log del server. Questo metodo sarà diverso dalle richieste POST o DELETE che hanno il token passato tramite il corpo.
Opzione due:
Fornisci un corpo alla richiesta (come fai in una richiesta POST
) e uno dei parametri è il token. Il mio problema qui è che altri sviluppatori della mia azienda mi stanno dicendo che questa non è una "vera richiesta GET" perché sto passando dei dati. L'url che chiamano appare semplicemente come /api/users/
e fornisce token=ACCESSTOKEN
nel corpo.
Opzione tre:
Elimina utilizzando GET
e imponi che tutto sia un POST
. Non mi piace questa idea perché per molte di queste chiamate API, non sto creando nuove risorse. Sto semplicemente restituendo dati che si trovano solo dietro un'API che richiede l'autorizzazione.
C'è un'opzione che mi manca o che dovrei affinare? Mi piace l'opzione 2, ma sono sensibile alle preoccupazioni degli altri sviluppatori del dipartimento.