Criando Aplicativo + IA profissional do zero - AULA 01 🔥

00:54:22
https://www.youtube.com/watch?v=A2yPW3ZSv_A

概要

TLDREn este video, aprenderás a crear un aplicativo móvil desde cero utilizando React Native y TypeScript, integrando la Inteligencia Artificial de Gemini AI para generar dietas personalizadas. El tutorial empieza con la configuración del entorno de desarrollo y la creación de una API con Node.js. A lo largo del video, se exploran conceptos como la creación de rutas, manejo de errores y pruebas de API. El objetivo principal es construir un aplicativo práctico y efectivo que pueda ser utilizado en producción. Además, se mencionan aspectos como la posibilidad de suscripciones y la personalización de la app para adaptarse a las necesidades del usuario.

収穫

  • 📱 Aprende a construir un aplicativo con React Native.
  • 🛠️ Configura tu entorno de desarrollo con Node.js y Expo.
  • 🔄 Integra la API de Gemini AI para generar dietas personalizadas.
  • 💻 Utiliza Fastify para construir tu backend.
  • 📊 Realiza pruebas de API con herramientas como Thunder Client.
  • 📦 Aprende sobre la importancia de TypeScript en el desarrollo.
  • 📝 Crea un aplicativo que permite la personalización de dietas.
  • 🔍 Mejora la experiencia del usuario con características adicionales.
  • 🛡️ Encuentra y soluciona errores durante el desarrollo.
  • 🚀 Prepárate para lanzar tu aplicativo en producción.

タイムライン

  • 00:00:00 - 00:05:00

    En este video, aprenderemos a construir una aplicación desde cero, utilizando inteligencia artificial con React Native. Comenzaremos desde el principio, gestionando todo el proceso y dominando las herramientas necesarias, incluyendo TypeScript, Expo Router y la IA de Gemini de Google, para crear una API que generará dietas personalizadas.

  • 00:05:00 - 00:10:00

    El aplicativo constará de una interfaz inicial donde el usuario podrá ingresar su nombre, peso, altura, edad y objetivos relacionados a su actividad física y sexos. Luego, al hacer clic en 'Generar dieta', la IA de Gemini generará una dieta específica basada en esa información, que podrá ser compartida o guardada.

  • 00:10:00 - 00:15:00

    Antes de comenzar a codificar, será importante preparar el entorno de desarrollo, asegurándonos de que tenemos installedo VS Code, NodeJS y también configurando un emulador de Android. Esto facilitará la prueba y ejecución de nuestra aplicación mientras la desarrollamos.

  • 00:15:00 - 00:20:00

    La siguiente etapa será crear la backend de nuestra aplicación. Usaremos Node.js para crear una API REST que permita comunicarse con la IA de Gemini y devolver resultados. Así, nuestro aplicativo podrá enviar datos y recibir una dieta generada.

  • 00:20:00 - 00:25:00

    Desarrollamos una estructura básica para la API, donde definiremos las rutas y cómo gestionar las peticiones. Las bibliotecas que se instalarán nos permitirán manejar las solicitudes y su respuesta de forma efectiva y escalable.

  • 00:25:00 - 00:30:00

    Continuamos creando archivos y carpetas organizativas para el backend, definiendo controladores y servicios que manejen la lógica de negocio. Es un enfoque limpio que ayuda a mantener el código manejable y modular.

  • 00:30:00 - 00:35:00

    En esta etapa, creamos las rutas que la API oirá, asegurando que puedan ser fácilmente probadas. Nos aseguramos de tener un controlador que reciba y procese las peticiones que creemos en la API.

  • 00:35:00 - 00:40:00

    Comenzamos a establecer un flujo de comunicación entre el backend y la API que está llamando a Google AI. Definimos qué información se debe enviar y cómo procesar esa información en el backend.

  • 00:40:00 - 00:45:00

    El código ahora puede recibir datos del cliente, invocar la inteligencia artificial y devolver el resultado al cliente. Al integrar Google AI, se trata de correctamente estructurar y gestionar las consultas emitidas a esta API.

  • 00:45:00 - 00:54:22

    Finalmente, los usuarios podrán interactuar con nuestra aplicación y, de una forma muy dinámica, recibir dietas personalizadas basadas en su información y preferencias. Así, el resultado es un sistema que integra todas las tecnologías mencionadas, permitiendo una experiencia completa desde la entrada de datos hasta la entrega de resultados.

もっと見る

マインドマップ

ビデオQ&A

  • Que ferramentas são necessárias para o projeto?

    Você vai precisar de Node.js, VS Code, Expo e React Native.

  • Como integraremos Inteligência Artificial no aplicativo?

    Usaremos a API do Gemini AI da Google para gerar dietas personalizadas.

  • Qual é o propósito do aplicativo que estamos construindo?

    Criar um gerador de dietas que permite aos usuários personalizar suas refeições com base nas suas informações.

  • Onde posso encontrar a documentação do Expo?

    A documentação do Expo pode ser encontrada no site oficial do Expo.

  • O que é Fastify?

    Fastify é uma framework de Node.js utilizada para construir APIs de maneira eficiente.

  • Como posso testar a API criada?

    Você pode usar ferramentas como Thunder Client para testar as rotas da API.

  • O que é TypeScript?

    TypeScript é um superset do JavaScript que adiciona tipagens estáticas ao código.

  • Como o aplicativo consumirá a API?

    O aplicativo fará requisições HTTP para a API usando métodos GET e POST.

  • Posso modificar o aplicativo para incluir funcionalidades adicionais?

    Sim, o aplicativo pode ser expandido para incluir assinatura e outras funcionalidades.

  • O projeto é feito para iniciantes?

    Sim, o tutorial é elaborado para pessoas que estão aprendendo a criar aplicativos do zero.

ビデオをもっと見る

