121 lines
2.4 KiB
Markdown
121 lines
2.4 KiB
Markdown
# 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
|
|
# EFC_microservices
|