RESTful API’ler, web servisleriyle iletişim kurmak için yaygın olarak kullanılan bir yöntemdir. Flutter, bu API’lerle etkileşim kurmak için güçlü ve esnek araçlar sunar. Bu blog yazımda, Flutter uygulamalarında RESTful API entegrasyonunu nasıl gerçekleştirebileceğimizi inceleyeceğiz.
Mobil uygulamaların çoğu, veri alışverişi yapmak ve çeşitli hizmetlerden yararlanmak için web servisleri ile etkileşimde bulunur. Bu etkileşim genellikle RESTful API’ler aracılığıyla gerçekleştirilir. RESTful API (Representational State Transfer), HTTP protokolünü kullanarak çeşitli uygulamalar arasında veri alışverişini mümkün kılan bir mimari tarzdır.
1. HTTP Paketi ile Çalışma
Flutter’da HTTP istekleri yapmak için popüler olarak kullanılan http paketi, RESTful API’lerle iletişim kurmak için en yaygın yöntemlerden biridir.
HTTP paketini kurma
dependencies:
http: ^0.13.3
HTTP Paketini İçe Aktarma
import 'package:http/http.dart' as http;
http paketi, Flutter uygulamanızda RESTful API’lerle etkileşim kurmanın güçlü ve esnek bir yolunu sunar. GET ve POST istekleri yaparak verileri çekebilir ve gönderebilirsiniz.

2. JSON Verilerini Çözme (Parsing)
API’lerden gelen veriler genellikle JSON formatında olur. Flutter’da bu verileri çözmek için dart:convert kütüphanesi kullanılır.
import 'dart:convert';
// JSON string'i Map'e dönüştürme
Map<String, dynamic> jsonData = json.decode(responseString);
// Map'i modele dönüştürme
User user = User.fromJson(jsonData);
3. GET İsteği Yapma
Basit bir GET isteği örneği:
Future<User> fetchUser() async {
final response = await http.get(
Uri.parse('https://api.example.com/users/1'),
);
if (response.statusCode == 200) {
return User.fromJson(json.decode(response.body));
} else {
throw Exception('Kullanıcı yüklenemedi');
}
}
4. POST İsteği Yapma
Yeni bir veri oluşturmak için POST isteği:
Future<User> createUser(String name, String email) async {
final response = await http.post(
Uri.parse('https://api.example.com/users'),
headers: {'Content-Type': 'application/json'},
body: json.encode({'name': name, 'email': email}),
);
if (response.statusCode == 201) {
return User.fromJson(json.decode(response.body));
} else {
throw Exception('Kullanıcı oluşturulamadı');
}
}
5. Hata Yönetimi
API entegrasyonunda hata yönetimi çok önemlidir:
try {
final user = await fetchUser();
// Kullanıcıyı göster
} catch (e) {
// Hata mesajını göster
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Hata: $e')),
);
}
Sonuç
Flutter ile API entegrasyonu, modern mobil uygulamaların vazgeçilmez bir parçasıdır. Doğru yaklaşım ve araçlarla, güçlü ve verimli uygulamalar oluşturabilirsiniz.