commit 196025dc0f3638438c15919ad26e9b6cb0b07756 Author: Kevin Rosales Date: Mon Jul 28 11:03:39 2025 -0600 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..ece45cf --- /dev/null +++ b/README.md @@ -0,0 +1,119 @@ +# 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 + +1. Crear un entorno virtual: +```bash +python -m venv venv +source venv/bin/activate # En Linux/Mac +# o +venv\Scripts\activate # En Windows +``` + +2. Instalar dependencias: +```bash +pip install -r requirements.txt +``` + +## Ejecutar el microservicio + +```bash +python main.py +``` + +O usando uvicorn directamente: +```bash +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 bienvenida +- `GET /health` - Health check del servicio + +### Gestión de items +- `GET /items` - Obtener todos los items +- `GET /items/{item_id}` - Obtener un item específico +- `POST /items` - Crear un nuevo item +- `PUT /items/{item_id}` - Actualizar un item existente +- `DELETE /items/{item_id}` - Eliminar un item +- `GET /items/category/{category}` - Obtener items por categoría + +## Ejemplo de uso + +### Crear un item +```bash +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 +```bash +curl -X GET "http://localhost:8000/items" +``` + +### Obtener items por categoría +```bash +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 +```json +{ + "id": 1, + "name": "string", + "description": "string", + "price": 0.0, + "category": "string" +} +``` + +### ItemCreate +```json +{ + "name": "string", + "description": "string", + "price": 0.0, + "category": "string" +} +``` +# efc_microservices +# EFC_microservices