0Pricing
Lua Academy · Ders

Lua'da HTTP İsteklerini İşleme

ngx API'siyle istek üstbilgilerine, gövdesine ve bağımsız değişkenlerine erişin, yanıtlar oluşturun.

Lua'da HTTP İsteklerini İşleme, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Lua Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Lua Academy kursu toplamda 4 dersten oluşur.

İstek Yöntemini ve URI'yi Okuma

HTTP yöntemine ve URI'ye ngx ad alanından erişin.

-- content_by_lua_block
local method = ngx.req.get_method()
local uri    = ngx.var.uri
ngx.say("Method: " .. method .. ", URI: " .. uri)

İstek Üst Bilgilerini Okuma

ngx.req.get_headers(), istek üst bilgilerinden oluşan bir tablo döndürür.

local headers = ngx.req.get_headers()
local auth = headers["Authorization"]
if not auth then
  ngx.status = 401
  ngx.say("Unauthorized")
  ngx.exit(ngx.HTTP_UNAUTHORIZED)
end

Sorgu Parametrelerini Okuma

ngx.req.get_uri_args(), URL sorgu parametrelerinden oluşan bir tablo döndürür.

local args = ngx.req.get_uri_args()
local page = tonumber(args.page) or 1
local size = tonumber(args.size) or 20
ngx.say("Page: " .. page .. ", Size: " .. size)

İstek Gövdesini Okuma

ngx.req.read_body() işlevini açıkça çağırdıktan sonra istek gövdesini okuyun.

ngx.req.read_body()
local body = ngx.req.get_body_data()
if not body then
  ngx.status = 400
  ngx.say("Empty body")
  return
end

JSON Gövdesini Ayrıştırma

İstek gövdesini ayrıştırmak için bir JSON kitaplığı (ör. cjson) kullanın.

local cjson = require("cjson")
ngx.req.read_body()
local body = ngx.req.get_body_data()
local ok, data = pcall(cjson.decode, body)
if not ok then
  ngx.status = 400
  ngx.say("Invalid JSON")
  return ngx.exit(400)
end

Yanıt Üst Bilgilerini Ayarlama

Yanıt üst bilgilerini ngx.say veya ngx.print çağrısından önce ngx.header üzerinden ayarlayın.

ngx.header["Content-Type"] = "application/json"
ngx.header["X-Request-ID"] = ngx.var.request_id

Yanıtı Yazma

ngx.say(s) bir dize ve satır sonu yazar. ngx.print(s) satır sonu olmadan yazar. ngx.exit(code), verilen HTTP durumuyla isteği sonlandırır.

ngx.status

Yanıt gövdesini yazmadan önce HTTP durum kodunu ngx.status = 404 üzerinden ayarlayın.

ngx.status = 404
ngx.header["Content-Type"] = "application/json"
ngx.say(cjson.encode({error = "Not Found"}))

Dahili Yönlendirmeler

ngx.exec("/other/path"), ek bir HTTP gidiş-dönüşü gerçekleştirmeden başka bir Nginx konum bloğuna dahili yönlendirme yapar.

Alt İstekler

ngx.location.capture("/api"), başka bir konuma alt istek gönderir ve durum, üst bilgiler ve gövde içeren bir tablo döndürür.

local res = ngx.location.capture("/internal/auth")
if res.status ~= 200 then
  ngx.exit(403)
end

İstek Bağlamını Paylaşma

ngx.ctx, farklı aşama işleyicileri (access → content → log) arasında veri paylaşmak için istek başına kullanılan bir tablodur.

HTTP İşleme Sorusu

OpenResty'de URL sorgu parametrelerini hangi işlev okur?

Özet: HTTP İsteklerini İşleme

Yöntemi, üst bilgileri, sorgu bağımsız değişkenlerini ve gövdeyi okumak için ngx.req işlevlerini kullanın. Yazma işleminden önce ngx.header ve ngx.status değerlerini ayarlayın. Çıktı için ngx.say/ngx.print kullanın. İstek başına verileri ngx.ctx aracılığıyla paylaşın.

Sıkça Sorulan Sorular

“Lua'da HTTP İsteklerini İşleme” dersi ücretsiz mi?

Evet — “Lua'da HTTP İsteklerini İşleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Lua Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Lua Academy kursu toplamda 4 dersten oluşur.

“Lua'da HTTP İsteklerini İşleme” dersinde ne öğreneceğim?

ngx API'siyle istek üstbilgilerine, gövdesine ve bağımsız değişkenlerine erişin, yanıtlar oluşturun. Lua Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Lua Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Lua Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Lua'da HTTP İsteklerini İşleme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Lua Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Lua Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. OpenResty Mimarisi
  2. Lua'da HTTP İsteklerini İşleme
  3. Cosocket'ler ve Engellemesiz TCP
  4. Paylaşılan Bellek Sözlükleri
← Lua Academy Sayfasına Dön