weatherbot / app.py
editazzz's picture
Upload 3 files
c912983 verified
raw
history blame
1.35 kB
from fastapi import FastAPI, Query
from pydantic import BaseModel
import requests
from datetime import date
import uvicorn
app = FastAPI()
class WeatherRequest(BaseModel):
location: str
API_KEY = "d66b99384fc0495b9bb43946242607"
BASE_URL = "http://api.weatherapi.com/v1/current.json"
def get_weather(location):
params = {
"key": API_KEY,
"q": location,
"dt": date.today().isoformat()
}
response = requests.get(BASE_URL, params=params)
if response.status_code == 200:
data = response.json()
current = data['current']
return f"Temperature: {current['temp_c']}°C, Condition: {current['condition']['text']}"
else:
return "Unable to fetch weather data"
@app.get("/")
def home():
return {"message": "Welcome to the Weather Finder API"}
@app.get("/weather")
def get_weather_endpoint(location: str = Query(..., description="Location to get weather for")):
weather_info = get_weather(location)
return {"location": location, "weather_info": weather_info}
@app.post("/weather")
def post_weather_endpoint(request: WeatherRequest):
weather_info = get_weather(request.location)
return {"location": request.location, "weather_info": weather_info}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)