Developing a FastAPI and React application using microservices.

Posted by


Neste tutorial, vamos aprender a criar uma aplicação web utilizando FastAPI e React, utilizando microsserviços para dividir nossa aplicação em partes independentes e escaláveis. FastAPI é um framework web para desenvolvimento rápido de APIs em Python, enquanto React é uma biblioteca de JavaScript para construção de interfaces de usuário interativos.

Passo 1: Configurando o ambiente de desenvolvimento

Primeiro, certifique-se de ter o Python instalado em sua máquina. Você pode fazer o download em https://www.python.org/. Em seguida, instale o FastAPI e o uvicorn, um servidor de desenvolvimento para FastAPI, executando os seguintes comandos:

pip install fastapi
pip install uvicorn

Para a parte frontend, você também precisará do Node.js e do npm instalados. Você pode fazer o download em https://nodejs.org/. Em seguida, instale o create-react-app, que nos ajudará a criar um projeto React rapidamente:

npm install -g create-react-app

Passo 2: Criando o microsserviço com FastAPI

Vamos começar criando um microsserviço com FastAPI. Crie um novo diretório chamado backend e dentro dele crie um arquivo chamado main.py. Adicione o seguinte código ao arquivo main.py:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello World"}

Agora, para executar o microsserviço, execute o seguinte comando no terminal dentro do diretório backend:

uvicorn main:app --reload

Isso iniciará o servidor de desenvolvimento FastAPI no endereço http://127.0.0.1:8000/.

Passo 3: Criando a aplicação React

Agora vamos criar a parte frontend da aplicação utilizando React. No diretório raiz do seu projeto, execute o seguinte comando para criar um novo projeto React:

create-react-app frontend

Em seguida, navegue até o diretório frontend e instale o pacote axios para fazer requisições para nossa API FastAPI:

npm install axios

Agora, abra o arquivo src/App.js e substitua o conteúdo por:

import React, { useState, useEffect } from 'react';
import axios from 'axios';

function App() {
  const [message, setMessage] = useState('');

  useEffect(() => {
    axios.get('http://127.0.0.1:8000')
      .then(res => {
        setMessage(res.data.message);
      })
      .catch(err => {
        console.log(err);
      });
  }, []);

  return (
    <div>
      <h1>{message}</h1>
    </div>
  );
}

export default App;

Por fim, para iniciar o servidor de desenvolvimento do React, execute o seguinte comando dentro do diretório frontend:

npm start

Isso iniciará o servidor de desenvolvimento do React no endereço http://127.0.0.1:3000/.

Passo 4: Integração entre microsserviços

Agora que ambos os microsserviços estão rodando, podemos integrá-los. Altere o arquivo src/App.js do frontend para fazer a requisição para o microsserviço FastAPI:

import React, { useState, useEffect } from 'react';
import axios from 'axios';

function App() {
  const [message, setMessage] = useState('');

  useEffect(() => {
    axios.get('http://127.0.0.1:8000')
      .then(res => {
        setMessage(res.data.message);
      })
      .catch(err => {
        console.log(err);
      });
  }, []);

  return (
    <div>
      <h1>{message}</h1>
    </div>
  );
}

export default App;

Dessa forma, nossa aplicação React agora está fazendo requisições para o microsserviço FastAPI e exibindo a mensagem retornada.

Este é apenas um exemplo simples de como criar uma aplicação com FastAPI e React utilizando microsserviços. A partir daqui, você pode expandir e personalizar sua aplicação conforme necessário. Além disso, existem muitas outras ferramentas e técnicas que podem ser utilizadas para criar microsserviços escaláveis e eficientes. Espero que este tutorial tenha sido útil e que você tenha aprendido algo novo!

0 0 votes
Article Rating
12 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@aspimbr
1 month ago

Opa irmão, muito bom o vídeo, parabéns! Precisava utilizar python para ler um JSON enorme e passar os valores para o meu front. Agora uma dúvida, quando eu faço o build do projeto, como que eu faria para esse servidor continuar rodando? Se existe alguma maneira para isso.

@lucasrochafernandes8568
1 month ago

Olá tudo bem? Ótimo vídeo. Estou desenvolvendo um app usando as mesmas ferramentas, porém tenho um erro quando chamo a rota POST:
'has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request'

já resolvi colocando as configurações do CORS tudo certinho no Python, mas ainda o erro persiste e é só na rota POST e PATCH, nas rotas GET funciona normal. Já pesquisei em tudo quanto é lugar e não acho solução.

@jorge.barcelos
1 month ago

Top demais

@melissawebster1040
1 month ago

Ótimo, direto ao ponto! Obrigada!

@raphandrews1
1 month ago

boa

@MrHaloshot
1 month ago

Ajudou demais ,pode ser extremamente simples pra quem já está na área ,mas é essencial pra quem começa Obrigado

@FabioRBelotto
1 month ago

Duvida ben ignorante. Porquê o front end nao conseguiu acessar o back end ? O fastapi nao fica abero a responder qhalquer requisição (tanto que abre ate no navegador e tals )?

@FabioRBelotto
1 month ago

Muito legal teu video. Conseguiria fazer um video com um sistema "completo". Imagina um app sei la, de consultar livros da biblioteca. Só para ver um front mais competo, un back que tem banco de dados. Etc.

@jeffmga
1 month ago

estou procurando assunto sobre django para iniciantes, até ebooks ajudaria.

@ColldMaster
1 month ago

Incrível… Muito bom!

@gabrielpimenta3640
1 month ago

Conteúdo top! Justamente as stacks que eu mais gosto juntas haha

@alxitalianobr
1 month ago

Continue com videos do FastAPI….é ótimo pra novatos em API como eu ver essas possibilidades!! valeww