BlogC# UygulamalarıGenelMühendislikProjeler

C# ile Hava Durumu Uygulaması Yapımı — API Entegrasyonu

C# öğrenmenin en iyi yolu gerçek bir proje yapmaktır, Hava durumu uygulaması da bu iş için mükemmel bir başlangıç noktası: hem API kullanmayı öğretir, hem JSON işlemeyi, hem de Windows Forms ile arayüz geliştirmeyi. Bu yazıda sıfırdan çalışan bir C# hava durumu uygulaması yapacağız.

Hazırsan başlayalım!


Projede Neler Öğreneceksin?

Bu proje boyunca şu konulara hakim olacaksın:

  • REST API nedir, nasıl çağrılır
  • HttpClient ile web istekleri atmak
  • JSON verisini C# nesnelerine dönüştürmek (Newtonsoft.Json)
  • Windows Forms ile basit bir arayüz tasarlamak
  • async/await ile asenkron programlama temelleri

Bu becerilerin hepsi iş dünyasında sıklıkla kullanılan, CV’ne değer katan beceriler. Tek bir proje ile hepsini pratiğe dökeceğiz.


Gereksinimler

Başlamadan önce şunlara ihtiyacın var:

  • Visual Studio 2022 (Community sürümü ücretsiz)
  • .NET 6.0 veya üzeri
  • Ücretsiz bir OpenWeatherMap hesabı ve API anahtarı
  • Temel C# bilgisi (değişkenler, metotlar, sınıflar)

Not: OpenWeatherMap’in ücretsiz planı günde 1.000 istek hakkı veriyor. Bu proje için fazlasıyla yeterli.


Adım 1 — Proje Oluşturma ve NuGet Paketi Kurulumu

Visual Studio’yu aç, yeni bir Windows Forms App (.NET) projesi oluştur. Proje adı olarak HavaDurumuApp kullanabilirsin.

Sonra NuGet Paket Yöneticisi’ni aç (Tools → NuGet Package Manager → Manage NuGet Packages) ve şu paketi yükle:

Bu paket, API’den gelen JSON verisini C# nesnelerine kolayca dönüştürmemizi sağlayacak.


Adım 2 — API Anahtarı Alma

OpenWeatherMap sitesine gidip ücretsiz hesap oluştur. Kayıt sonrası API Keys sekmesinde sana bir anahtar verilecek. Bu anahtarı kopyalayıp bir yere not et — birazdan kullanacağız.

API anahtarın şuna benzer bir formatta olacak:

⚠️ Güvenlik notu: API anahtarını asla GitHub gibi herkese açık platformlara yükleme. Gerçek projelerde bu tür hassas bilgileri .env dosyasında veya appsettings.json içinde tutmalısın.


Adım 3 — Veri Modelini Oluşturma

OpenWeatherMap API’sinin döndürdüğü JSON verisini karşılayacak C# sınıflarını oluşturalım. Projeye yeni bir sınıf dosyası ekle (WeatherData.cs):

Bu sınıflar API’den gelen JSON alanlarını ("name", "temp", "humidity" vb.) doğrudan C# özelliklerine bağlıyor. [JsonProperty] attribute’u bu eşleştirmeyi yapıyor.


Adım 4 — API Servis Sınıfı

Şimdi API ile iletişimi yönetecek servis sınıfını yazalım. WeatherService.cs adında yeni bir dosya ekle:

URL’deki parametreleri açıklayalım:

  • q={cityName} → sorguladığımız şehir adı
  • appid={ApiKey} → kimlik doğrulama
  • units=metric → sıcaklığı Celsius cinsinden almak için
  • lang=tr → hava durumu açıklamalarını Türkçe almak için

Adım 5 — Windows Forms Arayüzü

Form1.cs tasarım görünümünü aç ve şu bileşenleri ekle:

Bileşen Name Text / Placeholder
TextBox txtCity “Şehir adı girin…”
Button btnSearch “Sorgula”
Label lblCityName
Label lblTemperature
Label lblDescription
Label lblHumidity
Label lblWind
Label lblError

 

Adım 6 — Form Kodunu Yazma

Form1.cs kod görünümüne geçip şu kodu yaz:


Projeyi Çalıştır ve Test Et

Artık F5 tuşuna basıp projeyi çalıştırabilirsin. Arama kutusuna “Istanbul”, “Ankara” veya “Izmir” yaz ve “Sorgula” butonuna bas. Birkaç saniye içinde ekranda güncel hava durumu bilgileri belirecek.

Çalışıyorsa tebrikler — ilk API entegrasyonunu başarıyla tamamladın! 🎉


Sık Karşılaşılan Hatalar ve Çözümleri

“401 Unauthorized” hatası alıyorum: API anahtarını yeni oluşturduysan etkinleşmesi 10-15 dakika sürebilir. Bir süre bekleyip tekrar dene.

“404 Not Found” hatası alıyorum: Şehir adını İngilizce yazmayı dene. Örneğin “Istanbul” yerine “Istanbul, TR” formatını kullan.

Uygulama donuyor: async/await kullanımında bir sorun var demektir. btnSearch_Click metodunun async void olarak tanımlandığından emin ol.


Projeyi Geliştirmek İçin Fikirler

Bu projeyi daha da ileri taşıyabilirsin:

  • 5 günlük hava tahmini ekle (OpenWeatherMap’in /forecast endpoint’i)
  • Şehir geçmişi özelliği ile son aranan şehirleri kaydet
  • Hava durumuna göre arka plan rengi değiştir (güneşliyse sarı, yağmurluysa gri)
  • Sistem tepsisine (system tray) küçült ve arka planda çalıştır
  • Uygulamayı WPF ile yeniden yaz ve daha modern bir arayüz tasarla

Sonuç

Bu projede sadece bir hava durumu uygulaması yapmadın. HttpClient ile API çağırmasını, JSON verisini parse etmeyi, async/await ile asenkron programlamayı ve Windows Forms ile arayüz geliştirmeyi öğrendin. Bunların hepsi gerçek iş projelerinde her gün kullandığın beceriler.

Kodlarınla ilgili sorularını veya projeye eklediğin yeni özellikleri forumda paylaşmayı unutma — MühendisinEvi topluluğu olarak birlikte öğreniyoruz!

Üye değil misin? Hemen kayıt ol, her haftaki yeni proje içeriklerini kaçırma.


İlgili Yazılar (İç Bağlantılar):

Dış Bağlantılar (Kaynaklar):

Bir Yorum Yap