AIを活用したYouTubeの無料動画要約に即アクセス!
字幕
pt
オートスクロール:
  • 00:00:00
    hoje você vai aprender e vai construir
  • 00:00:02
    do zero aí um aplicativo usando
  • 00:00:04
    inteligência artificial com o react
  • 00:00:06
    Native Então a gente vai aprender desde
  • 00:00:08
    o zero mesmo que você tá saindo do zero
  • 00:00:10
    aprendendo quer aprender a criar
  • 00:00:12
    aplicativos a gente vai dominar passo a
  • 00:00:14
    passo aí como criar o seu aplicativo com
  • 00:00:16
    react Native usando já o typescript
  • 00:00:19
    usando o Expo router usando também
  • 00:00:21
    Inteligência Artificial Então a gente
  • 00:00:23
    vai utilizar o Gemini ai da Google aí
  • 00:00:26
    para consumir né E vamos criar uma API
  • 00:00:28
    rat que consome a no Nossa Inteligência
  • 00:00:30
    Artificial do Gemini ai e a gente vai
  • 00:00:33
    então criar um aplicativo de gerador de
  • 00:00:35
    dietas que ficou sensacional e já
  • 00:00:37
    pensando e um projeto real que daria
  • 00:00:39
    para você modificar colocar para rodar
  • 00:00:40
    na loja ou até colocar assinatura dentro
  • 00:00:42
    desse app Então bora lá que vai ficar
  • 00:00:45
    sensacional esse projeto aqui a gente
  • 00:00:46
    vai construir desde zero passo a passo
  • 00:00:49
    não para você só fazer junto comigo e
  • 00:00:50
    para você aprender tudo que a gente tá
  • 00:00:52
    fazendo aqui bora lá então primeiro
  • 00:00:54
    antes da gente começar em código aqui
  • 00:00:55
    pra gente conhecer a primeira coisa que
  • 00:00:57
    a gente vai ver aqui é a o layout tá
  • 00:00:59
    essa essa logo aqui depois eu vou deixar
  • 00:01:01
    para vocês ou na descrição ou no link
  • 00:01:02
    aqui embaixo tá eu vou deixar para vocês
  • 00:01:04
    baixarem essa logo aí do nosso
  • 00:01:06
    aplicativo Então a gente vai ter uma
  • 00:01:07
    cara Inicial então a gente percebe aqui
  • 00:01:09
    que eu vou ter uma tela né a nossa home
  • 00:01:11
    duas duas de formulário então uma duas
  • 00:01:13
    ali dois steps mas a ali quando é gerado
  • 00:01:16
    a nossa dieta Então a gente tem a
  • 00:01:17
    inicial pro cara clicar em gerar dieta
  • 00:01:19
    ali por exemplo ele vai preencher os
  • 00:01:21
    dados como nome Deixa eu dar um zoom
  • 00:01:23
    aqui né para ficar melhor o nome o peso
  • 00:01:24
    atual a altura a idade depois ele vai
  • 00:01:26
    avançar para os objetivos né então qual
  • 00:01:29
    que é o seu nível de atividade física
  • 00:01:31
    qual que é também o seu objetivo e o seu
  • 00:01:33
    sexo ali e quando ele clicar em gerar
  • 00:01:35
    dieta a gente vai usar então a
  • 00:01:36
    inteligência artificial do Gemini ai
  • 00:01:39
    para então buscar uma e gerar uma dieta
  • 00:01:41
    aí com base nos dados que você me mandar
  • 00:01:43
    então a gente vai mandar para ele lá o
  • 00:01:45
    nome o sexo objetivo tudo isso e ele vai
  • 00:01:47
    me mandar então uma dieta com base no
  • 00:01:48
    prompt que a gente pedir também restrito
  • 00:01:50
    lá para ele gerar ele vai gerar dessa
  • 00:01:52
    forma aqui a gente vai poder
  • 00:01:53
    compartilhar com alguém mandar no
  • 00:01:55
    WhatsApp ou salvar ou gerar uma nova
  • 00:01:57
    então vai ficar sensacional Esse projeto
  • 00:01:58
    aí bora começar a primeira coisa eu não
  • 00:02:01
    vou repassar eu vou abrir aqui o meu o
  • 00:02:03
    meu vs code tá então eu já tô com vs
  • 00:02:05
    code aberto aqui e eu não criei o
  • 00:02:07
    projeto ainda a gente vai criar junto
  • 00:02:09
    Beleza deixa eu só diminuir aqui um
  • 00:02:10
    pouquinho Então baixa o best code a
  • 00:02:12
    gente vai usar o v code vamos usar
  • 00:02:13
    também o Expo o node JS então se você
  • 00:02:16
    não tem instalado vamos lá primeira
  • 00:02:18
    coisa aqui ó abrir aqui o nosso node JS
  • 00:02:20
    a documentação do Expo aqui do lado só
  • 00:02:22
    pra gente ter aqui também então o node
  • 00:02:23
    JS só você clicar nesse botãozinho aqui
  • 00:02:25
    ó LTS dá next next então se você tá no
  • 00:02:27
    Windows aí baixa aí o nodejs eu vou
  • 00:02:30
    deixar na descrição também para você
  • 00:02:32
    caso você nunca tenha criado um
  • 00:02:33
    aplicativo com Expo então o que que você
  • 00:02:35
    precisa baixar e o que que você precisa
  • 00:02:37
    configurar para ter um emulador tá então
  • 00:02:39
    vou deixar na descrição se você nunca
  • 00:02:40
    configurou nunca criou um aplicativo com
  • 00:02:42
    Expo você vai lá configura o seu
  • 00:02:44
    ambiente a gente mostra lá no videozinho
  • 00:02:46
    depois você volta aqui pra aula sem
  • 00:02:47
    nenhum problema só pra gente não enrolar
  • 00:02:49
    e deixar aqui muito grande né esse vídeo
  • 00:02:50
    aqui então bora lá instalado aí fez isso
  • 00:02:53
    aí também tem o seu emulador deixa eu
  • 00:02:55
    até abrir o meu emulador também que eu
  • 00:02:56
    não abri você pode rodar no seu emulador
  • 00:02:58
    pode rodar direto né se você tá usando
  • 00:02:59
    usando Expo como a gente vai usar direto
  • 00:03:01
    no seu celular também sem nenhum
  • 00:03:03
    problema deixa eu abrir que eu vou usar
  • 00:03:04
    no emulador para mostrar para vocês aqui
  • 00:03:06
    né Então deixa eu abrir aqui o meu Pixel
  • 00:03:08
    3 que eu tô utilizando então tô
  • 00:03:09
    utilizando o Pixel 3 tô utilizando o
  • 00:03:11
    Android 11r tá então se você for criar
  • 00:03:14
    um emulador novo eu tô usando esse aqui
  • 00:03:15
    ó deixa ele só abrir aqui que eu vou
  • 00:03:17
    mostrar para vocês também deixa eu
  • 00:03:18
    fechar aqui que é a demonstração vou
  • 00:03:21
    abrir aqui novamente e aí é só você vir
  • 00:03:22
    aqui ó mais eu tô usando aqui ó o Pixel
  • 00:03:25
    3 tá cadê o Pixel 3 aqui ó com o símbolo
  • 00:03:28
    do Play Store se você D next aqui ó eu
  • 00:03:30
    tô usando também a api do Android R que
  • 00:03:33
    é essa api 30 que tem esse Google Play
  • 00:03:36
    do lado aqui tá então ó Google Play
  • 00:03:38
    Então é só criar um emulador aí se você
  • 00:03:39
    quiser um igual ao meu tá então tô
  • 00:03:41
    usando esse aqui Maravilha e já tá aqui
  • 00:03:43
    show de bola Vamos criar o nosso projeto
  • 00:03:45
    então primeira coisa antes da gente
  • 00:03:46
    criar o nosso aplicativo a gente precisa
  • 00:03:49
    ter uma API para poder consumir essa api
  • 00:03:52
    dentro do aplicativo que essa api que é
  • 00:03:55
    responsável por comunicar com a nossa
  • 00:03:57
    Inteligência Artificial que é a do ai
  • 00:04:00
    então a gente vai ter um backend ou seja
  • 00:04:01
    um serviço esse backend vai ter as rotas
  • 00:04:04
    por exemplo para gerar uma dieta e a
  • 00:04:05
    gente vai consumir esse backend dentro
  • 00:04:08
    do nosso aplicativo então o aplicativo
  • 00:04:10
    conversa com o nosso backend o backend
  • 00:04:12
    conversa com a ia a ia devolve e a gente
  • 00:04:14
    manda de volta pro aplicativo
  • 00:04:16
    basicamente O fluxo vai ser esse Então
  • 00:04:18
    antes da gente começar a parte visual do
  • 00:04:20
    aplicativo a gente precisa desse backend
  • 00:04:22
    da do nosso serviço para poder consumir
  • 00:04:24
    vamos lá então para isso você já tem o
  • 00:04:26
    node JS instalado vamos criar o projeto
  • 00:04:28
    vou abrir minha pasta tá então Então
  • 00:04:29
    minha pasta eu quero criar ela aqui eu
  • 00:04:31
    vou criar aqui uma nova pastinha aqui
  • 00:04:33
    dentro eu vou chamar aqui de backend tá
  • 00:04:35
    vou abrir essa pasta e vou abrir ela no
  • 00:04:37
    cmd Então deixa eu abrir o CMD você pode
  • 00:04:39
    fazer esse hazin se você tá no Windows
  • 00:04:41
    10 ou Windows 11 Ó você pode clicar aqui
  • 00:04:43
    em cima dentro da pasta digita CMD e Dá
  • 00:04:45
    um enter que ele já vai abrir ó o CMD
  • 00:04:47
    dentro dessa pasta aqui beleza então
  • 00:04:49
    cria uma pasta navega dentro do CMD até
  • 00:04:52
    essa pasta e aí a gente roda npm init
  • 00:04:55
    menos y aqui para ele criar a estrutura
  • 00:04:57
    do node JS pra gente criar a nossa API
  • 00:05:00
    com o node JS Então feito isso Ó eu vou
  • 00:05:03
    até dar um code espaço ponto ou você
  • 00:05:05
    pode deixa eu até para ficar melhor para
  • 00:05:06
    vocês ó vem no seu vs
  • 00:05:09
    code vai aqui em file Open folder né
  • 00:05:12
    para abrir uma pastinha backend
  • 00:05:14
    selecionar pasta então a gente abre aí e
  • 00:05:16
    já tem nosso arquivo package.js Deixa eu
  • 00:05:19
    só dar um Yes aqui e maravilha então o
  • 00:05:21
    primeiro passo que a gente vai fazer é a
  • 00:05:23
    gente vai utilizar algumas bibliotecas
  • 00:05:25
    para poder criar aí a nossa api tá então
  • 00:05:28
    a gente vai utilizar aqui ó deixa eu
  • 00:05:29
    tirar para não atrapalhar vou voltar
  • 00:05:30
    aqui no meu CMD e a gente vai instalar
  • 00:05:32
    algumas bibliotecas usando aí o npm para
  • 00:05:35
    poder criar a nossa api então npm
  • 00:05:38
    install eu vou instalar aqui o nosso
  • 00:05:40
    corse vou instalar também o fastify e
  • 00:05:44
    vou instalar o tsx e o demp também tá
  • 00:05:48
    vou instalar essas bibliotecas aí
  • 00:05:50
    maravilha deixa ele instalar aí vou
  • 00:05:51
    instalar também um npm install traç
  • 00:05:54
    traço save traço Dev e a gente vai
  • 00:05:57
    instalar aqui o @types barc e eu vou
  • 00:06:00
    instalar também o typescript como
  • 00:06:02
    dependência aqui de desenvolvimento
  • 00:06:03
    Então se a gente olhar dentro do package
  • 00:06:05
    Jason a gente já tem a dependência aqui
  • 00:06:06
    do course d fastify tsx o nosso Type as
  • 00:06:11
    tipagens desse cor o próprio typescript
  • 00:06:14
    e também falta né a gente instalar já
  • 00:06:16
    que a gente tá usando fastify a gente
  • 00:06:18
    pode instalar também npm Opa npm install
  • 00:06:21
    @
  • 00:06:22
    fastify barra cores aqui tá Já já eu vou
  • 00:06:26
    te mostrar e a gente vai entender o que
  • 00:06:27
    que é cada coisa que a gente instala
  • 00:06:29
    aqui tá Fica tranquilo então aqui a
  • 00:06:31
    gente tá instalando as dependências para
  • 00:06:33
    poder rodar o nosso projeto agora vamos
  • 00:06:35
    criar a estrutura padrão dessa nossa api
  • 00:06:37
    então aqui dentro eu vou criar uma
  • 00:06:38
    pastinha chamada src dentro dessa
  • 00:06:41
    pastinha aqui eu vou criar aqui o nosso
  • 00:06:43
    arquivo New file vou chamar aqui de
  • 00:06:46
    server.ts e vou criar um arquivo também
  • 00:06:48
    chamado New file h. TS Então dentro do
  • 00:06:51
    nosso server aqui vai ser o arquivo que
  • 00:06:53
    vai rodar quando a gente rodar essa
  • 00:06:55
    nossa api então aqui dentro eu vou
  • 00:06:56
    importar o fastify colocar com f Mac
  • 00:06:59
    aqui tá fash fy Vou importar também o
  • 00:07:02
    course cor from vamos usar até o nosso
  • 00:07:05
    @f fy barc Vou importar Nossa D
  • 00:07:09
    DV
  • 00:07:11
    pr. tá que a gente Opa que a gente vai
  • 00:07:13
    ter variáveis ambiente já já vou
  • 00:07:16
    importar aqui também e vou criar nosso
  • 00:07:18
    app igual a fastify abre o parênteses
  • 00:07:21
    vou dar aqui um logger Opa logger como
  • 00:07:24
    true fastify é a biblioteca que a gente
  • 00:07:26
    vai utilizar para ter o roteamento
  • 00:07:28
    basicamente pra gente construir né aí
  • 00:07:30
    uma API rest Então a gente vai usar o
  • 00:07:32
    fast fy então aqui eu tô inicializando
  • 00:07:34
    ele e pegando através dessa variável app
  • 00:07:36
    E aí então eu posso utilizar vou chamar
  • 00:07:38
    aqui o d. config pra gente inicializar
  • 00:07:41
    aqui se a gente tiver alguma variável
  • 00:07:43
    ambiente
  • 00:07:44
    app.set error handler então caso a gente
  • 00:07:47
    tenha alguma algum erro na nossa api eu
  • 00:07:49
    recebo uma função anônima aqui e a gente
  • 00:07:51
    vai fazer o quê mostrar esse erro né
  • 00:07:53
    então aqui eu posso receber o error e
  • 00:07:55
    vou pegar aqui vírgula recebo também o
  • 00:07:57
    request da requisição se a gente quiser
  • 00:07:59
    acessar e o reply que é aqui vai
  • 00:08:01
    devolver pro front end quem vai devolver
  • 00:08:03
    para quem tá chamando essa rota que deu
  • 00:08:05
    erro e aí então a gente pode fazer o quê
  • 00:08:06
    Vou dar um reply pon code 400 por
  • 00:08:09
    exemplo vou vou só tratar ele aqui ponto
  • 00:08:11
    send e eu vou mandar em Jason e uma
  • 00:08:14
    propriedade chamada Message com o erro
  • 00:08:17
    da mensagem então error pon message tá
  • 00:08:20
    então caso dê alguma requisição errada o
  • 00:08:22
    cara T fazer alguma requisição de falha
  • 00:08:24
    a gente vai devolver esse status aqui de
  • 00:08:26
    400 e vai devolver a mensagem de erro
  • 00:08:28
    pra gente pegar né E pra gente ver esse
  • 00:08:29
    erro aí beleza agora depois disso a
  • 00:08:32
    gente precisa inicializar aí o nosso
  • 00:08:34
    servidor então conch start igual a a
  • 00:08:38
    precisamos usar como uma função
  • 00:08:40
    assíncrona aqui dentro então a gente
  • 00:08:42
    chama né aqui fora a nossa função start
  • 00:08:44
    e dentro dela a gente roda qual que é a
  • 00:08:47
    porta que a gente quer rodar as rotas
  • 00:08:49
    que a gente vai ter na pi então a gente
  • 00:08:52
    criou um
  • 00:08:58
    arquivozilla ftif e eu vou trazer aqui
  • 00:09:00
    vou dar até um enter o fastify instance
  • 00:09:03
    vou trazer também O fastify fastify
  • 00:09:06
    plugin options vou trazer esse cara
  • 00:09:08
    também e vou trazer também o festify
  • 00:09:12
    request e o festify reply Beleza então
  • 00:09:17
    agora a gente pode criar nossa rota
  • 00:09:18
    então Export assn function
  • 00:09:22
    H Maravilha e aí aqui dentro então a
  • 00:09:25
    gente vai ter as nossas rotas Então essa
  • 00:09:27
    função aqui a gente vai chamar lá no
  • 00:09:29
    nosso arquivo server e aqui então a
  • 00:09:31
    gente vai receber dois parâmetros que é
  • 00:09:33
    o fastify que eu vou chamar que ele é do
  • 00:09:35
    tipo fastify instance que é o próprio
  • 00:09:37
    fastify pra gente ter as rotas e vírgula
  • 00:09:39
    a gente vai ter também o options que
  • 00:09:41
    caso a gente queira utilizar que é do
  • 00:09:43
    tipo fastify plugin options Beleza então
  • 00:09:45
    a gente vai receber esses dois caras e
  • 00:09:47
    agora como a gente tá recebendo a
  • 00:09:48
    Instância ou seja nosso servidor fastify
  • 00:09:50
    aqui eu quero acessar ele aqui então
  • 00:09:52
    fastfire ffy ponto e aí eu posso criar
  • 00:09:55
    rota por exemplo do tipo get eu quero
  • 00:09:57
    que seja barra teste por exemplo pra
  • 00:09:59
    gente fazer um teste aqui ó abro uma
  • 00:10:01
    função anônima aqui dentro a gente
  • 00:10:03
    recebe dois caras que é o request que é
  • 00:10:05
    a requisição dois pontos fastify request
  • 00:10:08
    que é o tipo dela tá pra gente poder ter
  • 00:10:10
    acesso a tudo então se eu acessar o
  • 00:10:12
    request ponto Olha lá ele já sabe tudo
  • 00:10:14
    que é e também a gente tem um outro né
  • 00:10:16
    vírgula que é o reply que a gente chama
  • 00:10:18
    né que é onde a gente pode devolver algo
  • 00:10:20
    pro front end para quem tá consumindo
  • 00:10:22
    essa api dois pontos que ela é do tipo
  • 00:10:24
    fastify reply que a gente importou aqui
  • 00:10:26
    também e agora dentro da Rota a gente
  • 00:10:28
    pode fazer o que eu quiser quiser vou
  • 00:10:29
    dar aqui um console pon log rota chamada
  • 00:10:32
    só pra gente ver e eu vou dar aqui o
  • 00:10:34
    nosso reply por exemplo é ponto send tá
  • 00:10:38
    e eu vou dar aqui um ok true né só pra
  • 00:10:41
    gente ver que a rota tá funcionando
  • 00:10:43
    salvei aqui então a gente criou um
  • 00:10:45
    arquivo de HS que quem usar ele tem que
  • 00:10:47
    me fornecer o flashfire instance e esse
  • 00:10:49
    options aqui E aí aqui dentro a gente
  • 00:10:51
    tem a nossa rota do tipo get que é barra
  • 00:10:53
    teste né e agora lá no nosso arquivo
  • 00:10:55
    server a gente pode então usar ela aqui
  • 00:10:57
    dentro da função de startar o servidor
  • 00:10:59
    então eu vou importar ela aqui ó ponto
  • 00:11:03
    barra o routs e a gente vai trazer ó
  • 00:11:06
    nossa função zinha de houts Então como a
  • 00:11:08
    gente deu Export assn function sal o
  • 00:11:11
    arquivo aí né a gente vai importar
  • 00:11:13
    dentro de Chaves tá então agora aqui
  • 00:11:15
    dentro a gente vai chamar ele para ser
  • 00:11:17
    executado Então vou carregar as minhas
  • 00:11:19
    rotas então app lembra que o app é o
  • 00:11:21
    nosso ffy ó app a Gente Tá acessando o
  • 00:11:23
    fash fy então app. register eu vou
  • 00:11:27
    registrar aqui o corse porque é que eu
  • 00:11:28
    quero deixar já liberado né o URL para
  • 00:11:31
    qualquer um que conseguir de qualquer IP
  • 00:11:33
    fazer requisição dentro dessa nossa pia
  • 00:11:35
    eu não quero limitar uma url ou algum IP
  • 00:11:37
    tá vou deixar liberado aqui então dessa
  • 00:11:39
    forma a gente deixa liberado todo mundo
  • 00:11:41
    conseguir e também vou registrar o nosso
  • 00:11:42
    app. register aqui a nossas rotas que a
  • 00:11:46
    gente importou aqui ó houts então eu
  • 00:11:48
    passo aqui o nosso houts Então dessa
  • 00:11:49
    forma ó a gente já tá registrando cor
  • 00:11:52
    registrando as rotas e agora é só subir
  • 00:11:54
    o servidor na porta que eu desejo Então
  • 00:11:56
    como ele é assíncrono eu vou abrir aqui
  • 00:11:58
    um tricat só só pra gente garantir
  • 00:12:00
    porque caso Crash né o nosso servidor a
  • 00:12:02
    gente pode ver o erro então caso caia no
  • 00:12:03
    no catch vou dar um error aqui e vou dar
  • 00:12:05
    aqui um console pon log vou dar aqui um
  • 00:12:07
    erro aqui tá pra gente ver tá E também
  • 00:12:10
    aqui em cima no try a gente vai então
  • 00:12:11
    tentar inicializar o nosso servidor
  • 00:12:14
    então await para esperar o nosso app.
  • 00:12:17
    Listen e aqui eu passo qual que é a
  • 00:12:19
    porta que eu quero eu vou passar aqui
  • 00:12:20
    dentro de Chaves a nossa port 3 3 33
  • 00:12:24
    vírgula e eu vou passar aqui também o
  • 00:12:26
    host dois pontos eu vou passar aqui
  • 00:12:28
    dentro de as
  • 00:12:29
    0.0.0 p0 tá então a gente vai passar
  • 00:12:32
    dessa forma aqui que vai ser o nosso
  • 00:12:34
    local roster que ele vai ser Por
  • 00:12:35
    enquanto né nossa máquina tá depois
  • 00:12:37
    disso eu vou colocar até um console pon
  • 00:12:39
    log aqui ó só para vocês terem tá
  • 00:12:41
    colocar aqui uma asinhas deitadas tá é
  • 00:12:43
    vou colocar servidor rodando no http
  • 00:12:47
    dois pontos barra barra local host dois
  • 00:12:50
    pontos e aí a porta que a gente colocou
  • 00:12:51
    Vou colocar até a variável aqui ó ou vou
  • 00:12:53
    colocar direto ó 3 3 3 3 beleza salvamos
  • 00:12:56
    aqui e vamos testar então a gente criou
  • 00:12:58
    ó a nosso arquivo de server que é o
  • 00:13:00
    arquivo que a gente vai rodar quando a
  • 00:13:02
    gente chamar Nossa aplicação esse cara
  • 00:13:04
    vai registrar o c vai registrar nosso
  • 00:13:06
    arquivo de HS que por enquanto a gente
  • 00:13:07
    só tem uma rota de teste Maravilha e
  • 00:13:09
    também aqui no nosso arquivo package a
  • 00:13:11
    gente tem um carinha chamado scripts e
  • 00:13:14
    dentro de scripts a gente pode ter
  • 00:13:15
    script de teste é de Build de linting
  • 00:13:18
    então no nosso caso a gente vai ter por
  • 00:13:19
    enquanto um script que é para rodar a
  • 00:13:21
    aplicação Então vou chamar ela aqui de
  • 00:13:23
    Dev tá E vou tirar aqui ó vamos criar o
  • 00:13:25
    nosso script Então como é que a gente
  • 00:13:27
    pode rodar como a gente instalou aqui
  • 00:13:29
    dentro uma dependência né uma biblioteca
  • 00:13:31
    chamada tsx que basicamente é pra gente
  • 00:13:34
    rodar aí a nossa aplicação né como o
  • 00:13:36
    typescript ele é feito pra gente rodar
  • 00:13:37
    em desenvolvimento quando a gente sobe
  • 00:13:39
    pra produção a gente faz o build né ele
  • 00:13:41
    torna um JavaScript Então nesse caso eu
  • 00:13:43
    quero rodar a nossa aplicação como a
  • 00:13:45
    gente tá usando o typescript eu vou usar
  • 00:13:47
    essa biblioteca auxiliar aqui o tsx para
  • 00:13:49
    rodar a nossa aplicação então para isso
  • 00:13:51
    ó deixa eu Minimizar aqui para não
  • 00:13:52
    atrapalhar a gente vai usar um comando
  • 00:13:54
    aqui com o nosso tsx então tsx opa tsx
  • 00:14:00
    watch src que é onde a gente criou a
  • 00:14:02
    gente criou uma pastinha chamada src
  • 00:14:04
    então src barra e dentro a gente tem a
  • 00:14:06
    nossa nosso arquivo então bar server.ts
  • 00:14:10
    beleza vamos salvar pra gente testar
  • 00:14:11
    isso aqui então salvei vamos voltar no
  • 00:14:14
    nosso CMD que tá a pasta aqui do nosso
  • 00:14:16
    projeto ó tô na pasta backend então tô
  • 00:14:18
    dentro da pasta do nosso projeto e eu
  • 00:14:19
    vou rodar então npm Run e qual que é o
  • 00:14:22
    nome do script chamei de Dev então npm
  • 00:14:24
    Run espaço Dev vou dar um enter aqui e
  • 00:14:27
    olha lá que legal ele mostra aqui tá
  • 00:14:29
    rodando ele fala olha servidor rodando
  • 00:14:30
    no http dois pontos local host 3000
  • 00:14:33
    vamos testar Então vou até copiar aqui
  • 00:14:36
    vamos lá local host 3333 e eu dei o nome
  • 00:14:40
    da rota de barra teste né vou dar um
  • 00:14:42
    enter aqui ó e olha que sensacional ele
  • 00:14:44
    já devolveu pra gente um ok true ou seja
  • 00:14:47
    tá funcionando e também quando alguém
  • 00:14:49
    acessar essa rota a gente colocou aqui
  • 00:14:52
    que ele tem que mandar um console né
  • 00:14:53
    então se a gente olhar aqui cadê o meu
  • 00:14:55
    console aqui ó rota chamada tá então já
  • 00:14:58
    tá mostrando aqui então então a gente já
  • 00:14:59
    criou nossa primeira rota da api que a
  • 00:15:02
    gente desenvolveu aqui legal qual que é
  • 00:15:04
    o próximo passo Então se a gente olhar
  • 00:15:05
    aqui eu até deixei um guzinho né então a
  • 00:15:07
    gente vai criar nossa nosso backend com
  • 00:15:09
    nodejs agora a gente precisa configurar
  • 00:15:11
    a api da Ia do jemne ai né então lá do
  • 00:15:14
    Google né que é é a inteligência
  • 00:15:16
    artificial do Google para a gente
  • 00:15:18
    configurar ela para depois conseguir
  • 00:15:19
    utilizar no aplicativo senão a gente não
  • 00:15:21
    vai conseguir ter as funcionalidades do
  • 00:15:23
    aplicativo tá então criamos a payr agora
  • 00:15:27
    vamos configurar a nossa chave lá da api
  • 00:15:29
    Então vamos lá vou abrir aqui maravilha
  • 00:15:32
    eu vou vi fazer o login né fazer um
  • 00:15:34
    login com ela acho que com essa aqui eu
  • 00:15:36
    nunca criei né a gente cria do zero show
  • 00:15:37
    de bola agora que eu loguei eu vou
  • 00:15:39
    clicar aqui ó get api Key do Google ai
  • 00:15:42
    Studio tá eu acho que eu não tenho Deixa
  • 00:15:44
    eu ver se eu já tenho aqui ah eu criei
  • 00:15:45
    Ah eu criei hoje né então não usei ainda
  • 00:15:47
    então você pode clicar aqui ó criar
  • 00:15:49
    chave de api clicou aqui maravilha se
  • 00:15:51
    você já tiver algum projeto é que você
  • 00:15:54
    já usou do Google Cloud só você clicar e
  • 00:15:55
    selecionar aqui senão ele vai ter um
  • 00:15:57
    botãozinho bem aqui em cima assim ó mais
  • 00:15:58
    ou menos aqui ó eh gerar chave api você
  • 00:16:01
    só clica ali se você nunca clicou clica
  • 00:16:03
    ali ele vai gerar e vai te dar a sua
  • 00:16:04
    chave tá E aí para você pegar deixa eu
  • 00:16:06
    ver se eu consigo copiar ó vou copiar
  • 00:16:08
    minha chave aqui Copie a sua chave e
  • 00:16:10
    agora volta lá pro nosso projeto a gente
  • 00:16:12
    vai vir aqui no nosso projeto Vamos
  • 00:16:13
    criar um arquiv inho aqui ó e na rota
  • 00:16:16
    raiz do projeto aqui ó fora New file vou
  • 00:16:19
    chamar aqui de ponto env tá e eu vou
  • 00:16:21
    chamar aqui ele tá a gente pode dar um
  • 00:16:23
    nome aqui que vai ser a nossa chave
  • 00:16:24
    então api underline Key igual e eu vou
  • 00:16:27
    dar aqui minha api ke não não clicou não
  • 00:16:29
    gerou ela né então acho que eu vou ter
  • 00:16:31
    que gerar outra vou gerar outra aqui
  • 00:16:32
    deixa eu gerar outra chave aqui clicar
  • 00:16:34
    aqui ó seleciona gerar
  • 00:16:37
    Chave Vou gerar uma nova aqui que é mais
  • 00:16:39
    fácil agora sim copiar aqui
  • 00:16:42
    beleza vou colocar aqui minha chave
  • 00:16:45
    Agora sim salvei aqui então vou até
  • 00:16:48
    colocar um hashtag aqui ó api gemine ai
  • 00:16:51
    tá colocar aqui ou do Google Tanto faz
  • 00:16:53
    você pode colocar aí então aqui vai ser
  • 00:16:55
    a nossa chave você tem a chave de vocês
  • 00:16:56
    aí então usa a sua chave Aí salvei agora
  • 00:16:58
    agora e agora a gente pode começar a
  • 00:17:01
    criar aí a nossa rota então a gente já
  • 00:17:03
    tem a nossa rota de teste deixa ela aqui
  • 00:17:04
    pra gente poder testar quando quiser
  • 00:17:06
    vamos criar mais uma então claro que a
  • 00:17:08
    gente não vai ficar criando as nossas
  • 00:17:09
    rotas todas elas aqui no no mesmo
  • 00:17:11
    arquivo vai ficar um arquivo gigante se
  • 00:17:12
    a gente tiver mais rotas nessa api então
  • 00:17:14
    com isso a gente pode né separar um
  • 00:17:16
    pouquinho a arquitetura do nosso projeto
  • 00:17:18
    em controllers e Services então quando a
  • 00:17:21
    gente faz uma requisição eu posso passar
  • 00:17:23
    pro nosso Controller Controller recebe
  • 00:17:25
    se a gente tem alguns dados por exemplo
  • 00:17:26
    que a gente vai ter é que o usuário vai
  • 00:17:28
    me mandar o nome o peso a gente recebe
  • 00:17:31
    esses dados no Controller o Controller
  • 00:17:33
    chama pro nosso service e o service é
  • 00:17:35
    quem vai comunicar com o banco de dados
  • 00:17:37
    ou comunicar com a nossa api do Gemini
  • 00:17:39
    né ir lá na nossa api do Gemini pegar os
  • 00:17:42
    dados lá e devolver pro nosso contrôler
  • 00:17:44
    e o Controller devolve pro usuário né ou
  • 00:17:46
    seja recebe aqui no aplicativo de volta
  • 00:17:48
    então a gente pode dar uma separada para
  • 00:17:49
    ficar bem legal vamos fazer isso Então
  • 00:17:51
    olha só que fácil da gente fazer isso eu
  • 00:17:53
    vou Minimizar aqui para não ficar
  • 00:17:54
    aparecendo minha cara feia aqui né então
  • 00:17:56
    a gente pode criar aqui dentro do Sr uma
  • 00:17:59
    nova pastinha chamada controllers
  • 00:18:01
    colocar no plural porque pode ter mais
  • 00:18:03
    depois você pode evoluir esse projeto e
  • 00:18:05
    vou criar uma pastinha também aqui
  • 00:18:06
    dentro do src Ó dentro do src chamada
  • 00:18:09
    Services Então dentro do Controller vou
  • 00:18:12
    criar aqui um New file vou chamar aqui
  • 00:18:13
    de Create vou chamar de
  • 00:18:17
    Nutrition controller. TS e dentro do
  • 00:18:20
    Service eu vou criar um New file chamada
  • 00:18:22
    Create
  • 00:18:24
    Nutrition service.ts poderia ser Create
  • 00:18:27
    apenas create tamb Create service ou
  • 00:18:29
    Create Controller não tem problema tá o
  • 00:18:31
    nome aqui fica tranquilo aí no seu nome
  • 00:18:33
    que você quer dar e agora então aqui no
  • 00:18:34
    nosso Controller Import from festify o
  • 00:18:39
    festify a gente recebe o festify request
  • 00:18:41
    pra gente tipar Opa
  • 00:18:43
    request e o
  • 00:18:45
    festify reply Tá e agora então a gente
  • 00:18:49
    pode criar aqui a nossa Class Create vou
  • 00:18:52
    até copiar aqui ó vou dar aqui um rename
  • 00:18:54
    que o nome ficou grande né e eu vou
  • 00:18:55
    colar aqui ó tá então esse é o nome da
  • 00:18:57
    nossa classe dentro da classe Então a
  • 00:18:59
    gente vai ter um método assn vou chamar
  • 00:19:01
    de handle tá E esse método vai receber o
  • 00:19:05
    request da requisição que vai ser do
  • 00:19:07
    tipo dois pontos fastify request que a
  • 00:19:09
    gente importou aqui em cima e vírgula o
  • 00:19:12
    reply que é para devolver pro front end
  • 00:19:14
    né que a gente tem o tipagem de festify
  • 00:19:17
    reply Beleza então a gente recebe quem
  • 00:19:19
    usar essa classe vai chamar esse método
  • 00:19:21
    e vai passar essas duas propriedades É
  • 00:19:23
    obrigatório o request e o reply e agora
  • 00:19:26
    a gente pode acessar então aqui dentro
  • 00:19:28
    eu posso por exemplo colocar aqui um
  • 00:19:30
    console pon log só pra gente testar rota
  • 00:19:33
    foi chamada colocar aqui beleza e aqui
  • 00:19:36
    dentro a gente pode por enquanto só pra
  • 00:19:39
    gente ver se está sendo chamado eu vou
  • 00:19:40
    dar aqui um reply pon send vou dar aqui
  • 00:19:44
    abro Chaves message rota foi
  • 00:19:49
    chamada beleza e eu vou salvar e claro a
  • 00:19:52
    gente precisa exportar o arquivo para
  • 00:19:54
    outro arquivo conseguir acessar então
  • 00:19:55
    Export abre e fecha os Chaves Create a
  • 00:19:58
    aqui chama o nome da nossa classe
  • 00:20:00
    salvamos aqui agora então a gente criou
  • 00:20:01
    o nosso Controller vamos chamar ele lá
  • 00:20:03
    então lá no Nossa arquivo de HS aqui sim
  • 00:20:06
    a gente vai chamar Então a nossa rota
  • 00:20:07
    para chamar o Controller Então vamos
  • 00:20:09
    importar o arquivo from Opa from aqui
  • 00:20:13
    pon bar controllers bar Create Nutrition
  • 00:20:16
    Controller vamos trazer aqui o nosso
  • 00:20:18
    arquivo ó maravilha como a gente deu
  • 00:20:20
    apenas ó um exporte dentro de Chaves a
  • 00:20:23
    gente importa dentro de Chaves Então
  • 00:20:26
    temos a nossa primeira rota deixa ela
  • 00:20:27
    ali no cantinho dela e vamos criar outra
  • 00:20:29
    né então Fast fy pget por enquanto tá só
  • 00:20:32
    pra gente ver aqui get que vai ser do
  • 00:20:34
    tipo tá a gente pode colocar aqui qual
  • 00:20:36
    que é o nome dela Vamos colocar aqui
  • 00:20:38
    barra Create show de bola e aí vírgula
  • 00:20:42
    assing abre e fecha uma função anônima
  • 00:20:45
    dentro dessa função anônima eu vou
  • 00:20:46
    retornar uma New Create Nutrition
  • 00:20:50
    Controller abre e fecha o chave então tô
  • 00:20:52
    instanciando a nossa classe de Create
  • 00:20:54
    Nutrition Controller ponto que eu quero
  • 00:20:56
    chamar aquele nosso metodo Zinho chamado
  • 00:20:58
    handle né então dentro do handle Olha só
  • 00:21:01
    preciso passar o request e o reply E
  • 00:21:03
    como eu estou dentro da Rota eu tenho
  • 00:21:04
    acesso a esses caras olha na nossa rota
  • 00:21:06
    de cima eu não tenho acesso ao request e
  • 00:21:08
    o reply então aqui também aqui eu também
  • 00:21:10
    tenho acesso vou até copiar aqui esses
  • 00:21:12
    dois ó e vou colocar aqui ó dentro do
  • 00:21:13
    assn Então a gente tem acesso ao request
  • 00:21:15
    e o reply então só vou repassar esse
  • 00:21:17
    nosso cara pra nossa classe e lá a
  • 00:21:19
    classe vai utilizar Então vou passar
  • 00:21:20
    aqui ó request para ele e vou passar
  • 00:21:22
    aqui também o reply para essa nossa
  • 00:21:24
    classe Então a gente tem uma rota do
  • 00:21:26
    tipo get que é barra Create beleza
  • 00:21:28
    beleza essa rota então chama a nossa
  • 00:21:31
    classe e recebe e passa pra classe o
  • 00:21:33
    request e o reply lá no nosso Controller
  • 00:21:36
    a gente recebe então o request e o reply
  • 00:21:38
    o request é pra gente trabalhar na
  • 00:21:39
    requisição então quando a gente for
  • 00:21:41
    enviar os dados né o nome o sexo e por
  • 00:21:44
    aí vai a gente recebe através da
  • 00:21:46
    requisição do request então a gente
  • 00:21:48
    ainda não tá usando porque por enquanto
  • 00:21:49
    a gente não tá recebendo ainda tá e
  • 00:21:52
    depois o reply é para devolver né o
  • 00:21:54
    reply de devolver algo por exemplo pro
  • 00:21:56
    front end então reply pon send e eu vou
  • 00:21:58
    revolver uma mensagem então vamos testar
  • 00:22:01
    isso aqui quando a gente tá utilizando o
  • 00:22:04
    tsx que é essa
  • 00:22:07
    biblioteques que você altera o seu
  • 00:22:09
    arquivo então se eu salvar aqui ele dá
  • 00:22:11
    um Reload Ó presta atenção aqui ó salvei
  • 00:22:13
    o arquivo ó ele dá um Reload no nosso
  • 00:22:15
    servidor então a gente não precisa ficar
  • 00:22:17
    parando de rodar roda de novo então
  • 00:22:19
    salvou o arquivo podemos lá testar de
  • 00:22:20
    novo vamos lá agora a gente chamou a
  • 00:22:22
    rota de barra Create vou dar um enter
  • 00:22:24
    aqui ó olha que sensacional né então já
  • 00:22:26
    tá funcionando o fluxo com Controller
  • 00:22:28
    então chama a rota a rota recebe no
  • 00:22:30
    nosso arquivo houts e o o houts chama a
  • 00:22:33
    nossa classe Controller o Controller a
  • 00:22:35
    gente por enquanto recebe aqui e devolve
  • 00:22:37
    pro usuário só que agora aqui dentro do
  • 00:22:39
    Controller a gente pode chamar o serviço
  • 00:22:41
    e o serviço que vai ficar responsável
  • 00:22:43
    pela lógica ou seja comunicar com Gemini
  • 00:22:45
    api Beleza então vamos lá vamos agora
  • 00:22:48
    passar a responsabilidade pro nosso caro
  • 00:22:50
    serviço então vamos aqui no serviço e
  • 00:22:51
    vamos criar a nossa classe de serviço
  • 00:22:53
    então aqui é bem tranquilo né então aqui
  • 00:22:55
    a gente vai fazer o quê Vamos criar a
  • 00:22:57
    nossa Class vou até renomear aqui né
  • 00:22:59
    para nós escrever errado aqui o negócio
  • 00:23:00
    né então Class vamos dar o nome aqui ó
  • 00:23:03
    Create Nutrition service abre e fecha os
  • 00:23:05
    Chaves assim vamos dar o nome do método
  • 00:23:08
    pode ser o nome que a gente quiser tá
  • 00:23:09
    Create vamos dar aqui o nome de Execute
  • 00:23:11
    por exemplo é um nome comum aí da gente
  • 00:23:13
    criar nessa classe aqui dentro a gente
  • 00:23:14
    vai receber os dados como nome todos os
  • 00:23:16
    dados e comunicar com o banco por
  • 00:23:18
    enquanto eu vou dar aqui um console P
  • 00:23:19
    log teste tá e eu também apenas vou
  • 00:23:23
    devolver esse cara então vou retornar
  • 00:23:25
    para quem tiver utilizando essa classe
  • 00:23:27
    Vou retornar por exemplo a nossa message
  • 00:23:30
    funcionou o service tô fazendo bem
  • 00:23:33
    devagar só pra gente entender Opa
  • 00:23:35
    service aí beleza agora sim e também
  • 00:23:38
    vamos exportar o arquivo então Export
  • 00:23:40
    chamar aqui o nosso Create Nutrition
  • 00:23:43
    service tá então a gente tem uma classe
  • 00:23:45
    que chama esse método que a gente tem
  • 00:23:47
    chamado Execute aqui por enquanto chama
  • 00:23:49
    um console e devolve né essa mensagem aí
  • 00:23:51
    pro front end para quem tiver usando ele
  • 00:23:53
    salvamos aqui agora lá no nosso
  • 00:23:55
    Controller agora a gente vai utilizar
  • 00:23:56
    ele então Controller que vai ser
  • 00:23:58
    responsável por chamar esse nosso
  • 00:24:00
    serviço ponto barra Opa ponto pon barra
  • 00:24:03
    acessamos o nosso Services barra
  • 00:24:06
    Controller service lembra de salvar o
  • 00:24:08
    arquivo aqui importamos ele aqui Show de
  • 00:24:11
    Bola Deixa eu até aumentar aqui ó
  • 00:24:13
    Maravilha e agora antes da gente dar o
  • 00:24:15
    send aqui para devolver pro usuário a
  • 00:24:17
    gente vai fazer o quê chamar o serviço
  • 00:24:19
    então vou dar aqui ó conche vou chamar
  • 00:24:22
    aqui de Create n vou chamar só de Create
  • 00:24:24
    Create igual a new vamos instanciar
  • 00:24:27
    Nossa classe do serviço instanciamos ela
  • 00:24:29
    e agora vamos chamar ela então conch se
  • 00:24:31
    a gente olhar aqui ó ela é assíncrona
  • 00:24:33
    então conch vou chamar aqui de Nutrition
  • 00:24:36
    igual a wait Create que é o nome que a
  • 00:24:39
    gente deu pode ser até Create Nutrition
  • 00:24:42
    né Nutrition aqui ó para ficar
  • 00:24:44
    melhorzinho aí ponto Execute e a gente
  • 00:24:46
    chama o nosso método então a gente
  • 00:24:48
    quando alguém chamar o Controller o
  • 00:24:50
    Controller recebe aqui o requisição e o
  • 00:24:52
    reply a gente instancia a nossa o nosso
  • 00:24:55
    serviço e o e executa né o m Execute
  • 00:24:59
    dentro ó esse método aqui o método vai
  • 00:25:01
    comunicar com api comunicar com o banco
  • 00:25:03
    de dados se a gente tivesse e vai
  • 00:25:04
    devolver aqui para quem utilizar essa
  • 00:25:06
    classe uma mensagem então a gente recebe
  • 00:25:08
    essa mensagem através dessa variável
  • 00:25:10
    aqui então depois que ele fez tudo que
  • 00:25:12
    ele precisava fazer recebe aqui nessa
  • 00:25:13
    variável e a gente devolve pro usuário
  • 00:25:15
    então reply p send Nutrition então a
  • 00:25:17
    gente devolve o retorno que você me
  • 00:25:19
    mandou do serviço lá pro front end tá
  • 00:25:22
    vamos salvar o nosso fluxo salvou tudo
  • 00:25:24
    aqui voltou minha cara aqui e vamos
  • 00:25:26
    testar de novo vou dar aqui ó deixa eu
  • 00:25:28
    abrir aqui o nosso Create vou dar um
  • 00:25:30
    enter aqui e olha que legal funcionou o
  • 00:25:32
    service então agora a gente chama a rota
  • 00:25:34
    a rota chama o nosso Controller
  • 00:25:36
    repassando o request e o nosso reply o
  • 00:25:39
    request a gente recebe vamos já já pegar
  • 00:25:41
    os dados dele chama o serviço o serviço
  • 00:25:43
    que comunica com o banco de dados que
  • 00:25:45
    vai comunicar com a nossa api e depois
  • 00:25:46
    que ele fazer isso ele devolve pro
  • 00:25:48
    Controller e o Controller manda pro
  • 00:25:49
    frontend ou pro api ou para um né que
  • 00:25:52
    seja e um site ou um sistema web que
  • 00:25:54
    você tiver consumindo essa api então a
  • 00:25:56
    gente recebe o Jason aqui e aí a gente
  • 00:25:58
    pode utilizar no caso é só uma mensagem
  • 00:26:00
    vamos agora integrar com o nosso Gemini
  • 00:26:01
    aqui então a gente táa fazendo fluxo um
  • 00:26:03
    pouquinho mais devagar para não ficar
  • 00:26:05
    com dúvida Beleza então agora vamos lá
  • 00:26:07
    então quando a gente vai testar rotas e
  • 00:26:09
    requisições aqui dentro do navegador ual
  • 00:26:11
    a gente tá testando Eu só consigo testar
  • 00:26:13
    eh rotas do tipo get que é do tipo de
  • 00:26:16
    buscar dados e listar informações então
  • 00:26:18
    a gente consegue do tipo get quando a
  • 00:26:20
    gente mudar agora a nossa rota a gente
  • 00:26:21
    vai ter uma rota do tipo post que é para
  • 00:26:24
    cadastrar algo então quero cadastrar uma
  • 00:26:26
    informação então quero receber do Us
  • 00:26:28
    usário é o nome e os dados dele para
  • 00:26:30
    poder gerar na AP e devolver pro usuário
  • 00:26:33
    então a gente não consegue quando a
  • 00:26:34
    gente vira aqui ó Eu quero mudar Nossa
  • 00:26:36
    rota que é do tipo get para do tipo post
  • 00:26:38
    Então a gente vai ter um verbo http
  • 00:26:40
    agora do tipo post que é para cadastrar
  • 00:26:42
    informações Tá e agora eu não consigo
  • 00:26:44
    mais usar ela dentro do navegador então
  • 00:26:47
    se eu testar de novo ó provavelmente vai
  • 00:26:48
    dar erro ou ó já faleu aqui que não
  • 00:26:50
    consegue tá para não ficar mais fácil
  • 00:26:51
    para vocês a gente pode utilizar uma
  • 00:26:53
    extensão ó vem aqui uma extensão Zinha
  • 00:26:55
    muito legal é chamada Thunder client
  • 00:26:59
    beleza Procura ela aí ó esse cara aqui ó
  • 00:27:01
    Thunder client ativa ela aí a hora que
  • 00:27:03
    você ativar vai aparecer aqui do lado
  • 00:27:05
    aqui ó aqui do lado ó apareceu aqui ó tá
  • 00:27:07
    vendo e aí eu tenho até umas aqui eu vou
  • 00:27:09
    deletar essas que eu tenho aqui que é
  • 00:27:11
    não é do deixa eu ver se dá para criar
  • 00:27:12
    uma nova vou deletar isso aqui pera aí
  • 00:27:14
    que vocês não vão ter nenhuma aí ou vão
  • 00:27:16
    ter uma só de exemplo deixa eu deletar
  • 00:27:17
    essas aqui que são minhas aqui que nem
  • 00:27:20
    São desse projeto só para não confundir
  • 00:27:22
    vocês tá então vai vir aqui ó Create New
  • 00:27:24
    request vou copiar aqui a nossa URL vou
  • 00:27:27
    voltar então do tipo post Vou colocar
  • 00:27:31
    aqui a nossa URL e eu vou dar um send
  • 00:27:33
    Olha lá agora funciona beleza e agora a
  • 00:27:35
    gente vai começar a trabalhar na
  • 00:27:37
    requisição do tipo post então vou deixar
  • 00:27:39
    ela aqui do lado ó trazer ela aqui pro
  • 00:27:41
    ladinho e vou voltar aqui vamos voltar
  • 00:27:43
    agora lá na nossa Controller Então agora
  • 00:27:46
    eu quero que o usuário que for utilizar
  • 00:27:49
    ele me mande algumas informações pra
  • 00:27:50
    gente poder utilizar nome peso atual
  • 00:27:53
    altura idade sexo e nível de atividade e
  • 00:27:58
    e também aqui o objetivo né E aí a gente
  • 00:28:00
    vai gerar porque senão não fica muito
  • 00:28:02
    legal então vamos pegar esses dados aqui
  • 00:28:05
    então o Controller é quem tem acesso ao
  • 00:28:07
    request a requisição então ele a gente
  • 00:28:09
    vai pegar aqui ó então const abre fecha
  • 00:28:11
    os Chaves igual a request P Body então
  • 00:28:14
    eu quero pegar do corpo da requisição
  • 00:28:16
    alguns dados eu quero pegar por exemplo
  • 00:28:17
    é uma propriedade chamada name uma
  • 00:28:20
    propriedade chamada aqui do Peso né
  • 00:28:23
    então V pegar aqui o peso Vamos colocar
  • 00:28:24
    em inglês poderia ser tudo em português
  • 00:28:26
    poderia mas vamos colocar em inglês já
  • 00:28:27
    que tá Seguindo aqui eu quero pegar
  • 00:28:29
    altura tambémm Hi aqui também o Age né
  • 00:28:32
    que é a idade o sexo é
  • 00:28:36
    objective pode ser assim mesmo vamos
  • 00:28:38
    pegar também o level seria o nível dele
  • 00:28:41
    né então perfeito e aí claro como a
  • 00:28:43
    gente criou algumas coisas aqui ele não
  • 00:28:45
    sabe né já que a gente tá usando o typ
  • 00:28:46
    script ele fala que esses names tudo
  • 00:28:48
    isso aqui pode ser qualquer coisa então
  • 00:28:50
    vou falar vamos criar uma tipagem aqui
  • 00:28:52
    em cima ó interface chamar aqui de data
  • 00:28:57
    props que a gente vai ter esses dados
  • 00:28:59
    Então vou até copiar aqui ó e vou
  • 00:29:01
    colocar aqui dentro dessa interface
  • 00:29:03
    Claro vou dar um enter aqui ó depois de
  • 00:29:05
    cada vírgula aqui depois de cada vírgula
  • 00:29:09
    aqui eu vou dar um enter só para ficar
  • 00:29:10
    mais fácil a gente organizar Aqui show
  • 00:29:13
    de bola então o name dois pontos ele é
  • 00:29:15
    do tipo string o a o peso é string a
  • 00:29:21
    altura é string também eu vou receber
  • 00:29:22
    tudo como string não tem problema string
  • 00:29:25
    aqui o sexo eu quero que receba como uma
  • 00:29:28
    string né masculino ou feminino o
  • 00:29:30
    objetivo também no objetivo vai ser por
  • 00:29:32
    exemplo hipertrofia emagrecimento Então
  • 00:29:34
    a gente vai receber como um texto o
  • 00:29:36
    level Eu também quero receber como um
  • 00:29:38
    texto Então tudo a gente vai esperar
  • 00:29:39
    receber como um texto Então agora a
  • 00:29:41
    gente vai pegar aqui ó o request.on body
  • 00:29:43
    ele é do tipo as data props Beleza agora
  • 00:29:47
    se eu coloco o mouse em cima eu estou
  • 00:29:48
    afirmando que tudo que a gente receber
  • 00:29:50
    nesse request.on Body ele tem essas
  • 00:29:52
    propriedades aqui que cada uma referente
  • 00:29:54
    a esses tipos aqui então se eu coloco
  • 00:29:56
    aqui no Name ó name é string Ou seja é
  • 00:29:59
    um texto o Age é um texto é o level ó
  • 00:30:03
    tudo igual a gente tipou aqui em cima
  • 00:30:05
    Então agora eu quero eu quero fazer o
  • 00:30:07
    quê eu quero receber essa informação do
  • 00:30:10
    Body beleza do corpo da requisição e
  • 00:30:12
    quero passar essas informações pro
  • 00:30:14
    serviço porque é lá no serviço que a
  • 00:30:15
    gente comunica com a api então aqui no
  • 00:30:17
    nosso service a gente vai receber esses
  • 00:30:19
    dados então eu vou até fazer o quê para
  • 00:30:21
    não duplicar esse cara aqui ó eu vou dar
  • 00:30:22
    aqui um Export Então a gente vai deixar
  • 00:30:25
    outro arquivo conseguir importar essa
  • 00:30:26
    nossa tipagem salvei aqui e agora lá no
  • 00:30:29
    nosso service eu vou importar essa nossa
  • 00:30:31
    tipagem então Import from P pon P barra
  • 00:30:36
    Controller vamos importar aqui do nosso
  • 00:30:38
    Controller a nossa data props e a gente
  • 00:30:41
    vai ter a tipagem aqui então quem usar
  • 00:30:43
    esse método Execute vai ter aqui ó
  • 00:30:45
    dentro de abre e fecha Chaves dois
  • 00:30:47
    pontos vai ter do tipo data props então
  • 00:30:50
    aqui dentro a gente vai receber o aid
  • 00:30:52
    vou pegar aqui ó name w o sexo altura
  • 00:30:57
    level objective E também o peso dele
  • 00:31:00
    então a gente vai receber essas
  • 00:31:01
    informações aqui então quem usar essa
  • 00:31:03
    função aqui Execute do nosso serviço
  • 00:31:05
    precisa me passar todas essas
  • 00:31:07
    informações aqui tá então salvei aqui o
  • 00:31:10
    arquivo você pode ver que agora o nosso
  • 00:31:12
    Controller tá apitando um erro ali ó
  • 00:31:14
    porque a gente antes usava o Execute sem
  • 00:31:16
    passar nada e agora a gente tá falando
  • 00:31:18
    olha você tá usando mas você precisa me
  • 00:31:19
    passar esses caras aqui e Beleza então
  • 00:31:22
    agora a gente já tem eles aqui no
  • 00:31:23
    Controller é só eu repassar aqui ó Então
  • 00:31:25
    abre e fecha os Chaves passar o name
  • 00:31:27
    passar aqui o a o peso pessoal passar a
  • 00:31:29
    altura wage vírgula objective opa
  • 00:31:33
    objective vou passar aqui o sexo e o
  • 00:31:37
    level né E olha lá passamos todos os
  • 00:31:39
    dados lá pro serviço e ele parou de
  • 00:31:42
    acusar o erro salvei então a gente
  • 00:31:44
    recebe da requisição passa pro nosso
  • 00:31:46
    serviço tudo que a gente recebeu né o
  • 00:31:47
    nome os dados que a gente precisa lá no
  • 00:31:49
    nosso serviço a gente recebe eles aqui
  • 00:31:51
    agora então agora a gente pode utilizar
  • 00:31:53
    Olha que legal Vamos utilizar então aqui
  • 00:31:55
    agora como que a gente pode utilizar a
  • 00:31:57
    api que a a gente utilizou primeiro que
  • 00:31:59
    a gente já criou a chave pra gente usar
  • 00:32:01
    ela aqui com node JS ela tem a aqui ó a
  • 00:32:04
    documentação da api dela aqui ó ela tem
  • 00:32:06
    até um exemplo aqui ó nossa o site do
  • 00:32:08
    Google aqui tá todo bugado para mim
  • 00:32:10
    então pra gente não perder tempo tá
  • 00:32:11
    vamos instalar ela dentro do nosso
  • 00:32:13
    projeto vou parar de rodar aqui vou dar
  • 00:32:15
    aqui um npm install @google bar
  • 00:32:19
    generative Opa @google bar generative
  • 00:32:23
    cuidado na escrita aí Traço Ai beleza
  • 00:32:26
    vamos instalar a biblioteca
  • 00:32:28
    do Google ai aqui pra gente usar depois
  • 00:32:30
    de instalar vamos rodar de novo aí pra
  • 00:32:33
    gente poder utilizar rodou o nosso
  • 00:32:34
    projeto vamos voltar aqui ó se a gente
  • 00:32:36
    voltar agora eu posso aqui no nosso
  • 00:32:38
    serviço importar from
  • 00:32:41
    @google @google generative ai eu vou
  • 00:32:44
    trazer aqui ó Google generative ai tá
  • 00:32:48
    então importamos ela aqui maravilha
  • 00:32:50
    agora a gente vai utilizar então tirar
  • 00:32:52
    isso aqui primeiro vou abrir aqui um try
  • 00:32:54
    e um catch porque ele é algo assim que
  • 00:32:57
    não Pode falhar requisição né a pi Pode
  • 00:32:59
    falhar então caso caia no catch eu vou
  • 00:33:01
    fazer o vou dar um console error mesmo
  • 00:33:04
    eu vou colocar
  • 00:33:06
    erro Jon só pra gente ver aqui tá dois
  • 00:33:09
    pontos vou dar um espaço e v mostrar
  • 00:33:10
    esse erro aqui e também a gente pode dar
  • 00:33:12
    um erro na api n lanar uma exceção New
  • 00:33:15
    error fail Create aqui beleza vamos
  • 00:33:18
    gerar só esse erro aqui depois a gente
  • 00:33:19
    pode melhorar e dentro do try é onde vai
  • 00:33:22
    tentar fazer então a comunicação com api
  • 00:33:24
    primeira coisa con gen ai igual a new
  • 00:33:29
    Google generative ai e aqui dentro ó
  • 00:33:32
    preciso passar minha chave pra gente não
  • 00:33:34
    passar direto e depois você subir a sua
  • 00:33:36
    api alguém pegar sua chave e aí estourar
  • 00:33:38
    o seu limite e aí dá BO né então por
  • 00:33:41
    isso que eu por isso que a gente colocou
  • 00:33:42
    dentro da variável ambiente Então essa
  • 00:33:44
    variável ambiente a gente não sobe né
  • 00:33:46
    para o github eu já vou até criar aqui ó
  • 00:33:48
    um New file ponto Git Ignore a gente
  • 00:33:53
    coloca aqui ó node underline modules
  • 00:33:55
    barra então não envia a pasta node
  • 00:33:57
    moduls e também Envia um arquivo chamado
  • 00:33:58
    pon Envy lá pro seu github tá Não faça
  • 00:34:00
    isso então feito isso aqui a gente já
  • 00:34:03
    tem a nossa chave certo então vou usar
  • 00:34:05
    ela vou copiar aqui o nome lá a gente
  • 00:34:07
    vai passar ela aqui ó
  • 00:34:09
    process.env ponto e aí o nome da chave
  • 00:34:11
    tá e eu vou usar aqui uma exclamação
  • 00:34:13
    para garantir que aqui tem alguma chave
  • 00:34:15
    pro typescript não ficar acusando um
  • 00:34:16
    errinho tá então a gente passa a nossa
  • 00:34:18
    chave aqui e agora a gente pode utilizar
  • 00:34:20
    através dessa variável gen ai no nosso
  • 00:34:22
    serviço vamos usar aqui também o modelo
  • 00:34:24
    né con Model eles pedem pra gente
  • 00:34:26
    colocar o gen E ai que a gente portou
  • 00:34:29
    ponto get generative Model E aí aqui
  • 00:34:32
    dentro abre e fecha os Chaves A gente
  • 00:34:34
    pode passar uma propriedade chamada
  • 00:34:35
    Model com qual que é os modelos tá então
  • 00:34:38
    aqui ó eu vou copiar um aqui que a gente
  • 00:34:40
    tá utilizando Mas ele tem deixa eu pegar
  • 00:34:42
    aqui ó deixa eu ver se eu consigo
  • 00:34:45
    mostrar aqui se ele vai mostrar aqui
  • 00:34:46
    para vocês é que o site tá tá bugadao
  • 00:34:50
    hoje aqui né Deixa eu ver se ele vai
  • 00:34:51
    mostrar aqui para vocês Cadê cadê Aqui ó
  • 00:34:54
    aqui ele mostra qual que é o modelo tá
  • 00:34:56
    então a gente pode pegar esse mesmo
  • 00:34:57
    modelo aqui que é o que a gente vai
  • 00:34:58
    utilizar Então vou usar esse modelo
  • 00:35:01
    Gemini tro 1.5 tro Flash tá vocês podem
  • 00:35:04
    até olhar no site deles igual eles
  • 00:35:06
    mostram aqui então vou usar esse aqui ó
  • 00:35:08
    ele fala ó para os comandos somente de
  • 00:35:09
    texto que é o que a gente vai utilizar
  • 00:35:11
    use o modelo 1.5 ou 1.0 pro Então a
  • 00:35:13
    gente vai usar esse cara aqui Fechou
  • 00:35:15
    então maravilha agora a gente pode criar
  • 00:35:18
    o nosso prompt Então vou dar aqui o cons
  • 00:35:20
    response igual a aight Model P generate
  • 00:35:25
    content então a gente quer gerar um
  • 00:35:26
    conteúdo e aqui ó eu vou colocar por
  • 00:35:29
    enquanto só pra gente testar em que ano
  • 00:35:31
    o
  • 00:35:32
    JavaScript foi Opa foi criado Tá então
  • 00:35:35
    vamos testar isso aqui então eu quero
  • 00:35:37
    mandar esse prompt e ele vai devolver
  • 00:35:38
    pra gente a resposta aqui dentro então
  • 00:35:40
    vou colocar aqui um console pon log
  • 00:35:42
    nesse response PR gente ver o que que eu
  • 00:35:44
    vou ter aqui e pra gente ver bem esse
  • 00:35:46
    console como ele vai vir em várias
  • 00:35:48
    propriedades a gente pode fazer o quê
  • 00:35:50
    Vou dar aqui um json p string F response
  • 00:35:54
    víg nul ví 2 então assim ele vai mostrar
  • 00:35:58
    um console mais estruturado aqui no
  • 00:35:59
    nosso CMD tá E também vou dar aqui a
  • 00:36:01
    resposta pro frontend return Ok true tá
  • 00:36:05
    só pra gente não dar erro no front end
  • 00:36:08
    Vou salvar isso aqui agora e vamos
  • 00:36:09
    testar Então por enquanto a gente nem tá
  • 00:36:11
    usando os dados que eu recebo mas a
  • 00:36:13
    gente tá fazendo já um prompt aqui que é
  • 00:36:14
    em que ano o JavaScript foi criado ele
  • 00:36:16
    vai devolver pra gente Esse response e a
  • 00:36:18
    gente coloca o console Então vamos
  • 00:36:20
    testar isso aqui agora só para testar se
  • 00:36:21
    a api tá funcionando Maravilha ali então
  • 00:36:23
    salvei deixa eu ver se tá rodando ó tá
  • 00:36:25
    rodando já vamos lá na nossa requisição
  • 00:36:27
    aqui do nosso Thunder client aqui na
  • 00:36:30
    nossa Rota e eu vou dar aqui um send ó
  • 00:36:31
    dei um send e ele vai falar olha não
  • 00:36:33
    consigo desestruturar aí o seu name tá
  • 00:36:36
    então ele deu erro por qu porque a gente
  • 00:36:37
    fala lá no nosso Controller que eu
  • 00:36:39
    espero que você me mande alguns
  • 00:36:41
    parâmetros dentro do Body Então eu
  • 00:36:42
    preciso vir aqui dentro do Body e passar
  • 00:36:44
    esses parâmetros Então eu preciso passar
  • 00:36:46
    por exemplo o a propriedade name que eu
  • 00:36:48
    quero que seja Mateus por exemplo a
  • 00:36:50
    propriedade deixa eu até pegar seão vou
  • 00:36:51
    esquecer né Deixa eu ver se eu consigo
  • 00:36:53
    dividir aqui do lado ó colocar aqui o
  • 00:36:55
    nosso serviço aqui ó aqui acho que eu
  • 00:36:58
    consigo beleza só para ter os nomes aqui
  • 00:37:00
    do lado ó o nome vou colocar também aqui
  • 00:37:02
    ó o nosso age a gente vai ter aqui vou
  • 00:37:06
    colocar aqui 28 aí eu vou ter aqui
  • 00:37:08
    também o o o nosso sexo que é o
  • 00:37:11
    masculino a gente vai ter aqui o e qual
  • 00:37:15
    que é o outro Ah o peso né copiar aqui
  • 00:37:17
    para não sair ficar errado cuidado com a
  • 00:37:19
    escrita aí também o peso aqui vai ser
  • 00:37:20
    acho que eu tenho 74 kg e que mais a
  • 00:37:24
    gente tem também o a não isso aqui é
  • 00:37:28
    altura né o peso Opa isso aqui é altura
  • 00:37:30
    Mas vamos corrigir aqui ó peso 74 kg e a
  • 00:37:34
    altura eu tenho acho que 1.80 1.80 que
  • 00:37:37
    mais o objetivo por exemplo né Vou
  • 00:37:41
    colocar aqui
  • 00:37:43
    hipertrofia beleza e a gente também tem
  • 00:37:45
    o level aqui que seria por exemplo
  • 00:37:47
    quantas vezes você pratica atividade
  • 00:37:49
    física eh atividade atividade física
  • 00:37:55
    levente um A TR dias na semana por
  • 00:37:58
    exemplo Vamos colocar isso aqui beleza
  • 00:38:00
    acho que foi todos né então agora o que
  • 00:38:01
    a gente pode fazer aqui é dar um send
  • 00:38:03
    novamente ó ele vai demorar um pouco
  • 00:38:05
    porque ele faz a requisição lá com o g
  • 00:38:08
    ai devolveu um ok through deu o status
  • 00:38:10
    200 vamos olhar o nosso CMD E olha que
  • 00:38:13
    legal né Deixa eu tirar um zoom aqui ele
  • 00:38:14
    devolveu pra gente aqui ó um response
  • 00:38:17
    dentro ele devolve uma propriedade
  • 00:38:18
    chamada candidates dentro é uma arrei
  • 00:38:21
    dentro dessa Array tem um content dentro
  • 00:38:23
    do content tem outra Array chamada parts
  • 00:38:26
    e d tem uma propriedade Text e olha aqui
  • 00:38:29
    JavaScript foi criado em 1995 por E aí
  • 00:38:33
    tá o nome dele aí então agora vamos
  • 00:38:35
    acessar esse texto cru aí primeiro então
  • 00:38:37
    a gente precisa acessar cada item aqui
  • 00:38:39
    até chegar lá cuidado já vou falar uma
  • 00:38:41
    coisa aqui para vocês que eh mesmo que
  • 00:38:43
    vocês estão fazendo comigo é importante
  • 00:38:45
    você olhar o console por quê porque pode
  • 00:38:46
    ser ah a Gemini a falou não não quero
  • 00:38:49
    mais devolver dentro de response
  • 00:38:50
    candidates eu quero devolver já direto
  • 00:38:52
    você vai saber que que tá direto no
  • 00:38:54
    nosso caso ó ele devolve dentro de
  • 00:38:55
    response candidates um Array depois
  • 00:38:58
    devolve content parts um Array de parts
  • 00:39:01
    e dentro do parts ele devolve o primeiro
  • 00:39:03
    item aqui que é uma propriedade text aí
  • 00:39:05
    tem o conteúdo né a resposta então
  • 00:39:07
    cuidado quando você for acessar tá cada
  • 00:39:10
    item para chegar até onde que a gente
  • 00:39:11
    quer então vamos acessar isso aqui agora
  • 00:39:14
    vamos lá dentro do nosso serviço tá
  • 00:39:16
    então a gente recebe através Desse nosso
  • 00:39:18
    response Então vamos pegar aqui pra
  • 00:39:20
    gente destrinchar Esse Cara vou até
  • 00:39:22
    tirar aqui porque vai ficar grande ó
  • 00:39:23
    diminuir aqui F se a gente tiver um
  • 00:39:25
    response p response e também se a gente
  • 00:39:28
    tiver um response pon response ponto e a
  • 00:39:31
    gente tem um carinha chamado ó candidate
  • 00:39:33
    vou até copiar aqui ó ponto candidates
  • 00:39:35
    Então se a gente tiver esse cara aí aqui
  • 00:39:37
    dentro então vamos pegar aqui o nosso
  • 00:39:38
    const chamar de Jason text igual a
  • 00:39:41
    response p response ponto
  • 00:39:45
    candidates lembra que ele é um arrei ó
  • 00:39:47
    tá vendo que ele é um arrei aqui ó então
  • 00:39:48
    quero pegar a posição zero então posição
  • 00:39:50
    zero Então pensa que a gente Acessou a
  • 00:39:52
    posição zero dentro desse objeto agora
  • 00:39:54
    eu quero acessar o ponto content Então
  • 00:39:56
    vou usar aqui o interrogação porque vai
  • 00:39:58
    que não existe né pra gente não causar
  • 00:40:00
    um erro ponto content olha só que legal
  • 00:40:03
    E aí ponto quero acessar o Parts ele já
  • 00:40:06
    até tá sugerindo para mim aqui parts
  • 00:40:08
    depois no parts ele é um arrei então
  • 00:40:10
    parts na posição zero ponto e aí a gente
  • 00:40:13
    tem o text beleza e eu vou falar S
  • 00:40:15
    string tô falando que isso aqui que a
  • 00:40:17
    gente tá recebendo é uma string Beleza
  • 00:40:19
    então a gente vai receber esse cara aqui
  • 00:40:20
    vamos testar então agora o que eu vou
  • 00:40:22
    fazer aqui é eu vou dar um return return
  • 00:40:26
    uma propriedade chamada da data por
  • 00:40:27
    exemplo e eu vou devolver esse Jason
  • 00:40:29
    text aqui pra gente visualizar beleza
  • 00:40:32
    esse console ó eu vou até mover esse
  • 00:40:33
    console aqui para cima mover esse
  • 00:40:35
    console aqui para cima tá show de bola
  • 00:40:37
    então agora o que a gente tá fazendo é a
  • 00:40:39
    gente vai fazer requisição ele vai
  • 00:40:41
    devolver vai mostrar o nosso console se
  • 00:40:43
    tiver um response se tiver o candidates
  • 00:40:44
    ele vai então pegar todo lá aquele Nossa
  • 00:40:47
    resposta colocar aqui dentro e a gente
  • 00:40:49
    vai retornar apenas a resposta ao invés
  • 00:40:50
    do ok true tá vou até tirar esse ok true
  • 00:40:53
    aqui salvei aqui pra gente testar Então
  • 00:40:56
    vamos lá voltar lá pro nosso Thunder
  • 00:40:58
    client clicar na nossa Rota e eu vou
  • 00:41:00
    clicar aqui no send novamente ó vai
  • 00:41:01
    demorar um pouquinho ó ele devolveu aqui
  • 00:41:03
    para mim já uma propriedade data chamada
  • 00:41:06
    o JavaScript foi criado em 1995 por
  • 00:41:08
    Beleza então já devolveu aqui temos o
  • 00:41:10
    console então agora a gente já tá
  • 00:41:12
    devolvendo pro front end uma propriedade
  • 00:41:14
    chamado data com a resposta que a gente
  • 00:41:16
    quer legal né então agora sim a gente
  • 00:41:18
    chegou já estamos usando a a sensacional
  • 00:41:20
    mas vou melhorar isso aqui ainda mais né
  • 00:41:22
    então agora eu não quero perguntar
  • 00:41:24
    quando que foi criado eu quero criar o
  • 00:41:25
    prompt aqui então para para não ter erro
  • 00:41:28
    Tá eu vou deixar para vocês Opa eu vou
  • 00:41:30
    até colocar aqui ó no meu notion tá eu
  • 00:41:32
    vou deixar para vocês um prompt e a
  • 00:41:34
    gente vai alterar e a gente vai ler isso
  • 00:41:35
    aqui junto tá então Ó vou colocar aqui
  • 00:41:37
    deixa eu copiar ele inteiro aqui e eu
  • 00:41:39
    vou colocar ele aqui tá então vou
  • 00:41:40
    colocar esse prompt todo esse texto aqui
  • 00:41:42
    ó eu vou deixar para vocês como eu falei
  • 00:41:44
    eu vou deixar para vocês esse texto aqui
  • 00:41:46
    então vamos lá vou colocar esse prompt
  • 00:41:49
    então ao invés desse cara aqui ó a gente
  • 00:41:51
    vai usar aspas deitadas que é o nosso
  • 00:41:53
    crase eu vou colar o prompt do jeito que
  • 00:41:55
    eu dei para vocês e a gente vai ler isso
  • 00:41:57
    aqui aqui tá só para não perder tempo
  • 00:41:58
    escrevendo isso aqui né então vamos lá
  • 00:42:00
    olha só crie uma dieta completa para uma
  • 00:42:02
    pessoa com o nome e aqui ó a gente
  • 00:42:04
    coloca a propriedade name então tô
  • 00:42:06
    recebendo a propriedade name aqui lembra
  • 00:42:08
    então tô só repassando ela aqui se você
  • 00:42:10
    deu outro nome se você escreveu em
  • 00:42:11
    português então cuidado tá aqui vai a
  • 00:42:13
    variável que a gente recebe aqui ó que é
  • 00:42:15
    o nome então name do sexo e aí Aqui vai
  • 00:42:18
    o sexo com o peso atual E aí Aqui vai o
  • 00:42:20
    peso quilos eu coloquei na frente
  • 00:42:22
    vírgula altura e aí Aqui tem altura
  • 00:42:25
    idade e aí Aqui tem o Age a idade idade
  • 00:42:27
    vai aparecer por exemplo 28 anos né e
  • 00:42:30
    com o foco e objetivo em E aí Aqui vai o
  • 00:42:32
    objetivo do cara por exemplo hipertrofia
  • 00:42:34
    emagrecimento e por aí vai e aí depois
  • 00:42:37
    aqui tem vírgula atualmente nível de
  • 00:42:39
    atividade aqui vai aparecer moderado eh
  • 00:42:42
    pratico três cinco vezes à semana que é
  • 00:42:44
    o que a gente vai ter lá no aplicativo
  • 00:42:45
    para ele selecionar aqui o nível dele
  • 00:42:47
    legal o level e e eu coloquei aqui na
  • 00:42:50
    frente no prompt para melhorar a gente
  • 00:42:51
    pode deixar mais estrito e Ignore outro
  • 00:42:54
    parâmetro que não seja passado que não
  • 00:42:56
    seja os Pass dados beleza retorne em
  • 00:42:58
    Jason com as respectivas propriedades
  • 00:43:01
    então eu tô falando aqui pro prompt que
  • 00:43:03
    eu quero já esses dados aqui que ele vai
  • 00:43:05
    gerar e ele vai me retornar em Jason em
  • 00:43:07
    algumas propriedades que eu quero então
  • 00:43:08
    eu falei olha propriedade de nome com o
  • 00:43:10
    nome da pessoa propriedade sexo com o
  • 00:43:12
    sexo propriedade de idade propriedade
  • 00:43:14
    altura propriedade peso propriedade de
  • 00:43:16
    objetivo com o objetivo atual
  • 00:43:18
    propriedade refeições e com um arrei
  • 00:43:20
    contendo dentro cada objeto sendo uma
  • 00:43:23
    refeição da dieta e dentro de cada
  • 00:43:25
    refeição a propriedade horário com o
  • 00:43:28
    horário da refeição propriedade nome com
  • 00:43:30
    o nome e a propriedade alimento com o
  • 00:43:33
    arrei contendo os alimentos dessa
  • 00:43:35
    refeição e coloquei também ó e pode
  • 00:43:37
    incluir uma propriedade como suplementos
  • 00:43:40
    Contendo a rei com a sugestão de
  • 00:43:42
    suplemento que é indicado para o aqui
  • 00:43:45
    era sexo né para o sexo dessa pessoa e
  • 00:43:48
    objetivo dela e não retorne nenhuma
  • 00:43:51
    observação além das passadas no prompt
  • 00:43:53
    retorne em Jason e nenhuma propriedade
  • 00:43:56
    pode ter acento tá então coloquei isso
  • 00:43:58
    porque senão às vezes ele devolve o nome
  • 00:43:59
    de uma propriedade com acento Aí Já Era
  • 00:44:01
    Então esse é o nosso prompt aqui fechou
  • 00:44:04
    agora ele vai fazer e vai devolver pra
  • 00:44:05
    gente e a gente vai acessar de novo
  • 00:44:07
    vamos testar salvei agora vamos lá de
  • 00:44:10
    novo aqui na nossa rota agora ele vai
  • 00:44:12
    pegar os dados que a gente tá mandando
  • 00:44:13
    então Mateus com 28 masculino
  • 00:44:16
    1.80 altura aqui o peso 74 hipertrofia E
  • 00:44:21
    aí atividade física Vou colocar aqui só
  • 00:44:26
    leve mente de um a três dias na semana
  • 00:44:28
    vou colocar aqui o level né vou dar aqui
  • 00:44:30
    um send vamos ver vamos ver e show de
  • 00:44:33
    bola Olha que sensacional ele devolveu
  • 00:44:35
    pra gente em Jason né então ele devolve
  • 00:44:37
    aqui em Jason se a gente copiar isso
  • 00:44:39
    aqui tá tudo Tá tudo em Jason né então a
  • 00:44:42
    gente não vai conseguir e visualizar
  • 00:44:44
    direito mas ele devolveu aqui é um Jason
  • 00:44:46
    nome Mateus sexo tá tudo aqui certinho
  • 00:44:49
    se a gente conseguir aqui ó café da
  • 00:44:50
    manhã alimento duas fatias de duas
  • 00:44:53
    fatias de pão integral ovos mexidos
  • 00:44:55
    então a gente já tá recebendo o nosso
  • 00:44:57
    nosso Jason aqui agora o que que a gente
  • 00:44:58
    precisa fazer é converter dessa forma
  • 00:45:00
    que ele mandou um Jason mas dentro de
  • 00:45:02
    uma string Tá vendo porque ele pensa que
  • 00:45:04
    a gente tá lá dentro do chat PT da vida
  • 00:45:06
    né então a gente vai ter que pegar e
  • 00:45:08
    destrinchar isso aqui e devolver um
  • 00:45:10
    Jason formadinho pro front end pra gente
  • 00:45:12
    consumir numa num site ou num aplicativo
  • 00:45:15
    então eu vou copiar ó copia de vocês ó
  • 00:45:17
    tá vendo que ele tem essas asinhas
  • 00:45:18
    deitadas aqui ó então copia nessas três
  • 00:45:21
    asinhas deitadas até o final das três
  • 00:45:23
    aqui ó copiei elas aqui e agora vamos lá
  • 00:45:25
    nas nossas rotas
  • 00:45:27
    vamos primeiro testar aqui na nossa rota
  • 00:45:29
    de teste por pra gente não ficar
  • 00:45:31
    gastando requisição gratuita Tá então
  • 00:45:33
    vamos testar aqui como que a gente pode
  • 00:45:34
    fazer essa parte de quebrar e
  • 00:45:36
    destrinchar esse cara então vamos lá
  • 00:45:38
    então vou colocar aqui um let chamar de
  • 00:45:40
    response tex Vou colocar aqui ó aspas
  • 00:45:44
    duplas e eu vou colocar cont control V
  • 00:45:47
    aqui então Ó é toda resposta que ele me
  • 00:45:50
    devolve exatamente igual tá eu recebo na
  • 00:45:52
    variável aqui pra gente então aprender
  • 00:45:53
    como que a gente pode formatar Então vou
  • 00:45:55
    dar aqui um try e um catch então caso de
  • 00:45:58
    erro aqui a gente vai dar um console pon
  • 00:45:59
    log nesse erro aqui e dentro do try
  • 00:46:02
    Então a gente vai tentar extrair esses
  • 00:46:03
    caras então para isso a gente pode
  • 00:46:05
    extrair usando o reject Então vou
  • 00:46:07
    colocar aqui ó extrair o Jason tá só pra
  • 00:46:09
    gente ter let Jason string igual a
  • 00:46:12
    respon text pon replace E aí eu quero
  • 00:46:16
    fazer aqui o nosso reject Zinho legal
  • 00:46:18
    então abre aqui o nosso Barrinha coloco
  • 00:46:20
    aqui ó para extrair o nosso nossas três
  • 00:46:22
    aspas deitadas que ele tem aqui no
  • 00:46:24
    início tá barra aqui invertida w as
  • 00:46:26
    carístico aqui já já a gente vai
  • 00:46:28
    entender o que que é cada coisa Barrinha
  • 00:46:30
    invertida de novo tá e aí n barra normal
  • 00:46:34
    aqui tá G vírgula E aí coloca aqui o
  • 00:46:39
    nosso string aqui beleza depois disso a
  • 00:46:41
    gente vai fazer um pouquinho parecido
  • 00:46:43
    ponto
  • 00:46:44
    replace a gente vai ter o Nossa Barrinha
  • 00:46:46
    invertida com a nossa Barrinha n tá
  • 00:46:49
    coloco aqui a nossas três asinhas
  • 00:46:51
    deitadas barra invertida G vírgula e
  • 00:46:54
    aqui o nosso aspas aqui que é Nossa
  • 00:46:56
    string E aí então eu quero juntar tudo
  • 00:46:58
    então ponto tram para tirar os espaços
  • 00:47:00
    entre eles Aí então a gente tira os
  • 00:47:01
    espaços antes e depois beleza que que é
  • 00:47:03
    esse cara aqui né que parece uma loucura
  • 00:47:06
    então a gente tá usando o replace pra
  • 00:47:08
    gente remover o markd porque ele devolve
  • 00:47:11
    em markd essas asinhas deitadas o que
  • 00:47:13
    que é o markd Mateus quando a gente tá
  • 00:47:15
    escrevendo alguma coisa ó coloco três
  • 00:47:16
    asinhas deitadas quando é um markd tá
  • 00:47:18
    vendo que ele cria um bloco de código
  • 00:47:20
    então ele acha que a gente tá num num
  • 00:47:22
    num bloco de código só que a gente não
  • 00:47:24
    tá então no caso eu não tenho esse bloco
  • 00:47:26
    de código então estou removendo esse
  • 00:47:27
    markdown aqui ó bloco de código antes e
  • 00:47:29
    bloco de código no final e juntando tudo
  • 00:47:31
    aqui então é isso que a gente tá fazendo
  • 00:47:33
    aqui agora e esse nosso barra G é um
  • 00:47:35
    modificador global que ele indica né
  • 00:47:36
    então que a gente vai ter uma
  • 00:47:37
    substituição global ou seja vai ocorrer
  • 00:47:40
    em todas as Strings isso aqui e o nosso
  • 00:47:42
    barra n seguido dessas três asinhas aqui
  • 00:47:44
    ele significa então que ele indica aqui
  • 00:47:46
    o final de um bloco de código vamos
  • 00:47:48
    testar como que isso vai devolver pra
  • 00:47:49
    gente poder entender também melhor então
  • 00:47:51
    a gente recebe todo esse replace então a
  • 00:47:53
    gente tira o markdown a gente pega todos
  • 00:47:55
    esses barra n que ele dá pra gente aqui
  • 00:47:57
    que é uma quebra de linha para baixo e
  • 00:47:58
    ele já tá devolvendo através de
  • 00:48:00
    propriedade tá vendo o peso e a
  • 00:48:01
    propriedade então ele já tá devolvendo a
  • 00:48:02
    gente tá removendo isso removendo então
  • 00:48:05
    olhando onde que a gente tem um barra n
  • 00:48:06
    aplicando uma quebra de linha então
  • 00:48:08
    agora a gente pode devolver aqui pra
  • 00:48:10
    gente testar Então vou dar aqui um
  • 00:48:12
    return reply P sent Jason string aqui
  • 00:48:15
    pra gente poder eh testar isso aqui ou
  • 00:48:18
    igual a gente tá fazendo né abre fecho
  • 00:48:19
    Chaves data dois pontos Jason string
  • 00:48:22
    aqui beleza vamos salvar isso aqui agora
  • 00:48:24
    então vamos testar aqui agora a nossa
  • 00:48:26
    string a gente criou na nossa rota de
  • 00:48:28
    teste né então vou salvar vamos duplicar
  • 00:48:30
    essa nossa rota aqui ó vamos dar aqui um
  • 00:48:32
    duplicate aqui a cópia né a cópia barra
  • 00:48:35
    teste a gente não precisa aqui de um
  • 00:48:37
    desse cara ela é do tipo a nossa rota de
  • 00:48:39
    teste ela é do tipo get e a gente pode
  • 00:48:41
    testar aqui ó D um send e olha só ele tá
  • 00:48:44
    devolvendo dentro da propriedade data
  • 00:48:46
    ele tá já devolvendo o objeto Mas por
  • 00:48:48
    que que ele não formatou porque a gente
  • 00:48:49
    tá pegando aqui e dando um replace ou
  • 00:48:51
    seja só removendo os itens mas não
  • 00:48:53
    devolvemos ainda como um Não convertemos
  • 00:48:56
    essa string que ele devolve como um
  • 00:48:57
    texto em um um Jason em um objeto então
  • 00:49:00
    para fazer isso a gente vai pegar aqui ó
  • 00:49:02
    let vou chamar aqui Jason Object igual a
  • 00:49:05
    Jason ppse Então a gente vai converter
  • 00:49:07
    essa nossa Jason string para um par
  • 00:49:09
    Então a gente vai dar um parse converter
  • 00:49:11
    para um objeto um Jason aqui então agora
  • 00:49:13
    a gente devolve esse nosso Jason Object
  • 00:49:15
    ele vai fazer a conversão dessa string
  • 00:49:17
    devolve pra gente nessa variável e a
  • 00:49:19
    gente retorna essa variável Então vou
  • 00:49:21
    salvar isso aqui agora e vamos lá testar
  • 00:49:23
    Vamos aqui na nossa rota de Create né
  • 00:49:25
    que é o Barra test aqui aqui na verdade
  • 00:49:27
    vamos dar aqui um send e agora sim ó
  • 00:49:29
    olha que legal agora ele devolve
  • 00:49:32
    certinho pra gente propriedade data
  • 00:49:33
    Confere aí tá propriedade data
  • 00:49:36
    propriedade nome propriedade sexo idade
  • 00:49:39
    altura peso objetivo refeições Olha que
  • 00:49:42
    legal refeição ele devolve uma arrei
  • 00:49:44
    olha que sensacional devolve uma arrei
  • 00:49:47
    aqui ó cada objeto tem um horário um
  • 00:49:50
    nome um alimento e no alimento é um
  • 00:49:52
    arreio aqui ó com os alimentos Olha que
  • 00:49:54
    sensacional e também aqui ó outro objeto
  • 00:49:56
    levar todas aqui então vou abrir todas
  • 00:49:58
    aqui né fic mais fácil Vamos abrir todas
  • 00:50:00
    aqui pra gente ver ó Então a gente tem o
  • 00:50:01
    café da manhã o lanche da manhã O almoço
  • 00:50:04
    lanche da tarde jantar eh lanche antes
  • 00:50:08
    de dormir então legal e ele devolve
  • 00:50:09
    aquilo que a gente pediu ó suplementos
  • 00:50:11
    com uma Red de suplementos indicado eh
  • 00:50:13
    para essa pessoa aqui nesse caso tá
  • 00:50:16
    então isso é muito legal então a gente
  • 00:50:17
    já tá agora fazendo aí recebendo e
  • 00:50:20
    retornando então agora a gente vai fazer
  • 00:50:22
    o quê vamos voltar lá pra nossa rota
  • 00:50:24
    agora que a gente aprendeu a gente fez
  • 00:50:25
    isso aqui só que aqui era uma rota de
  • 00:50:27
    teste né pra gente não ficar gastando
  • 00:50:28
    requisição vamos aplicar lá na nossa
  • 00:50:30
    rota original então eu vou copiar isso
  • 00:50:32
    aqui ó esses dois que é o nosso replace
  • 00:50:34
    e o Jason pars Então vamos fechar isso
  • 00:50:36
    aqui agora vamos lá no nosso serviço e
  • 00:50:38
    aqui que a gente precisa aplicar né
  • 00:50:40
    porque é aqui que a gente devolve o o da
  • 00:50:41
    nossa P real então depois do console
  • 00:50:44
    aqui ó dentro do nosso if antes do
  • 00:50:47
    return a gente vai fazer isso ó Então
  • 00:50:50
    vamos só dar um tabz legal aqui deixa eu
  • 00:50:53
    dar um shift Tab aqui Jason string ao
  • 00:50:55
    invés do nosso response text a gente vai
  • 00:50:57
    ter o nosso Jason text aqui ó Jason text
  • 00:50:59
    ele vai dar o replace depois a gente vai
  • 00:51:01
    receber aqui o nosso Jason string a
  • 00:51:03
    gente vai fazer o par para converter num
  • 00:51:04
    objeto e agora a gente devolve dentro do
  • 00:51:06
    data esse Jason Object Beleza então
  • 00:51:09
    agora vamos salvar isso aqui e agora a
  • 00:51:11
    gente pode testar a nossa rota real
  • 00:51:13
    então aqui a gente deixou duas rotas tá
  • 00:51:15
    Por quê pra gente não ficar gastando
  • 00:51:17
    requisição desnecessária depois quando
  • 00:51:18
    tiver testando o aplicativo então a
  • 00:51:20
    gente de deixamos aqui no nosso Deixa eu
  • 00:51:22
    só salvar aqui do Thunder client uma
  • 00:51:25
    rota chamada barra teste que quando a
  • 00:51:27
    gente dá aqui ó ele vai sempre devolver
  • 00:51:28
    isso aqui fixo né que é uma rota de
  • 00:51:30
    teste que não bate na api e a gente tem
  • 00:51:32
    uma rota chamada barra Create que de
  • 00:51:34
    fato pega os dados que você me mandar e
  • 00:51:35
    consulta lá na nossa I do gem e devolve
  • 00:51:39
    real né então agora V dar um sent pra
  • 00:51:41
    gente testar isso aqui agora vamos lá
  • 00:51:43
    processando el demora um pouquinho né
  • 00:51:45
    porque ele comunica lá e devolveu pra
  • 00:51:47
    gente ó um 200 devolveu todos os dados
  • 00:51:50
    agora reais né olha que legal V mudar
  • 00:51:52
    aqui ó sexo por exemplo feminino Vou
  • 00:51:55
    colocar aqui a
  • 00:51:57
    fulana é o nome dela ela tem 23 anos é o
  • 00:52:00
    objetivo dela é emagrecer e aí eu vou
  • 00:52:03
    colocar aqui levemente o peso dela vou
  • 00:52:05
    colocar o mesmo peso mesma altura Beleza
  • 00:52:06
    vou dar um send aqui pra gente testar
  • 00:52:08
    vamos lá vai processar e olha que legal
  • 00:52:10
    ele mudou aqui né O Retorno agora olha
  • 00:52:12
    lá ele devolveu os dados ele devolveu
  • 00:52:14
    aqui ó café da manhã fatia de pão
  • 00:52:16
    integral uma colher de sopa de queijo
  • 00:52:18
    aqui beleza devolveu aqui também um
  • 00:52:20
    lanche da manhã iogurte uma xícara de
  • 00:52:22
    fruta vermelha devolveu aqui mais um
  • 00:52:23
    alimento do almoço ó já mudou aqui para
  • 00:52:25
    integrar algum algumas coisas então
  • 00:52:27
    legal demais ó mudou aqui o suplemento
  • 00:52:29
    né a dica então sensacional Agora ele já
  • 00:52:32
    tá devolvendo pra gente com base nos
  • 00:52:33
    dados aqui agora então a gente pode
  • 00:52:36
    partir pro nosso aplicativo então a
  • 00:52:38
    gente criou o nosso backend criando o
  • 00:52:40
    nosso api com nodejs comunicando com o
  • 00:52:43
    Gemini aí e agora falta o nosso
  • 00:52:45
    aplicativo então para isso ó agora a
  • 00:52:47
    gente pode começar a criar aí o nosso
  • 00:52:49
    aplicativo usando Expo nessa aula aqui a
  • 00:52:52
    gente vai ter duas aulas né Essa criando
  • 00:52:54
    api e a aula criando aí o aplicativo
  • 00:52:57
    final né então agora então a gente pode
  • 00:52:59
    partir pro nosso aplicativo para criar a
  • 00:53:01
    parte mobile né criar o nosso aplicativo
  • 00:53:03
    e consumir aí o nosso a nossa api que a
  • 00:53:06
    gente desenvolveu então para isso a
  • 00:53:07
    gente vai fazer na nossa segunda aula
  • 00:53:09
    que é criando focado na parte mobile né
  • 00:53:11
    usando a nossa ap que a gente criou
  • 00:53:13
    então a gente fez a parte do backend que
  • 00:53:15
    era criar nossa payon node consumir aí o
  • 00:53:17
    gem ai com retornar os dados aí da forma
  • 00:53:20
    que a gente queria o prompt que a gente
  • 00:53:21
    viu que a gente pode manipular o prompt
  • 00:53:23
    E pedir a forma de retorno também que
  • 00:53:25
    ficou sensacional então a agora antes de
  • 00:53:27
    você ir pra segunda aula posto aí marca
  • 00:53:29
    a gente lá no Instagram @su jeito
  • 00:53:31
    programador quero ver você lá no Stories
  • 00:53:33
    fazendo Esse projeto aí e lembrando né
  • 00:53:35
    recado importante se você quer aprender
  • 00:53:38
    desde o zero a desenvolver aplicativos
  • 00:53:39
    sites sair desde o zero pronto pro
  • 00:53:42
    mercado aí criando projetos
  • 00:53:43
    profissionais O link tá aqui embaixo e
  • 00:53:45
    Aproveita porque as vagas são limitadas
  • 00:53:47
    pra gente atender todo mundo para eu dar
  • 00:53:49
    um suporte porque você não entra só num
  • 00:53:51
    curso para só fazer mais um tutorial
  • 00:53:53
    mais um curso não é para você realmente
  • 00:53:54
    aprender e sair pronto pro mercado ter
  • 00:53:56
    acesso à comunidade todas as aulas de
  • 00:53:58
    vaga de freelan Então você quer
  • 00:54:01
    realmente aprender a desenvolver
  • 00:54:02
    aplicativo site sistemas web passo a
  • 00:54:05
    passo sair pronto pro mercado O link tá
  • 00:54:07
    aqui embaixo então te vejo na próxima
  • 00:54:09
    aula se inscreve aqui no canal para você
  • 00:54:11
    não perder e posta lá como é que tá o
  • 00:54:13
    seu projeto então te beijo aí na próxima
  • 00:54:14
    aula
タグ
  • React Native
  • TypeScript
  • API
  • Gemini AI
  • Fastify
  • Node.js
  • Inteligencia Artificial
  • Desarrollo móvil
  • Dietas personalizadas
  • Backend