🌐 http - HTTP İstemci/Sunucu
Client, Server, REST API, WebSocket
76
Fonksiyon
1549
Satır
50.3 KB
Boyut
🚀 Hızlı Başlangıç
içe_aktar http
// HTTP GET request
değişken yanıt = http.get("https://api.github.com/users/berkdev")
eğer yanıt.durum == 200 ise yap
yazdır(yanıt.gövde)
son
// POST request
değişken veri = {"isim": "BERK", "versiyon": "1.4"}
değişken yanıt2 = http.post("https://api.example.com/data", veri)
// HTTP Server
değişken sunucu = http.Sunucu_new(8080)
sunucu.rotala("GET", "/", fonksiyon(istek, yanıt) yap
yanıt.html("Merhaba BERK!
")
son)
sunucu.rotala("GET", "/api/user/:id", fonksiyon(istek, yanıt) yap
değişken user_id = istek.params["id"]
yanıt.json({"id": user_id, "name": "User " + user_id})
son)
sunucu.başlat()
📚 Özellikler
- Client: GET, POST, PUT, DELETE, PATCH
- Server: Routing, Middleware, Static files
- Headers: Request/Response headers
- Cookies: Cookie management
- SSL/TLS: HTTPS support
- WebSocket: Real-time communication
💡 Örnekler
REST API Client
içe_aktar http, json
fonksiyon kullanıcı_getir(id: tamsayı) -> Sonuç yap
değişken url = "https://jsonplaceholder.typicode.com/users/" + id.yazıya()
değişken yanıt = http.get(url)
eğer yanıt.durum != 200 ise yap
dön Hata("HTTP " + yanıt.durum.yazıya())
son
değişken veri = json.parse(yanıt.gövde)
dön Tamam(veri)
son
// Kullanım
değişken sonuç = kullanıcı_getir(1)
eşleştir sonuç yap
Tamam(user) => yazdır("Kullanıcı: " + user["name"]),
Hata(e) => yazdır("Hata: " + e)
son
REST API Server with Middleware
içe_aktar http, time, collections
değişken sunucu = http.Sunucu_new(3000)
değişken veritabanı = collections.HashMap_new()
// CORS Middleware
sunucu.middleware(fonksiyon(istek, yanıt, ileri) yap
yanıt.header_ekle("Access-Control-Allow-Origin", "*")
yanıt.header_ekle("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE")
eğer istek.metod == "OPTIONS" ise yap
yanıt.durum(204).gönder()
yoksa yap
ileri()
son
son)
// Logging middleware
sunucu.middleware(fonksiyon(istek, yanıt, ileri) yap
değişken başlangıç = time.şimdi()
ileri()
değişken süre = time.şimdi() - başlangıç
yazdır(istek.metod + " " + istek.yol + " - " + süre.yazıya() + "ms")
son)
// Routes
sunucu.rotala("GET", "/api/users", fonksiyon(istek, yanıt) yap
yanıt.json(collections.HashMap_values(veritabanı))
son)
sunucu.rotala("POST", "/api/users", fonksiyon(istek, yanıt) yap
değişken user = json.parse(istek.gövde)
değişken id = collections.HashMap_size(veritabanı) + 1
user["id"] = id
collections.HashMap_set(veritabanı, id.yazıya(), user)
yanıt.durum(201).json(user)
son)
yazdır("Sunucu http://localhost:3000 adresinde çalışıyor")
sunucu.başlat()