Özet - HTTP sunucusu
- Node.js kursu
- Orta seviye
- Ders 18/116
- 5 dk
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
// 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
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?
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 |