Aplicación backend construida con FastAPI que permite realizar operaciones CRUD (Create, Read, Update, Delete) sobre una BD PostgreSQL.
1. En una terminal se ejecuta el comando docker run --name fastapi-postgres -e POSTGRES_PASSWORD=password -d -p 5432:5432 postgres:14.17 para crear un contenedor PostgreSQL con Docker.
2. Se inserta el comando docker exec -it fastapi-postgres psql -U postgres para acceder a la consola interactiva de PostgreSQL dentro del contenedor fastapi-postgres.
3. Se crea una base de datos mediante el comando create database fastapi_database;.
4. Se crea un usuario mediante el comando create user myuser with encrypted password 'password';.
5. Se le añaden permisos al usuario para que pueda realizar operaciones sobre la base de datos mediante el comando grant all privileges on database fastapi_database to myuser;.
6. Accedemos a fastapi_database mediante el comando \c fastapi_database.
7. En una nueva terminal, creamos un entorno virtual python3 -m venv venv y lo activamos source venv/bin/activate. Posteriormente, instalamos los recursos necesarios pip3 install "fastapi[all]" SQLAlchemy psycopg2-binary.
7. Introducimos el comando uvicorn main:app --reload para ejecutar la aplicación FastAPI.
8. Accedemos a http://127.0.0.1:8000/docs para probar las funcionalidades de la API implementada.
Ejm: Se añaden 3 contactos a la tabla contacts. Para ello, se sigue el siguiente esquema:
{"first_name": "string",
"last_name": "string",
"email": "string",
"phone_number": "string"
}
Se muestran todos los contactos de la tabla contacts.
Ejm: Se quiere mostrar toda la información del contacto con id = 2 (existe) de la tabla contacts.
Ejm: Se quiere mostrar toda la información del contacto con id = 4 (no existe) de la tabla contacts.
Ejm: Se quiere actualizar el contacto con id = 3 (existe) de la tabla contacts. Para ello, se sigue el siguiente esquema:
{"first_name": "string",
"last_name": "string",
"email": "string",
"phone_number": "string"
}
Ejm: Se quiere actualizar el contacto con id = 4 (no existe) de la tabla contacts.
Ejm: Se quiere borrar el contacto con id = 3 (existe) de la tabla contacts.
Ejm: Se quiere borrar el contacto con id = 4 (no existe) de la tabla contacts.