🌤️ Hava Durumu API Asistanı
Bu proje, OpenWeather API kullanarak şehirlerin güncel hava durumu bilgilerini sağlayan profesyonel bir Flask web servisidir.
🚀 Özellikler
- ✅ Güncel hava durumu bilgileri (sıcaklık, nem, rüzgar hızı)
- ✅ Türkçe hava durumu açıklamaları
- ✅ Hissedilen sıcaklık bilgisi
- ✅ Swagger UI ile interaktif API dokümantasyonu
- ✅ Kapsamlı hata yönetimi
- ✅ Güvenli API anahtarı saklama
- ✅ RESTful API tasarımı
- ✅ İki farklı endpoint formatı (query ve path parametresi)
📋 Gereksinimler
- Python 3.7+
- OpenWeather API anahtarı (ücretsiz)
🛠️ Kurulum
Bağımlılıkları yükleyin:
pip install -r requirements.txtAPI anahtarını ayarlayın:
# .env.example dosyasını kopyalayın cp .env.example .env # .env dosyasını düzenleyin ve API anahtarınızı girin # OPENWEATHER_API_KEY=your_actual_api_key_here- OpenWeather sitesinden ücretsiz API anahtarı alın
- API anahtarını
.envdosyasına yapıştırın
Swagger UI’lı uygulamayı başlatın:
python app_swagger.pyTarayıcıda test edin:
- Swagger UI (Önerilen): http://localhost:5001/swagger/
- Ana sayfa: http://localhost:5001/api/v1/
- Hava durumu: http://localhost:5001/api/v1/weather?city=Istanbul
🌐 API Kullanımı
📚 Swagger UI (Önerilen)
En kolay yol: http://localhost:5001/swagger/ adresini ziyaret edin!
- İnteraktif API dokümantasyonu
- Canlı test örnekleri
- Otomatik kod örnekleri
- Detaylı parametre açıklamaları
Ana Endpoint’ler
GET /api/v1/weather?city=<şehir_ismi> # Query parametresi
GET /api/v1/weather/<şehir_ismi> # Path parametresi
Örnekler
İstanbul için hava durumu (Query):
curl "http://localhost:5001/api/v1/weather?city=Istanbul"
Ankara için hava durumu (Path):
curl "http://localhost:5001/api/v1/weather/Ankara"
Uluslararası şehir:
curl "http://localhost:5001/api/v1/weather?city=London"
Yanıt Formatı
Başarılı yanıt:
{
"success": true,
"city": "Istanbul",
"country": "TR",
"message": "Istanbul (TR)'da hava sıcaklığı 22°C (hissedilen 24°C), nem oranı %65, rüzgar hızı 15.5 km/h ve hava durumu: Açık.",
"details": {
"temperature": 22,
"feels_like": 24,
"humidity": 65,
"wind_speed_kmh": 15.5,
"description": "Açık",
"icon": "01d"
}
}
Hata yanıtı:
{
"error": "Lütfen geçerli bir şehir ismi giriniz."
}
🔧 Konfigürasyon
.env dosyasında aşağıdaki ayarları yapabilirsiniz:
OPENWEATHER_API_KEY=your_api_key_here
FLASK_ENV=development
FLASK_DEBUG=True
🛡️ Güvenlik
- ✅ API anahtarı
.envdosyasında güvenli şekilde saklanır - ✅
.gitignoreile hassas bilgiler GitHub’a yüklenmez - ✅
.env.exampledosyası ile güvenli kurulum kılavuzu - ✅ Timeout ve hata yönetimi mevcuttur
- ⚠️ ÖNEMLİ:
.envdosyasını asla GitHub’a yüklemeyin!
📝 Hata Kodları
400- Geçersiz şehir ismi404- Şehir bulunamadı401- Geçersiz API anahtarı503- Bağlantı sorunu504- Timeout500- Sunucu hatası
🧪 Test
Swagger UI ile Test (Önerilen)
- http://localhost:5001/swagger/ adresini açın
- İstediğiniz endpoint’i seçin
- “Try it out” butonuna tıklayın
- Şehir ismini girin ve “Execute” yapın
Otomatik Test Scripti
# Swagger API testleri
python test_swagger.py
# Eski API testleri
python test_weather.py
Manuel Test
# Geçerli şehir (Query)
curl "http://localhost:5001/api/v1/weather?city=Istanbul"
# Geçerli şehir (Path)
curl "http://localhost:5001/api/v1/weather/Ankara"
# Geçersiz şehir
curl "http://localhost:5001/api/v1/weather?city=GeçersizŞehir"
# Boş parametre
curl "http://localhost:5001/api/v1/weather"
📄 Lisans
Bu proje MIT lisansı altında lisanslanmıştır.
🤝 Katkıda Bulunma
- Fork yapın
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Commit yapın (
git commit -m 'Add amazing feature') - Push yapın (
git push origin feature/amazing-feature) - Pull Request açın
📞 İletişim
Sorularınız için issue açabilirsiniz.
Not: API anahtarınızı asla public repository’lerde paylaşmayın!
Hava Durumu API Asistanı
Project Details
- iremaltunay55/son2
- Last Updated: 5/27/2025
Recomended MCP Servers
A collection of MCP servers.
MCP Server for SQL Server using node-mssql
MCP server for interacting with cryptocurrency daemon RPC interfaces (BETA)
Model Context Protocol (MCP) Server for dify workflows
Chinese Medicine Health Program.
The official home of the Presto distributed SQL query engine for big data
MacOS Clipboard access via Model Context Protocol





