Criando Aplicativo + IA profissional do zero - AULA 01 🔥

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

Resumen

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.

Para llevar

  • 📱 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.

Cronología

  • 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.

Ver más

Mapa mental

Vídeo de preguntas y respuestas

  • 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.

Ver más resúmenes de vídeos

Obtén acceso instantáneo a resúmenes gratuitos de vídeos de YouTube gracias a la IA.
Subtítulos
pt
Desplazamiento automático:
  • 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
Etiquetas
  • React Native
  • TypeScript
  • API
  • Gemini AI
  • Fastify
  • Node.js
  • Inteligencia Artificial
  • Desarrollo móvil
  • Dietas personalizadas
  • Backend