Desenvolvedor Frontend precisando de ajuda com seu primeiro Backend!
Sou desenvolvedor a 15 anos, sendo os últimos 6 anos especializado somente em tecnologias frontend. A última vez que mexi de verdade com backend foi a mais de 1 década com PHP, estou super desatualizado das novas tecnologias.
Recentemente, o mais moderno que desenvolvi, foi um Node.js com Typescript no Firebase Functions para tarefas simples e específicas. Em todos meus empregos, apenas consumia as APIs desenvolvidas por outros da equipe.
Agora estou desenvolvendo meu próprio produto, que envolve consumo de APIs de IAs percebi que preciso proteger minha API KEY através de um servidor que autentica com meu front. A questão é, que caminhos seguir? São tantas boas opções.
As APIs como da Open Ai parecem ter um bom suporte para Python, vejo muita gente utilizando em Python, os próprios exemplos da documentação são em Python. Também é fácil fazer o consumo através de REST APIs com Swagger? Autenticação com Front utilizando Firebase Auth que já utilizamos? Quais outras boas opções?
Agradeço a todos
Agora estou desenvolvendo meu próprio produto, que envolve consumo de APIs de IAs percebi que preciso proteger minha API KEY através de um servidor que autentica com meu front. A questão é, que caminhos seguir? São tantas boas opções.
O ideal é escolher algo que você já tem alguma familiaridade. Mas respondendo a pergunta de "como proteger minha API key": supondo que você vai usar um framework para desenvolver seu backend, seja Node, Laravel, Django, etc., você SEMPRE vai colocar suas chaves de API em um arquivo que armaneza as variáveis de ambiente.
Por exemplo, no Laravel existe um arquivo chamado .env
. Nesse arquivo existem muitas variáveis que determinam o comportamento do ambiente que a aplicação está rodando (local/produção). É comum e considerado boa prática você armazenar chaves de API nesse arquivo, pois ele não é acessível pelos usuários e não deve ser acessado diretamente pela URL.
Uma outra recomendação, e na verdade está mais para uma regra: nunca, em hipótese alguma, armazene suas chaves de API em um arquivo que será enviado ao repositório onde o seu código será hospedado (GitHub, etc.). A quantidade de chaves de API que vazam na web por causa dessa prática é inacreditável.
Happy codding!
Um opção simples, rápida e muito boa é com Laravel (PHP). Utilize Laravel Sanctum para fazer a autenticação da sua API por Bearer Token. O Laravel tem o artisan no terminal que te agiliza muito, é fácil de fazer requisição http etc.
Eu uso muito o Slim que é em PHP, https://www.slimframework.com/ , mas não sei te ajudar com as chaves, pois onde uso não é necessario. Ele é bem leve, com uma organização MVC super facil.