shelf
- Dart kursu
- İleri seviye
- Ders 25/83
- 5 dk
shelf ile HTTP sunucusu öğrenirsin.
shelf paketi
shelf, Dart için minimal HTTP sunucu çerçevesidir. İstekleri (Request) alır, kullanıcı tanımlı handler'a geçirir ve yanıtı (Response) geri döndürür.
Handler, Response Function(Request) imzasına sahip bir fonksiyondur. shelf bu fonksiyonu çağırır; sen bir Response üretirsin.
shelf kendisi bir sunucu değil; shelf_io adapter'ı ile HttpServer'a bağlanır. Bu ayrım, test kolaylığı ve adapter taşınabilirliği sağlar.
Response.ok ile yanıt
Response.ok(body) 200 durum kodlu bir yanıt oluşturur. body bir String, List<int> veya Stream<List<int>> olabilir.
Örnek handler: Response helloHandler(Request req) => Response.ok('merhaba');. Bu handler her istekte 'merhaba' gövdesiyle 200 döndürür.
Handler'ı test etmek için shelf_io başlatmadan doğrudan çağırabilirsin: var r = helloHandler(...); print(r.statusCode);.
Uygulama Handler tanımla ve çağır
import 'package:shelf/shelf.dart'; ekle. Response helloHandler(Request req) => Response.ok('merhaba'); tanımla. main içinde var r = helloHandler(Request('GET', Uri.parse('http://localhost/'))); ve print(r.statusCode); ekle.
Başlangıç kodu
void main() {
// shelf import ekle; helloHandler tanımla (main dışında)
// handler'ı çağır ve durum kodunu yazdır
}Örnek çözüm
import 'package:shelf/shelf.dart';
Response helloHandler(Request req) => Response.ok('merhaba');
void main() {
var r = helloHandler(Request('GET', Uri.parse('http://localhost/')));
print(r.statusCode);
}Beklenen çıktı
200
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 shelf'in merkezi soyutlaması nedir?
- Handler (Request → Response) Doğru cevap
- Stream
- Widget
- Future
Açıklama: handler Request alır Response döndürür.
2 Handler imzası
Response helloHandler(____ req) => Response.ok('merhaba');
Response helloHandler(Request req) => Response.ok('merhaba');
Açıklama: handler bir Request parametresi alır.
3 shelf kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
Request |
Gelen istek |
Response |
Dönen yanıt |
Handler |
Request → Response |
shelf_io |
HttpServer adapter |