Crie uma REST API totalmente sem servidor com o MongoDB Atlas
Avalie esse Vídeo
00:00:00Introdução ao MongoDB sem servidor
Neuck Raboy euntroduces the concept of goeung serverless weuth MongoDB Atlas, heughleughteung the benefeuts of useung scalable, pay-as-you-go serveuces for bueuldeung serverless appleucateuons.00:01:47Configurando uma instância do banco de dados sem servidor
The veudeo gueudes veuewers through the process of createung a new MongoDB cluster, selecteung the serverless opteuon, and confeugureung the database eunstance.00:02:57criação de funções sem servidor e HTTPS endpoints
Neuck demonstrates how to create serverless functeuons weutheun MongoDB Atlas and how to set up HTTPS endpoeunts that act as an APeu Gateway for these functeuons.00:05:32Implantando e testando a função Criar
The tutoreual conteunues weuth deployeung the 'create person ' functeuon and testeung eut useung Postman to eunsert data eunto the serverless database.00:08:55Configurar uma função de recuperação
A new endpoeunt eus created for retreueveung data, and the 'get people ' functeuon eus set up and tested to ensure eut returns the correct data from the database.00:11:15Protegendo a API sem servidor
Neuck touches on secureuty aspects, such as euP access leusts and authenteucateuon mechaneusms, to control who can access the serverless APeu.00:14:00Conclusão e próximas etapas
The veudeo concludes weuth a summary of the steps taken to create a serverless appleucateuon weuth MongoDB Atlas and encourages veuewers to euntegrate these practeuces eunto theeur own workflows.00:18:57Considerações finais e chamada à ação
Neuck wraps up the tutoreual, eunveutes veuewers to leuke and subscreube to the channel, and teases future content.O foco principal do vídeo é demonstrar como construir um aplicativo sem servidor usando o MongoDB Atlas, incluindo a configuração de uma instância do banco de dados sem servidor, criando funções sem servidor e protegendo o aplicativo.
} Pontos-chave
- Introdução à criação de um aplicativo sem servidor com o MongoDB Atlas.
- Guia passo a passo sobre como configurar uma instância de banco de dados sem servidor.
- Explicação de funções sem servidor e HTTPS endpoints como um gateway de API .
- Demonstração da criação, implantação e teste de funções sem servidor para operações CRUD.
- Visão geral da proteção de APIs sem servidor com listas de acesso IP e mecanismos de autenticação.
Links relacionados
Transcrição completa do vídeo
0 oi, meu nome é Ricardo Raboy, e eu trabalho no MongoDB. Neste tutorial, Go ver como ficar totalmente sem servidor usando instâncias de banco de dados sem servidor do MongoDB Atlas , bem como Atlas HTTPS endpoints do MongoDB . vai estar implementando qualquer uma das nossas próprias infraestruturas queGo usar serviços de pagamento conforme o uso totalmente escaláveis para criar um aplicativo sem servidor, então totalmente sem servidor o que você precisará antes disso é que você precisará de um manifesto para ser a Atlas account e você precisará de pelo menos alguma familiaridade com JavaScript , tendo isso em mente o que você verá na minha tela é que você verá o MongoDB Atlas , e o que vamos fazer é criar um novo cluster MongoDB então vamos dizer criar agora, quando eu clicar nessa criação em vez de escolher dedicado ou compartilhado, Go em frente e clico em sem servidor, então isso nos permitirá criar uma instância de banco de dados sem servidor e, como eu disse, o que isso significa será que ela será dimensionada para atender à demanda do seu uso Go então, se você receber muito tráfego de intermitência ou tráfego imprevisível, isso pode ser muito válido para você e será pago à medida que for usado à medida que as solicitações são feitas é assim que sua conta se acumula e você pode ver os detalhes mais precisos disso dentro da documentação do MongoDB Alice, que está meio fora do escopo deste tutorial específico, então optei por sem servidor. 'm vai escolher minha região ou provedor de nuvem, então onde eu gostaria que ele fique e isso é por motivos de latência''','ll escolhido Amazon Web Services '''''Vou deixar o padrão como North Virginia e''ll continuar para baixo não preciso de nenhum backup específico porque este é um tutorial, então direi backup básico e rolaria para baixo e deixaria o nome padrão que você pode Go em frente e nomeie-o como faz mais sentido para você e eu direi para criar instância agora você' Aviso que minha instância sem servidor está sendo criada deve ser bem rápido, mas enquanto isso estiver funcionando, o que eu direi a fazer é clicar em Atlas App Services Então, nos Atlas App Services, é para aqui que vamos criar o componente de aplicativo sem servidor deste tutorial específico então acabamos de ver o componente de banco de dados que foi muito rápido e fácil de configurar foram apenas alguns cliques do mouse agora vamos criar nosso aplicativo sem servidor e isso vai incluir um um pouco de JavaScript e algumas funções sem servidor também chamadas de funções como serviço, então vamos clicar em criar um novo aplicativo, dar um nome a ele e deixar o nome como aplicativo zero realm o que você pode fazer muito mais do que apenas criar HTTPS endpoints que você possa realmente usar o GraphQL entre outras coisas que estão fora do escopo deste tutorial específico, portanto, vamos nos concentrar apenas em funções e pontos de conexão HTTPS endpoints , e esses pontos de HTTPS endpoints podem ser considerados um gateway de API então, por exemplo, você tem uma função e, para realmente acessar essa função por meio de um navegador da Web ou de uma solicitação HTTP , você criará um endpoint https para isso, então o que posso fazer é rolar para baixo vai clicar em HTTPS endpoints e não tenho endpoints no momento, então o que direi fazer é adicionar um endpoint ser capaz de acessá-los por meio de um navegador da Web, do Postman ou do código do meu aplicativo e Go dizer que este exemplo pessoas dados, então direi criar pessoa para que a pessoa shard será meu endpoint route it w Estarei habilitado isso aqui é o URL que poderei acessá-lo se estiver usando como eu disse Postman, posso fazer uma solicitação de busca em vez de um aplicativo JavaScript , no entanto, você considera adequado acessar este endpoint, está totalmente ativado para você, mas vamos deixar como está aqui está uma amostra de solicitação de curl para que possamos usar o método, pois planejamos criar dados. gostaria que ele respondesse com o resultado porque, se você deixar isso desativo e executar essa função por meio do endpoint, não receberá nada de volta, mas, por exemplo, talvez queira saber o ID dos dados criados, posso querer um sucesso resposta quem sabe eu preciso de um resultado, então vamos JSON -lo ao tipo de retorno. Você pode escolher JSON BSON ou usar JSON estendido, que incluiria propriedades . leia mais sobre o que a EJSON oferece Recomendamos que você confira o documento análise para isso, rolando para baixo temos nossa função então é aqui que nossa lógica real ocorre e é menos sobre o endpoint HTTP real em si, então é apenas uma lógica, então não temos nenhuma função no momento então o que estou fazendo dizer é que estou mudando de seleção para criar uma nova função podemos dar um nome a ela um isso depende totalmente de você como chamá-la por isso faz sentido dizer talvez criar uma pessoa porque estamos criando uma pessoa documento e este é uh o editor de função e podemos realmente deixá-lo ou podemos editá-lo aqui mesmo como padrão, role para baixo autorização, não vamos adicionar nenhuma autorização aqui, mas adicionaremos quando entrarmos no lado de função das coisas na outra área do aplicativo que mostro a você Vou continue rolando para baixo, não precisamos nos preocupar em buscar dados de usuário personalizados que não precisamos criar Usar os usuários na autenticação para este exemplo específico, mas dependendo do que você está fazendo, isso pode ser válido para você e para as necessidades do seu aplicativo, então salvarei o rascunho que direi a seguir e obtive e estou vai revisar o rascunho e o sistema, então quando rolar para baixo direi implantar e essa função para o qual o endpoint está pronto para Go se eu tentasse acessá-lo, significa que não fará muito porque está usando o código padrão, mas ainda deve funcionar, então agora o que direi fazer é navegar até a aba de funções no painel do Atlas App Services e é assim que posso acessar essas funções se optar por não modificá-las diretamente em a tela de HTTPS endpoints , então direi para criar uma pessoa e rolar para baixo. leia para que dessa forma nos resta apenas o próprio parâmetro do limite da função ou o corpo da função e isso é o que vamos adicionar ou lógica r então, para nossa lógica, digamos que queremos inserir um único documento para fazer isso podemos dizer algo como constante, podemos dizer result um e então podemos dizer context.services e podemos dizer que queremos que o Manga seja Atlas , queremos definir o banco de dados que queremos usar, então vamos dizer vamos Go e dar exemplos de que realmente não importa, então se seu banco de dados existir, ele será usado se não existir, será criado então você não precisa criar isso com Go , especialmente com uma instância sem servidor para a coleção em que eu preciso inserir esse documento. informações sobre uma pessoa, então faz sentido ter a coleção chamada pessoas e eu direi insira um então eu estou inserindo um único documento eu direi json.parse e vamos presumir que o usuário esteja passando em algum tipo de corpo da solicitação quando eles acessam esse endpoint https, então Go em frente e usar ex exatamente o que foi passado nesse corpo, então direi body.txt agora algo a observar que não estamos fazendo nenhum tipo de validação nesse endpoint ou função específica, então tudo o que o usuário passar, mesmo que não tenha nada a ver com pessoas dados serão inseridos independentemente porque a validação de dados e coisas assim a limpeza, o limpeza e o esgotamento não estão no escopo deste exemplo específico agora. então faz sentido eu direi retornar e direi resultados então ele retornará o que quer que essa operação de inserção retorne, ela será devolvida ao cliente que fez a solicitação, seja curl ou outra coisa Vou salvar o rascunho agora, se eu quisesse, poderia pegar esse rascunho de revisão e distribuir, mas ainda não terminamos Ainda preciso Go para as configurações dentro das configurações Preciso alterar a autenticação para essa função isso é diferente da autorização ção que vimos na tela anterior então os mecanismos de autenticação disponíveis para nós temos autenticação de aplicativo podemos usar o nível do sistema que é privilégio total se decidirmos que queremos trabalhar com usuários podemos ativar o ID do usuário ou podemos fazer algum tipo da autenticação baseada em script também. Escolherei o sistema porque, nesse exemplo específico, queremos mantê-lo simples e fácil de entender, mas eu definitivamente o encorajamos a verificar a documentação se quiser saber mais sobre o que você pode fazer quando isso trata de autenticação em seus aplicativos sem servidor um então eu aproveito essa caixa eu vamos rolar para baixo tudo parece bem não vamos nos preocupar com nenhuma regra de autorização específica para este exemplo Vou explicar mais sobre o que isso é até o final, mas por enquanto direi apenas para salvar o rascunho e depois revisá-lo e implementá-lo, estará implementando duas alterações diferentes que criei uma para o código da função real e outra para authe ticação, então direi implantação perfeita, então agora o que Go fazer é voltar ao lado do endpoint https das coisasVou clicar no endpoint específico, sendo este endpoint pós o que eu URL Indo para o Postman, que é uma ferramenta comum para testar as Go colar esse URL e direi que preciso fazer uma solicitação de publicação e, para o corpo dessa solicitação de publicação, para dizer bruto e vai ser JSON e Go em frente e adicionar algum corpo de solicitação então, por exemplo, eu gostaria de dizer que o primeiro nome vai ser Nuno, o sobrenome vai ser reBoy e Go em frente e dizer que o o nome de usuário vai ser Android Garçom, normalmente você teria coisas muito mais complicadas em seus documentos, mas isso é apenas um exemplo em que queremos mostrar que podemos criar este documento, então direi enviar você notará que o ID inserido fazia parte da resposta o que posso fazer é Go no meu navegador mais uma vez, vamos clicar nessa aba do Atlas para Go para a minha instância e direi procurar coleções você notará que tenho um banco de dados de exemplos que não tinha desde o início bem como uma coleção de pessoas, então ela foi criada e eu tenho este documento com um nome sobrenome nome de usuário e, em seguida, esse ID de objeto para nosso documento específico de modo que a operação de inserção realmente funcione agora Go criar outro endpoint para que o próximo endpoint será para recuperar dados e o processo será muito semelhante, então voltarei ao meu aplicativo zero, que seu nome pode ser diferente depende de você Go Go para os HTTPS endpoints vamos adicionar um endpoint então para este, se eu quiser obter dados, digamos que eu queira para obter todas as pessoas na minha coleção, então só direi isso de pessoas; as convenções de nomenclatura que você usa dependem totalmente de você um endpoint de obtenção para recuperar dados ele com certeza retornará um resultado que vamos deixar como JSON a autenticação será em apenas um momento a função Go em frente e crie uma nova função Go em frente e chamar este talvez consiga pessoas e Go em frente e trabalhe para realmente terminar esta função uh bem aqui na fila então mais uma vez eu vamos limpar as coisas só para ficar um pouco mais fácil você notará nos comentários que faz tem algumas coisas para começar, na verdade, o que posso fazer é deixar isso, então vamos sair que vamos remover todo o resto só por enquanto e vamos repreenchê-lo então vamos Go e dizer que isto é Doc em vez de doc, vamos dizer Docs plural uh Go em frente e fazer o mesmo ção que fizemos antes, então veja qual é o Manga que deve ser Atlas , o banco de dados vai ser exemplos A Coleção, vamos Go em frente e dizer que a coleção será de pessoas e, em vez de encontrar uma, vamos apenas fazer uma busca que obterá mais de um documento, se existir, e para o filtro, vamos apenas deixar colchetes vazios, o que significa que vamos filtrar todos os documentos, então vamos nós, praticamente, retornar todos os documentos na coleção e, finalmente, Go em frente e adicione os dois array para que assim não estejamos trabalhando com cursores e vamos retornar os resultados para que os resultados sejam retornar Docs e vamos deixar como está por enquanto ele será salvo quando pressionarmos o botão de salvar uh, Go descer e digamos que salva o rascunho, vamos revisar o rascunho e o sistema e só levará um segundo para distribuir ainda não terminamos ainda temos que Go para funções em que temos que clicar em para chamar pessoas, temos que alterar as configurações para que usemos onc sistema e novamente para que, dessa forma, não precisemos criar nenhum tipo de usuário ou qualquer tipo de regra especial e Go salvar o esquema perfeitamente. de volta aos HTTPS endpoints . clicar em obter. Copiei esse URL Go de ponto de conexão e voltarei ao Postman e colei-o em e mudo isso para se também for limpar este corpo porque na verdade não o estamos usando e se eu clicar em Enviar, você notará que ele retornou todos os nossos documentos neste caso era apenas um único documento, mas retornou na verdade, trabalho agora poderíamos criar outros endpoints para excluir ou atualizar o processo vai ser mais ou menos o mesmo, então só para repetir aqui o que fizemos antes de passarmos para o tipo de próxima etapa em alguns de as outras coisas que você pode fazer é criar dois endpoints esses endpoints usam Manga para serem endpoints Atlas HTTP do que atuam como um gateway de API para os que não têm servidor funções então essas são funções que dimensionam com base na demanda portanto, se você tiver uma alta carga de tráfego, essas funções serão dimensionadas para atender a essa demanda e você será cobrado adequadamente agora além de ter um aplicativo sem servidor também criamos uma instância de banco de dados sem servidor que foram apenas algumas etapas de apontar e clicar uh nada além disso, realmente poderíamos navegar por essa instância e fazer praticamente tudo o que pudermos com qualquer outro uh pré-provisionado agrupado aqui, mas este é dimensionado com base na demanda, então se você sabe que talvez você obtenha tráfego burst onde ele pode aumentar, isso pode economizar muito trabalho manual no sentido de realmente se preocupar com o dimensionamento e você poderá se beneficiar Go modelo de pagamento conforme o uso um agora uma coisa que eu disse que eu examinaria no final o que seria mais em torno da segurança, então a autenticação e a autorização há outras coisas também para apenas tocar na base em uh, mas não vamos explorá-la muito completamente aqui deixe-me Go para o aplicativo que Go API uh, a primeira Go Go as configurações do aplicativo e você poderá a lista de acesso IP e, em vez de permitir o acesso de qualquer lugar, talvez você adicione o intervalo IP da sua organização para que, dessa forma, talvez seja acessível apenas de forma privada a partir de pessoas dentro da sua organização, essa é uma maneira de proteger sua API então suas apis sem servidor no MongoDB Atlas como eu disse anteriormente há maneiras diferentes de autenticar para que você possa fazer a autenticação de senha por e-mail você pode fazer algum tipo de mídia social então autenticação você pode criar seus próprios gwts então essa pode ser uma camada adicional para a lista de acesso IP se você quisesse ou uma substituição dependendo do seu caso de uso então, neste caso, o usuário teria que autenticar antes de ter acesso às suas apis para que eles obtenham algum tipo de token agora o outro lado das coisas se eu quiser clicar em digamos, por exemplo, funções e vamos Go em frente e diga que a função de criação não importa, Go para as configurações se eu rolar para baixo até a parte de autorização o que você pode fazer é criar uma expressão JSON dentro do MongoDB Atlas e você pode bloquear determinados aspectos então, por exemplo, talvez você queira que apenas o usuário que se autenticou possa acessar seus próprios documentos ao fazer a solicitação HTTP para documentos onde seu usuário corresponde alguns critérios são totalmente verossímeis e você pode fazer isso muito facilmente no MongoDB Atlas para poder adicionar regras de autorização ao que pode ser acessado em comparação com as regras de autenticação, que são quem tem permissão para usar sua API em geral, várias coisas em termos de segurança quando trata-se de sua API sem servidor ou de repouso totalmente sem servidor, então, mais uma vez, este é um exemplo sem servidor banco de dados totalmente sem servidor aplicativo sem servidor fizemos isso bem rápido w com alguns cliques , muito pouco código , isso é algo que você pode começar a Youtube aos fluxos de trabalho de seu próprio aplicativo .