Yönlendirme ve İstek İşleme
Yolları tanımlayın ve HTTP isteklerini işleyin.
Yönlendirme ve İstek İşleme, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 1. 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, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.
Vapor Nedir?
Vapor, SwiftNIO üzerine kurulmuş popüler bir sunucu tarafı Swift web çatısıdır. HTTP arka uçlarını (API'leri ve web sitelerini) tamamen Swift ile yazmanıza, dilinizi ve hatta modellerinizi iOS uygulamanızla paylaşmanıza olanak tanır.
import Vapor
let app = try await Application.make(.detect())Uygulama ve Yollar
Application nesnesi, bir Vapor sunucusunun merkezidir. Üzerine yollar kaydedersiniz: bir HTTP yöntemiyle yolu, yanıt döndüren bir işleyici kapanışına eşleyen tanımlar.
app.get("hello") { req in
"Hello, world!"
}HTTP Yöntemi Yardımcıları
Vapor, her HTTP fiili için bir yardımcı sunar: app.get, app.post, app.put, app.patch ve app.delete. Her biri yol bileşenlerini ve bir işleyiciyi alır.
app.post("users") { req in
"Created a user"
}
app.delete("users") { req in
"Deleted a user"
}Yol Bölümleri
İç içe yollar oluşturmak için birden fazla dize bölümünü aktarın. Aşağıdaki çağrı GET /api/v1/status isteğine yanıt verir.
app.get("api", "v1", "status") { req in
"OK"
}Yol Parametreleri
Dinamik bir değeri yakalamak için iki noktayla başlayan bir bölüm kullanın. Bu değeri istekten req.parameters.get(_:) ile okuyun. Aşağıda, /users/42 isteği 42 değerini yakalar.
app.get("users", ":id") { req -> String in
let id = req.parameters.get("id") ?? "unknown"
return "User id is " + id
}Türü Belirlenmiş Parametreler
Türü get yöntemine aktararak bir parametreyi belirli bir türe dönüştürebilirsiniz. Dönüştürme başarısız olursa Vapor otomatik olarak 404 döndürür ve işleyicilerin yalın kalmasını sağlar.
app.get("posts", ":id") { req -> String in
let id = try req.parameters.require("id", as: Int.self)
return "Post number " + String(id)
}Sorgu Parametreleri
URL sorgu öğelerini req.query üzerinden okuyun. /search?term=swift için terimin kodunu doğrudan çözebilirsiniz. Eksik isteğe bağlı değerler basitçe boş değer olarak döner.
app.get("search") { req -> String in
let term = try req.query.get(String.self, at: "term")
return "Searching for " + term
}Yol Grupları
İlişkili yolları app.grouped(...) ile ortak bir ön ek altında gruplayın. Bu, yol bileşenlerini tekrarlamaktan kaçınır ve ilişkili uç noktaları bir arada tutar.
let users = app.grouped("users")
users.get { req in "List users" } // GET /users
users.post { req in "Create user" } // POST /usersFarklı Yanıt Türleri Döndürme
Bir işleyici String, HTTPStatus, özel bir Content türü veya tamamen oluşturulmuş bir Response döndürebilir. Vapor, bunların her birini HTTP yanıtına nasıl kodlayacağını bilir.
app.delete("cache") { req -> HTTPStatus in
// clear something
return .noContent // 204
}Abort ile Hata Fırlatma
Belirli bir HTTP durumu ve isteğe bağlı bir gerekçeyle isteği kısa devreye almak için Abort(_:) fırlatın. Vapor bunu temiz bir JSON hata yanıtına dönüştürür.
app.get("secret") { req -> String in
guard req.headers.first(name: "X-Key") == "open" else {
throw Abort(.forbidden, reason: "Missing key")
}
return "Welcome"
}Eşzamansız İşleyiciler
Vapor 4 ve sonraki sürümler async/await desteğini tamamen sunar. İşleyici kapanışını eşzamansız olarak işaretleyin ve veritabanı ya da ağ işlemleri için içinde try await kullanın.
app.get("ping") { req async throws -> String in
try await Task.sleep(for: .milliseconds(10))
return "pong"
}Kısa Kontrol: Yönlendirme
Yönlendirme bilginizi doğrulayın.
Özet: Yönlendirme ve İstek İşleme
Artık bir Vapor sunucusunu yapılandırabilirsiniz:
app.get/post/put/patch/deleteve yol bölümleriyle yollar kaydedin.:paramile dinamik değerleri yakalayın ve bunlarıreq.parametersüzerinden okuyun (require(_:as:)ile türünü belirleyerek).- Sorgu öğelerini
req.queryüzerinden okuyun, yollarıgroupedile gruplayın. - Dizeler, durumlar veya içerik döndürün; hatalar için
Abortfırlatın; eşzamansız işleyiciler kullanın.
Sıkça Sorulan Sorular
“Yönlendirme ve İstek İşleme” dersi ücretsiz mi?
Evet — “Yönlendirme ve İstek İş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 Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.
“Yönlendirme ve İstek İşleme” dersinde ne öğreneceğim?
Yolları tanımlayın ve HTTP isteklerini işleyin. Swift 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.
Swift Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Swift 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 1. dersidir.
“Yönlendirme ve İstek İş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 Swift Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Swift 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
- Yönlendirme ve İstek İşleme
- İçerik ve JSON Kodlama
- Fluent ORM ve Modeller
- Ara Katman Yazılımı ve Kimlik Doğrulama