Added ReadMe
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
# 🌟 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](https://docs.astral.sh/uv/)
|
||||
|
||||
`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
|
||||
|
||||
1. 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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user