2.4 KiB
2.4 KiB
EFC Microservice
Un microservicio de ejemplo desarrollado con FastAPI que permite gestionar items con operaciones CRUD completas.
Características
- API RESTful con FastAPI
- Validación de datos con Pydantic
- Documentación automática con Swagger UI
- Operaciones CRUD (Create, Read, Update, Delete)
- Filtrado por categoría
- Endpoint de health check
Instalación
- Crear un entorno virtual:
python -m venv venv
source venv/bin/activate # En Linux/Mac
# o
venv\Scripts\activate # En Windows
- Instalar dependencias:
pip install -r requirements.txt
Ejecutar el microservicio
python main.py
O usando uvicorn directamente:
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
El servidor estará disponible en: http://localhost:8000
Documentación API
Una vez que el servidor esté ejecutándose, puedes acceder a:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
Endpoints disponibles
Endpoints básicos
GET /- Mensaje de bienvenidaGET /health- Health check del servicio
Gestión de items
GET /items- Obtener todos los itemsGET /items/{item_id}- Obtener un item específicoPOST /items- Crear un nuevo itemPUT /items/{item_id}- Actualizar un item existenteDELETE /items/{item_id}- Eliminar un itemGET /items/category/{category}- Obtener items por categoría
Ejemplo de uso
Crear un item
curl -X POST "http://localhost:8000/items" \
-H "Content-Type: application/json" \
-d '{
"name": "Laptop",
"description": "Laptop para desarrollo",
"price": 1200.00,
"category": "electronics"
}'
Obtener todos los items
curl -X GET "http://localhost:8000/items"
Obtener items por categoría
curl -X GET "http://localhost:8000/items/category/electronics"
Estructura del proyecto
EFC_microservice/
├── main.py # Aplicación principal
├── requirements.txt # Dependencias
└── README.md # Documentación
Modelo de datos
Item
{
"id": 1,
"name": "string",
"description": "string",
"price": 0.0,
"category": "string"
}
ItemCreate
{
"name": "string",
"description": "string",
"price": 0.0,
"category": "string"
}