CodeBlanks Logo Icon CodeBlanks

Özet - HTTP sunucusu

createServer, routing ve JSON'ı birleştirerek bir API yazarsın.

Özet - HTTP sunucusu

Bu grupta HTTP şunucusunun temel araçlarını öğrendin: createServer ile sunucu kurmak, req ve res ile istek ve yanıtı yönetmek, req.url ile routing yapmak, JSON.stringify ile JSON yanıtı göndermek ve new URL ile query string ayrıştırmak.

Şimdi bunları birleştirerek küçük bir API yazacaksın. API, /api yoluna JSON yanıtı verirken diğer yollara farklı bir JSON döndürecek. Bu mini görev, routing ve JSON'ın gerçek bir API'de nasıl birleştiğini gösterir.

API tasarımı

API iskeleti: bir createServer handler'ı, req.url ile routing ve JSON.stringify ile JSON yanıtı. /api yoluna bilinen bir JSON, diğer yollara farklı bir JSON gönderilir.

Akış: const server = http.createServer((req, res) => { res.setHeader("Content-Type", "application/json"); if (req.url === "/api") { res.end(JSON.stringify({ durum: "ok" })); } else { res.end(JSON.stringify({ durum: "yok" })); } });. /api isteği {"durum":"ok"} alır; başka yol {"durum":"yok"} alır. İçerik türü application/json olarak ayarlanır; böylece istemci yanıtı güvenle ayrıştırır.

Uygulama API yaz

http modülünü içe aktar. createServer ile bir server oluştur. Handler içinde res.setHeader("Content-Type", "application/json") çağır. req.url === "/api" ise res.end(JSON.stringify({ durum: "ok" })), değilse res.end(JSON.stringify({ durum: "yok" })) çağır. Altındaki hazır kod /api yoluna istek atar.

Başlangıç kodu

index.js
// http modülünü içe aktar ve server oluştur
// buraya yaz

server.listen(3000, () => {
  http.get("http://localhost:3000/api", (res) => {
    let body = "";
    res.on("data", (c) => body += c);
    res.on("end", () => { console.log("Yanıt: " + body); server.close(); });
  });
});

Örnek çözüm

index.js
const http = require("http");
const server = http.createServer((req, res) => {
  res.setHeader("Content-Type", "application/json");
  if (req.url === "/api") { res.end(JSON.stringify({ durum: "ok" })); }
  else { res.end(JSON.stringify({ durum: "yok" })); }
});

server.listen(3000, () => {
  http.get("http://localhost:3000/api", (res) => {
    let body = "";
    res.on("data", (c) => body += c);
    res.on("end", () => { console.log("Yanıt: " + body); server.close(); });
  });
});

Beklenen çıktı

Yanıt: {"durum":"ok"}

Soru ve cevaplar

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

1 API hangi parçaları birleştirir?

index.js
if (req.url === "/api") { res.end(JSON.stringify(...)); }
  • Yalnızca createServer
  • createServer, routing ve JSON Doğru cevap
  • Yalnızca require
  • Yalnızca console.log

Açıklama: createServer + routing (req.url) + JSON (JSON.stringify) birleşir.

2 Aracı rolüne eşle

Kavram Anlamı
createServer Sunucuyu oluşturur
req.url Routing yapar
JSON.stringify JSON yanıtı üretir
setHeader İçerik türünü ayarlar

Orta seviye bölümündeki tüm dersler