In HTTP, c'è un'intestazione Authorization
per quello.
Mentre di solito viene utilizzato per fornire le credenziali degli utenti, nel caso di un'API, può contenere l'ID del client e la chiave API corrispondente.
Ci sono diversi vantaggi:
-
Supporto da diversi framework. Molti framework prevedono Authorization
di intestazione per fare l'autenticazione. Non utilizzarlo costringerà a scrivere codice aggiuntivo per alimentare quei framework con valori personalizzati.
-
Supporto da diversi strumenti. Ad esempio CURL.
-
Meno "WTF dove trovo / inserisco questa chiave API ?!" dai nuovi sviluppatori che si uniscono al team (o agli sviluppatori che progettano nuovi client per la tua API).
-
Puoi quindi utilizzare le definizioni del codice di stato HTTP come 401 Unauthorized
, per cui :
The response MUST include a WWW-Authenticate header field [...] The client MAY repeat the request with a suitable Authorization header field.
Spostarlo nel corpo della richiesta può diventare rapidamente doloroso. La maggior parte dei framework e degli strumenti non rende molto semplice aggiungere un corpo a una richiesta, il che potrebbe rendere la tua API più difficile di quanto non sia necessario.