Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

🌐 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()

← optim | json →