🌐 http - HTTP Client/Server
HTTP/1.1 Client, Server, REST API, Routing
76
Fonksiyon
1,549
Satır
50 KB
Boyut
🚀 Hızlı Başlangıç
içe_aktar http
// HTTP GET isteği
değişken yanıt = http.get("https://api.github.com/users/arslantasm")
yazdır(yanıt.durum.kod) // 200
yazdır(yanıt.gövde) // JSON response
// HTTP POST isteği
değişken veri = json.stringify({"name": "BERK", "version": "1.0"})
değişken yanıt2 = http.post("https://api.example.com/data", veri)
// HTTP Server oluşturma
değişken sunucu = http.sunucu_oluştur("127.0.0.1", 8080)
sunucu.rotala("GET", "/", fonksiyon(istek, yanıt) yap
yanıt.json({"message": "Merhaba BERK!", "version": "1.0.0"})
son)
sunucu.rotala("GET", "/users/:id", fonksiyon(istek, yanıt) yap
değişken id = istek.params["id"]
yanıt.json({"user_id": id, "name": "Test User"})
son)
yazdır("Sunucu http://127.0.0.1:8080 çalışıyor...")
sunucu.başlat()
📚 Fonksiyon Kategorileri
HTTP Client
get(), post(), put(), delete(), patch(), head(), options()
HTTP Server
sunucu_oluştur(), rotala(), başlat(), durdur(), middleware()
Request/Response
istek_oluştur(), yanıt_oluştur(), başlık_ekle(), çerez_ekle()
Yardımcı Fonksiyonlar
query_parse(), form_parse(), json_parse(), url_encode(), url_decode()
💡 Örnekler
Örnek 1: REST API Client
içe_aktar http, json
fonksiyon kullanıcı_al(id: tamsayı) -> Sonuç[yazı, yazı] yap
değişken url = "https://api.example.com/users/" + id.yazıya()
değişken yanıt = http.get(url)
eğer yanıt.durum.kod == 200 ise yap
dön Tamam(yanıt.gövde)
son değilse yap
dön Hata("Kullanıcı bulunamadı")
son
son
değişken sonuç = kullanıcı_al(123)
eşleşme sonuç yap
Tamam[veri] => yazdır("Kullanıcı: " + veri)
Hata[mesaj] => yazdır("Hata: " + mesaj)
son
Örnek 2: RESTful API Server
içe_aktar http, json
değişken kullanıcılar = {
"1": {"id": 1, "isim": "Ali", "yaş": 25},
"2": {"id": 2, "isim": "Ayşe", "yaş": 30}
}
değişken sunucu = http.sunucu_oluştur("0.0.0.0", 3000)
// Tüm kullanıcılar
sunucu.rotala("GET", "/api/users", fonksiyon(istek, yanıt) yap
yanıt.json(kullanıcılar)
son)
// Tek kullanıcı
sunucu.rotala("GET", "/api/users/:id", fonksiyon(istek, yanıt) yap
değişken id = istek.params["id"]
eğer kullanıcılar.içerir(id) ise yap
yanıt.json(kullanıcılar[id])
son değilse yap
yanıt.durum(404).json({"hata": "Kullanıcı bulunamadı"})
son
son)
// Yeni kullanıcı ekle
sunucu.rotala("POST", "/api/users", fonksiyon(istek, yanıt) yap
değişken veri = json.parse(istek.gövde)
değişken id = (kullanıcılar.uzunluk() + 1).yazıya()
kullanıcılar[id] = veri
yanıt.durum(201).json(veri)
son)
// Kullanıcı güncelle
sunucu.rotala("PUT", "/api/users/:id", fonksiyon(istek, yanıt) yap
değişken id = istek.params["id"]
değişken veri = json.parse(istek.gövde)
eğer kullanıcılar.içerir(id) ise yap
kullanıcılar[id] = veri
yanıt.json(veri)
son değilse yap
yanıt.durum(404).json({"hata": "Kullanıcı bulunamadı"})
son
son)
// Kullanıcı sil
sunucu.rotala("DELETE", "/api/users/:id", fonksiyon(istek, yanıt) yap
değişken id = istek.params["id"]
eğer kullanıcılar.içerir(id) ise yap
kullanıcılar.sil(id)
yanıt.durum(204).gönder()
son değilse yap
yanıt.durum(404).json({"hata": "Kullanıcı bulunamadı"})
son
son)
yazdır("RESTful API Server http://localhost:3000 çalışıyor...")
sunucu.başlat()
Örnek 3: Middleware ve CORS
içe_aktar http
değişken sunucu = http.sunucu_oluştur("0.0.0.0", 8080)
// CORS middleware
sunucu.middleware(fonksiyon(istek, yanıt, ileri) yap
yanıt.başlık_ekle("Access-Control-Allow-Origin", "*")
yanıt.başlık_ekle("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE")
yanıt.başlık_ekle("Access-Control-Allow-Headers", "Content-Type")
eğer istek.metod == "OPTIONS" ise yap
yanıt.durum(204).gönder()
son değilse 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/data", fonksiyon(istek, yanıt) yap
yanıt.json({"data": "BERK HTTP Server"})
son)
sunucu.başlat()