React FastAPI Example Code
Overview
Demo
Overview
- Backend
- fast-api
- Frontend
- React/Typescript/React Router
- Bundled using parcel (low barrier to entry)
Frontend/backend have independent docker files which can be orchestrated with docker-compose
Running
pip install docker-compose
docker-compose up -d
Head to localhost:1234 to view the frontend
Extensions
If I had some more time:
- Split production/development docker files
- Write tests for frontend / backend
- Pin python dependencies, explore tools like poetry/pipenv/pip-tools
- Proper error handling on the backend
Backend API Usage
pipx install httpie
Usage:
http -b localhost:8000/users/1
[
{
"avatar": "https://reqres.in/img/faces/2-image.jpg",
"email": "janet.weaver@reqres.in",
"first_name": "Janet",
"id": 2,
"last_name": "Weaver"
},
{
"avatar": "https://reqres.in/img/faces/3-image.jpg",
"email": "emma.wong@reqres.in",
"first_name": "Emma",
"id": 3,
"last_name": "Wong"
},
{
"avatar": "https://reqres.in/img/faces/4-image.jpg",
"email": "eve.holt@reqres.in",
"first_name": "Eve",
"id": 4,
"last_name": "Holt"
},
{
"avatar": "https://reqres.in/img/faces/5-image.jpg",
"email": "charles.morris@reqres.in",
"first_name": "Charles",
"id": 5,
"last_name": "Morris"
},
{
"avatar": "https://reqres.in/img/faces/6-image.jpg",
"email": "tracey.ramos@reqres.in",
"first_name": "Tracey",
"id": 6,
"last_name": "Ramos"
}
]
http -b localhost:8000/users/1
{
"avatar": "https://reqres.in/img/faces/1-image.jpg",
"email": "george.bluth@reqres.in",
"first_name": "George",
"id": 1,
"last_name": "Bluth"
}