2
respostas

[Dúvida] Como adaptar a Api para vários “Clientes”?

Durante a formação, desenvolvemos uma Api para uma escola, porém, me surgiu uma dúvida: Como poderíamos usar essa única Api para diferentes clientes, ou seja, para diferentes Escolas? Eu precisaria criar uma instância na AWS para cada escola? Teria uma forma mais otimizada? Eu conseguiria com uma única API acessar os bancos de dados de todas essas Escolas?

2 respostas

você conseguiria com uma única API acessar os bancos de dados de todas as escolas, mas essa definitivamente não é a melhor solução porque cada cliente pode usar um banco de dados diferente, ficaria muito dificil e inviavel manter esse sistema...

o ideal, quando vamos criar uma API que vai ser disponibilizada para diversos clientes, é criar uma API agnóstica, que todos possam utilizar sem que você se conecte no banco de dados de cada cliente...

um sistema de CEP por exemplo, qualquer API pode se conectar com esse sistema, você bate na api enviando CEP e ela te retorna o endereço...

ou um sistema de Antifraude, também é um bom exemplo, qualquer e-commerce pode se conectar com essa plataforma de antifraude durante validação do pagamento do cliente, mas o antifraude não precisa estar conectado com o banco de dados de todos os clientes que vão utiliza-lo

mas existem sistemas sim que você precisa se conectar com a base de cada cliente:

por exemplo um sistema que gera assinaturas de email no outlook, seria um produto que você acessa, desenha assinatura de email da sua empresa e clica em APLICAR, o sistema iria se conectar na base do outlook, pegar todos os emails da sua empresa e alterar a assinatura, como?

quando você fosse contratar esse serviço, a empresa iria configurar seu acesso na plataforma, pegar as credenciais do seu outlook e salvar essas configurações, tudo isso pra você conseguir gerar sua assinatura, seria mais ou menos assim:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

dessa forma eu consigo ter diversas empresas utilizando minha API, porque todas elas tem algo em comum: utilizam outlook

entao eu tenho uma base de dados com as credenciais de todos meus clientes para acessar o outlook deles e realizar alteração da assinatura

Entendi o seu argumento e sua solução, porém, não consegui encaixa-la na API de escola em que criamos nesta formação. Me resta assim, duas perguntas adicionais: Como eu poderia adaptar nossa API (usando o atual contexto da formação) para atender diferentes escolas? Haveria um outro método de criar um sistema para varias escolas diferentes, no qual, me permitiria usar diferentes interfaces (mobile, web, desktop) e centralizar a informação em um único sistema?

Além disso, o exemplo apresentado também poderia servir de base para minha pergunta: Haveria um banco de dados com as credenciais de cada cliente e cada credencial direciona para o banco de dado de cada escola, porém, como eu poderia modelar isso com Django e Django rest framework?