2.0 KiB
🌟 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.