Pular para o conteúdo principalIntegrando o SendGrid a uma aplicação
Nosso aplicativo de exemplo é uma plataforma educacional on-line desenvolvida com o framework web Django em Python. Um PR foi aberto recentemente para integrar a API de e-mail do SendGrid à aplicação e, neste tutorial, vamos fazer com que o Devin crie sua própria implementação do SendGrid para demonstrar como ele pode funcionar com APIs de terceiros.
No nosso prompt, fornecemos algumas instruções específicas sobre como e onde queremos que o Devin integre nossos hooks do SendGrid, e pedimos para o Devin voltar para um hash de commit anterior, antes do PR acima ter sido mesclado, para nos dar um ponto de partida limpo para nossa integração. Acompanhe a sessão ao vivo do Devin aqui.
O Devin investiga a base de código e garante que não exista nenhuma implementação de e-mail conflitante já presente na aplicação.
Em seguida, ele passa a implementar a API do SendGrid e nos solicita as credenciais de API, que podemos configurar como Secrets no ambiente do Devin, para que ele possa acessá-las daqui em diante como variáveis de ambiente (ENV).
Agora que tem credenciais de API corretas, o Devin termina de implementar o SendGrid.
Ao comparar a implementação do SendGrid feita pelo Devin com o PR efetivamente mesclado ao qual vinculamos no início, observo algumas melhorias importantes:
- O Devin configurou o SendGrid em um novo módulo email.py, em vez de no mesmo arquivo da própria view. Ele também retorna True ou False para indicar se o envio de e-mail foi bem-sucedido com base no código de resposta do SendGrid.
- O Devin usa o módulo de logging nativo do Python em vez de print (que era um padrão que o revisor do PR comentou especificamente).
- O Devin também torna o endereço de e-mail do remetente (From) configurável em vez de fixo (hardcoded), mas adiciona um valor padrão caso a variável de ambiente (ENV) não exista.
- O Devin adiciona tratamento de exceções ao seu método mailInstructor.
Com a implementação principal concluída, posso pedir ao Devin para testar a aplicação adicionando uma conta de instrutor usando meu endereço de e-mail. Para testar a aplicação, ele também precisará instalar e configurar todas as dependências, como um servidor PostgreSQL e as bibliotecas Python relevantes.
Devin rapidamente encontra um erro, porque eu nunca forneci um endereço FROM para minha conta SendGrid. Devin chega a usar o Browser para acessar a documentação da API, descobrir o que está acontecendo e entender as mensagens de erro e as melhores práticas de implementação:
Posso voltar à caixa de diálogo Secrets e adicionar uma variável SENDGRID_FROM_EMAIL para o Devin usar.
Também instruo o Devin a usar o nome de usuário padrão do SendGrid, “apikey”, já que não configurei uma subconta para a API:
Devin observa que minhas solicitações e requisitos de implementação podem ser generalizados e me sugere adicionar Knowledge que possa utilizar no futuro:
Se preferir, você também pode editar o Knowledge para adicionar ainda mais detalhes, caso essas táticas sejam úteis em sessões futuras que sua equipe planeja realizar.
Após alguns minutos de configuração e preparação do ambiente, Devin conclui sua sessão com sucesso e vejo o e-mail na minha caixa de entrada. Eu não cheguei a configurar o modelo do SendGrid para ter conteúdo real, mas a requisição à API funciona e, com isso, o trabalho do Devin está concluído!
Se eu optar por enviar um PR, Devin já redigiu a mensagem para mim, incluindo detalhes de tudo o que foi alterado na aplicação e de como tudo funciona:
Cadastre-se hoje mesmo para experimentar o Devin e resolver aquela integração de API que está há tempos pendente no backlog da sua equipe.