🌟 Kind API - Random Compliment Service
A simple REST API that provides random compliments from a YAML file.
🚀 Features
✅ Returns a random compliment from a YAML file.
✅ Health check endpoint for monitoring.
✅ Error handling for missing files or malformed YAML.
✅ Secure YAML parsing (yaml.safe_load).
✅ Easy to deploy with Docker(soon) or local development.
📦 Dependencies
Uses UV for environment and package version handling: uv link
uv sync
📁 File Structure
Your project should have these files:
kind-api/
├── kind_response.yaml # Your YAML file with compliments
├── main.py # Flask API script
└── README.md # This file
🔧 Configuration
- YAML Format (kind_response.yaml)
Ensure your YAML file follows this structure:
compliments:
- "Your kindness makes others feel seen and valued."
- "Your creativity inspires me every time I see it."
# ... (add more compliments)
📡 API Endpoints
✅ Get a Random Compliment
Request:
curl http://localhost:5000/api/v1/compliment
Response:
{
"api_version": "v1",
"compliment": "Your kindness makes others feel seen and valued.",
"status": "success"
}
📊 Health Check
Request:
curl http://localhost:5000/api/health
Response:
{
"status": "ok",
"message": "Kind API is running",
"version": "1.0.0"
}
🚀 Deployment Options
✅ Local Development
Run the server:
uv run main.py
🐳 Docker (Coming Soon)
Create a Dockerfile with:
FROM python:3.10-slim
WORKDIR /app
COPY . .
RUN pip install flask pyyaml
CMD ["python3", "kind_api.py"]
Build and run:
docker build -t kind-api .
docker run -p 5000:5000 kind-api
🛡️ Security Notes
- Uses yaml.safe_load() to avoid YAML injection risks.
- Proper HTTP status codes for errors (404, 500).
- Environment variables support for flexible deployment.