Uygulamanıza odaklanın.
Bağımlılıkları ve yaşam döngüsünü Lily yönetsin. Rust ile HTTP uygulamaları geliştirmek için kavramlar, örnekler ve rehberler.
Bağımlılıklar, bir arada.
Servisleri tanımlayın. Oluşturma, paylaşım ve temizliği container yönetsin.
Dependency injection 02Başlangıçtan kapanışa.
Sunucu, istekler ve yönetilen kaynaklar için ortak bir uygulama yaşam döngüsü.
Uygulama yaşam döngüsüLily, uygulamanızı controller’lar, servisler ve açıkça seçtiğiniz politikalarla kurmanızı sağlayan bir Rust framework’üdür. Crates.io’daki lilyrs facade’i, http-api feature’ıyla HTTP bileşenini lilyrs::http_api altında sunar. Alttaki lily_http_api, HTTP sunucusunun yanı sıra bu bileşenlerin birlikte çalıştığı uygulamanın yaşam döngüsünü de yönetir.
Bir route’tan fazlası. Servislerin oluşturulması, istek başına kapsam açılması ve kapanışta kaynakların temizlenmesi aynı uygulama modelinin parçalarıdır.
Uygulamanın iki temeli#
Dependency injection. Bağımlılıkları Injectable ile tanımlar, #[inject] ile servislerinize alırsınız. Container, seçtiğiniz yaşam süresine göre nesneleri oluşturur ve kaynaklarını kapatır. Controller action’ları Service<T> ile aktif isteğin kapsamından servis çözer.
Yaşam döngüsü sahipliği. AppBuilder tercihlerinizi toplar. build config’i ve bileşenleri hazırlar. start sunucuyu çalıştırır. Kapanışta Lily yönetilen işleri, istek kaynaklarını ve kendisine ait DI container’ını doğru sırada sonlandırır.
Küçük bir başlangıç#
Controller tanımlandıktan sonra uygulamanın başlatma zinciri şöyledir. Bu parça bir async fonksiyonun içindedir; tam dosya ve bağımlılıklar ilk HTTP uygulaması sayfasındadır.
AppBuilder::new("127.0.0.1:8080")
.tls_disabled()
.build().await?
.start().await?;build sırasında henüz socket açılmaz. Listener, start ile açılır. Normal start platform sinyallerini de yönetir; Ctrl+C kontrollü kapanışı başlatır.
Nasıl ilerlemeli?#
İlk uygulamanızı çalıştırın. Ardından yaşam döngüsünü ve DI kullanımını öğrenin. HTTP sözleşmesi, güvenlik politikaları, veri erişimi ve uygulamayı çalıştırma konuları bu temel üzerine kurulur.
| İhtiyacınız | Başlangıç noktası |
|---|---|
| Bir HTTP endpoint’i oluşturmak | Controller ve route’lar |
| JSON almak, yanıt döndürmek | İstek gövdeleri · Yanıtlar |
| Kimlik ve erişim kontrolü | Authentication · Guard’lar |
| Tarayıcı güvenlik politikaları | Cookie’ler · CORS · CSRF |
| Veritabanına bağlanmak | PostgreSQL · MongoDB |
| Dosya veya canlı veri göndermek | Streaming · SSE |
| API sözleşmesini yayımlamak | OpenAPI |
Ortak altyapı, üç uygulama türü#
lily_http_api, lily_websocket ve lily_consumer, ortak DI altyapısını kullanır. lily_injection container’ı, lily_injectable_derive kayıt üretimini, lily_injection_registry ise derive ile runtime arasındaki kayıt bağlantısını sağlar. Registry kayıtlarını elle oluşturmanız gerekmez.
Bu rehberin ayrıntılı kapsamı HTTP API’dir. Bağlantı ve mesaj uygulamaları için WebSocket rehberine geçebilirsiniz. Mesaj tüketen uygulamalar için Consumer rehberini izleyebilirsiniz.
Rehberdeki destek türleri#
Yerleşik destek, framework’ün sunduğu davranıştır: routing, middleware, cookie, CORS ve OpenAPI gibi. Entegrasyon, PostgreSQL veya MongoDB gibi ek bir Lily crate’iyle gelir. Uygulama tarifi, sizin politikanızı hazır genişletme noktalarına bağlar: token doğrulama, session store seçimi ve HTTP rate limiting gibi.
Rehber kaynak kodda doğrulanan 0.1.0 API yüzeyine dayanır. Kaynak sürümü, örneklerin doğrulama kapsamı ve eski belgelerle farklar referansta bulunur.
Bu sayfanın kaynakları v0.1.0
Anlatım, incelenen framework commit’ine dayanır.