No momento, trabalhava em uma API e queria apenas reunir opiniões sobre onde deveria estar o melhor lugar para transmitir a chave da API. Eu sei que não deve ir no URL, isso deixa o cabeçalho da solicitação ou o corpo da mensagem.
Se eu colocá-lo no cabeçalho, posso criar um método genérico para retirá-lo que possa ser usado em todos os serviços, no entanto, as especificações que me foram entregues o desejam no corpo (por exemplo, em uma string JSON incluída como parte de o objeto serializado no corpo do POST).
Respostas:
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 :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.
fonte