No HTTP, existe um Authorization
cabeçalho para isso.
Embora geralmente seja usado para fornecer credenciais dos usuários, no caso de uma API, ele pode conter o ID do cliente e a chave da API correspondente.
Existem vários benefícios:
Suporte de diferentes estruturas. Muitas estruturas esperam Authorization
cabeçalho para fazer autenticação. O não uso forçará a gravação de código adicional para alimentar essas estruturas com valores personalizados.
Suporte de diferentes ferramentas. Por exemplo, CURL.
Menos “WTF onde eu encontro / coloco essa chave de API ?!” de novos desenvolvedores que se juntam à equipe (ou desenvolvedores que projetam novos clientes para sua API).
Você pode usar definições de código de status HTTP, como 401 Unauthorized
, para as quais :
A resposta DEVE incluir um campo de cabeçalho WWW-Authenticate [...] O cliente PODE repetir o pedido com um campo de cabeçalho de Autorização adequado.
Movê-lo para o corpo da solicitação pode se tornar rapidamente doloroso. A maioria das estruturas e ferramentas não torna muito simples adicionar um corpo a uma solicitação, o que pode tornar sua API mais difícil do que precisa.