CodeBlanks Logo Icon CodeBlanks

shelf

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

main.dart
void main() {
  // shelf import ekle; helloHandler tanımla (main dışında)
  // handler'ı çağır ve durum kodunu yazdır
}

Örnek çözüm

main.dart
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ı

Soru
Response helloHandler(____ req) => Response.ok('merhaba');
Cevap
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

İleri seviye bölümündeki tüm dersler