JSON yanıtı
- React kursu
- İleri seviye
- Ders 11/56
- 4 dk
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/api/items/route.js
// import NextResponse ve GET fonksiyonunu (try/catch) yazÖrnek çözüm
// 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
try {
const data = await request.json();
return NextResponse.json({ ok: true });
} ____ (e) {
return NextResponse.json({ error: "Hata" }, { status: 500 });
}
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ı |