CodeBlanks Logo Icon CodeBlanks

JSON yanıtı

NextResponse ile JSON döndürmeyi öğrenirsin.

JSON yanıtı

API rotalarından en sık JSON döndürülür. NextResponse.json() bir nesneyi JSON'a çevirip Content-Type: application/json header'ını ekler.

İstemci tarafında fetch('/api/items') yapıp await r.json() ile veriyi alırsın. Hata durumunda uygun status kodu ile yanıt vermek önemlidir.

Örneğin validation hatasında NextResponse.json({ error: "..." }, { status: 400 }) döner.

Hata yönetimi

API rotasında hata yönetimi try/catch ile yapılır. try bloğunda işlemler yapılır; hata fırlarsa catch yakalar ve uygun status kodu ile yanıt döner.

Beklenen hatalar (örn. eksik alan) için 400, sunucu hataları için 500 kullanılır. İstemci bu kodlara göre davranır.

Hata mesajları kullanıcıya uygun olmalı; hassas bilgiler sızdırılmamalı.

Uygulama Hata yönetimli GET

GET fonksiyonu yaz: try bloğunda NextResponse.json({ items: [1, 2, 3] }) döndür, catch (e) bloğunda NextResponse.json({ error: "Sunucu hatası" }, { status: 500 }) döndür. import { NextResponse } from "next/server" ve export async function GET() olsun.

Başlangıç kodu

App.jsx
// app/api/items/route.js

// import NextResponse ve GET fonksiyonunu (try/catch) yaz

Örnek çözüm

App.jsx
// app/api/items/route.js
import { NextResponse } from "next/server";

export async function GET() {
  try {
    return NextResponse.json({ items: [1, 2, 3] });
  } catch (e) {
    return NextResponse.json({ error: "Sunucu hatası" }, { status: 500 });
  }
}

Soru ve cevaplar

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

1 Hatalı istek için uygun status?

  • 400 Doğru cevap
  • 200
  • 100
  • 500

Açıklama: 400 (Bad Request).

2 try catch

Soru
try {
  const data = await request.json();
  return NextResponse.json({ ok: true });
} ____ (e) {
  return NextResponse.json({ error: "Hata" }, { status: 500 });
}
Cevap
try {
  const data = await request.json();
  return NextResponse.json({ ok: true });
} catch (e) {
  return NextResponse.json({ error: "Hata" }, { status: 500 });
}

Açıklama: catch bloğu hataları yakalar.

3 JSON yanıtı: kavramları eşleştir

Kavram Anlamı
200 Başarılı
201 Oluşturuldu
400 Hatalı istek
500 Sunucu hatası

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