CodeBlanks Logo Icon CodeBlanks

Middleware

shelf Middleware ile ara katman öğrenirsin.

Middleware

Middleware, bir handler'ı sarıp istek/yanıt akışına müdahale eden fonksiyondur. İmza: Middleware logMiddleware(Handler inner) => (req) async { print('istek'); return await inner(req); }.

Tipik kullanım: loglama, kimlik doğrulama, CORS, hata yakalama. Middleware zincirle birbirine eklenir; her katman bir sonrakine karar verebilir.

shelf'in Pipeline API'si: Pipeline().addMiddleware(log).addHandler(app). Bu, modüler bir handler zinciri kurar.

logRequests middleware

shelf, hazır bir logRequests() middleware'i sunar. Her isteğin method ve yolunu konsola yazar; yanıtı bekler ve süreyi de yazdırır.

Kullanım: var handler = Pipeline().addMiddleware(logRequests()).addHandler(appHandler);. Bu handler'ı shelf_io'ya verirsin.

Kendi middleware'ini yazmak için (Handler inner) => (Request req) async { ... } desenini izlersin.

Uygulama Basit log middleware tanımla

import 'package:shelf/shelf.dart'; ekle. Handler logMiddleware(Handler inner) => (Request req) async { print('istek geldi'); return await inner(req); }; tanımla. Response app(Request r) => Response.ok('ok'); tanımla. main'i async yap; var wrapped = logMiddleware(app);, var resp = await wrapped(Request('GET', Uri.parse('http://localhost/'))); ve print(resp.statusCode); ekle.

Başlangıç kodu

main.dart
void main() {
  // shelf import ekle; logMiddleware ve app tanımla
  // wrapped handler'ı çağır; statusCode yazdır
}

Örnek çözüm

main.dart
import 'package:shelf/shelf.dart';

Handler logMiddleware(Handler inner) => (Request req) async {
  print('istek geldi');
  return await inner(req);
};

Response app(Request r) => Response.ok('ok');

void main() async {
  var wrapped = logMiddleware(app);
  var resp = await wrapped(Request('GET', Uri.parse('http://localhost/')));
  print(resp.statusCode);
}

Beklenen çıktı

istek geldi
200

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Middleware kullanımları

Kavram Anlamı
Loglama Her isteği yazdır
Auth Token denetle
CORS Başlık ekle
Hata Try/catch sar

2 Middleware ne yapar?

  • Yeni bir sunucu başlatır
  • İsteği yok sayar
  • Handler'ı sarıp akışa müdahale eder Doğru cevap
  • Response'u siler

Açıklama: middleware handler'ı sarar ve istek/yanıt akışına müdahale eder.

3 Pipeline'a middleware ekle

Soru
Pipeline().____(logRequests()).addHandler(app);
Cevap
Pipeline().addMiddleware(logRequests()).addHandler(app);

Açıklama: addMiddleware pipeline'a middleware ekler.

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