Mojo, Python'un okunabilirliğini C++ hızıyla birleştiren bir dildir. Donanıma yakın düşük seviyeli kodlardan, Back-End API tasarımı aracılığıyla Front-End ve Web dünyasına kadar farklı şeyler için faydalıdır. Mojo, tüm modern yığına ölçeklenebilecek kadar güçlüdür. Dil aynı zamanda Yapay Zeka ve Makine Öğrenimi göz önünde bulundurularak tasarlanmıştır; bu nedenle özellikle Yapay Zeka geliştiricileri ve Veri Bilimcileri için yararlı olacaktır. Mojo hala genç. Ekosistemde, ağ oluşturma veya temel HTTP işlemleri gibi günlük yazılım geliştirmeye yönelik araçlar eksik. uçtuğu yer burasıdır. Lightbug 🔥🐝'nin varsayılan olarak hiçbir dış bağımlılığı olmayan, saf Mojo ile yazılmış basit bir HTTP çerçevesidir. Daha karmaşık projeler için bir temel oluşturması amaçlanmıştır ve bu dilin statik yazma ve mükemmel performans gibi özelliklerinden yararlanırken API'ler gibi Web hizmetleri geliştirmenize, temel yönlendirmeyi ayarlamanıza ve hatta Mojo ile HTML sayfaları sunmanıza olanak tanır. . Lightbug 🔥🐝, Başlamak için ve yükleyin, ardından Lightbug Github deposunu klonlayın: Mojo Git'i git clone https://github.com/saviorand/lightbug_http.git Klonlandıktan sonra komut satırınızdaki dizine geçin: cd lightbug_http Ardından sunucuyu çalıştırın (evet, bu Mojo dosya uzantısıdır! 🔥): mojo lightbug.🔥 Konsola yazdırılan aşağıdaki satırı görmelisiniz: 🔥🐝 Lightbug is listening on 0.0.0.0:8080 Ready to accept connections... Artık sunucunuza istekte bulunmaya başlayabilir veya tarayıcıda veya açmayı deneyebilirsiniz; giriş ekranını görmelisiniz. Mojo tarzı Web'e hoş geldiniz! Şimdi gerçek kodlamaya geçelim. localhost:8080 0.0.0.0:8080 Lightbug hâlâ genç olsa da, insanların modern Web için geliştirmeyi beklediği temel işlevsellik zaten mevcut. Henüz bir paket yöneticisi olmadığından, kendi projenizin içine bir alt klasör olarak eklemeniz gerektiğini unutmayın. Bu bir olarak çalışacak ve web temelleri, sunucular ve daha fazlası gibi araçları Lightbug'dan içe aktarmanıza olanak tanıyacak. lightbug_http Mojo paketi Örneğin, sunucuyu içe aktarmak için bunu dosyanızın en üstüne ekleyin: from lightbug_http.sys.server import SysServer Bu, saf Mojo'da bir sunucu uygulamasını içe aktaracaktır. Python uygulamasını kullanmak istiyorsanız bunun yerine içe aktarın. Aynı şekilde çalışacaktır. PythonServer Bir HTTP hizmeti oluşturmak için, karşılayan bir yapı oluşturmanız yeterlidir; bu, aşağıdaki imzaya sahip bir yöntemine sahip olduğu anlamına gelir: HTTPService özelliğini func trait HTTPService: fn func(self, req: HTTPRequest) raises -> HTTPResponse: ... Bu, bir almak, Mojo veya Python'da yazdığınız herhangi bir özel mantığı yürütmek ve bazı verileri içeren bir nesnesini API tüketicisine geri döndürmek için yerleşik temelleri kullanır. HTTPRequest HTTPResponse gönderilen tüm istekleri konsola yazdıran bir servis yapalım. Bunu yapmak için adında bir dosya oluşturun ve aşağıdakileri yapıştırın: 0.0.0.0:8080 my_awesome_service.🔥 from lightbug_http import * @value struct Printer(HTTPService): fn func(self, req: HTTPRequest) raises -> HTTPResponse: let body = req.body_raw print(String(body)) return OK(body) fn main() raises: var server = SysServer() let handler = Printer() server.listen_and_serve("0.0.0.0:8080", handler) çalıştırın ve veya gibi favori API istemcilerinizden isteği gönderin. Konsola yazdırılan istekle ilgili bazı ayrıntıları görmelisiniz. mojo my_awesome_service.🔥 Insomnia Bruno 0.0.0.0:8080 Tebrikler! Artık resmi olarak bir Mojo web geliştiricisisiniz 🔥. Örnekte, adı verilen bir değişkeni ile başlatıyoruz (yani yeniden atanamayacağı anlamına gelir) ve netlik sağlamak için onu ikinci bir parametre olarak aktarıyoruz. handler let listen_and_serve dekoratörü eklemek isteğe bağlıdır: Eğer ileri düzey bir Mojici iseniz, bunun yerine ekleyebilirsiniz. Aynı şekilde çalışacaktır; yalnızca bunu ve diğer yararlı yöntemleri otomatik olarak oluşturur. @value __init__ yapıcı yöntemini @value struct Printer(HTTPService): fn __init__(inout self): print("Printer initialized!") fn func(self, req: HTTPRequest) raises -> HTTPResponse: let body = req.body_raw print(String(body)) return OK(body) Diyebilirsiniz ama bu sadece bir yol! Modern API'ler bundan çok daha fazlasını gerektirir. Lightbug ayrıca bazı temel yönlendirmeleri de yapabilir: @value struct ExampleRouter(HTTPService): fn func(self, req: HTTPRequest) raises -> HTTPResponse: let body = req.body_raw let uri = req.uri() if uri.path() == "/": print("I'm on the index path!") if uri.path() == "/first": print("I'm on /first!") elif uri.path() == "/second": print("I'm on /second!") return OK(body) Bunu dosyanıza ekleyin ve işleyici olarak sunucuya iletin: my_awesome_service.🔥 fn main() raises: var server = SysServer() let handler = ExampleRouter() server.listen_and_serve("0.0.0.0:8080", handler) Artık tarayıcınızı açabilir ve değişiklikleri görmek için , adresine gidebilirsiniz. localhost:8080/first localhost:8080/second Bu işlevsellik size, gibi hafif bir çerçevenin/araç setinin sağlayabileceği esneklik ve özelleştirme seçeneklerinden yararlanırken, HTTP'yi kullanan kendi uygulamalarınızı, kitaplıklarınızı ve hizmetlerinizi geliştirmeniz için bir temel sağlamalıdır. lightbug_http ve paketleri oluşturarak yönlendirmenin yanı sıra bir OpenAPI belirtiminden API'ler yazma ve oluşturma, veri modelinizi tasarlama ve web uygulamaları oluşturma gibi diğer görevleri gelecekte daha da keyifli hale getirmeyi planlıyoruz. Ayrıntılar için Haritamıza göz atın. lightbug_api lightbug_web Yol giriş bu kadar ! Umarım faydalı olmuştur. Lightbug'a 🔥🐝 Bu açık kaynaklı, ticari olmayan bir topluluk projesidir. Lütfen ⭐ yıldız ekleyin, katılın ve kodunuzla nasıl katkıda bulunacağınızı kontrol edin, böylece bunu Mojici dostlarımız için daha da iyi hale getirebiliriz. Github depomuza Discord'a Bir dahaki sefere kadar!