Travailler sur une API pour le moment et je voulais juste recueillir des opinions sur le meilleur endroit pour transmettre la clé API. Je sais que cela ne devrait pas aller dans l'URL, cela laisse l'en-tête de la demande ou le corps du message.
Si je le mets dans l'en-tête, je peux trouver une méthode générique pour le retirer qui peut être utilisée dans tous les services, mais la spécification que j'ai reçue le veut dans le corps (c'est-à-dire dans une chaîne JSON incluse dans le cadre de l'objet sérialisé dans le corps POST).
Réponses:
En HTTP, il y a un en-
Authorization
tête pour ça.Bien qu'il soit généralement utilisé pour fournir les informations d'identification des utilisateurs, dans le cas d'une API, il peut contenir l'ID du client et la clé d'API correspondante.
Il y a plusieurs avantages:
Prise en charge de différents cadres. De nombreux frameworks attendent un en-
Authorization
tête pour effectuer l'authentification. Ne pas l'utiliser forcera à écrire du code supplémentaire pour alimenter ces frameworks avec des valeurs personnalisées.Prise en charge de différents outils. Par exemple CURL.
Moins «WTF où trouver / mettre cette clé API?!» De la part de nouveaux développeurs se joignant à l'équipe (ou de développeurs concevant de nouveaux clients pour votre API).
Vous pouvez ensuite utiliser des définitions de code d'état HTTP telles que
401 Unauthorized
, pour lesquelles :Le déplacer vers le corps de la demande peut devenir rapidement douloureux. La plupart des frameworks et des outils ne rendent pas très simple l'ajout d'un corps à une requête, ce qui peut rendre votre API plus difficile qu'elle ne devrait l'être.
la source