Sistemlere dön

6GEN / Sistem Kaydı / Framework

GoDispatcher

Go HTTP servislerinde tip güvenli transaction'ları department sınırları içinde kaydeden ve middleware zinciri üzerinden çalıştıran bir web framework'ü.

Tür
Framework
Durum
Aktif
Yayınlandı

Problem

Bir Go HTTP servisinde istek biçimini çözümleme, işlemi doğru handler'a yönlendirme, request verisini doğrulama ve ortak kontrolleri çalıştırma kararları kolayca birbirine karışabilir. GoDispatcher bu akışı Department, Transaction ve Middleware kavramlarıyla tanımlanan ortak bir yürütme modeli altında toplar.

Yaklaşım

Her transaction, generic request ve response tipleri taşıyan Middleware[Req, Res] yapısını kullanır ve iş mantığını Transact metodu içinde uygular. creator.NewTransaction, transaction'ı gerçek repository terminolojisiyle bir department adı ve transaction adı altında registry'ye ekler.

İstekler model.Document zarfıyla taşınır. Bu zarf department, transaction ve form alanlarının yanında opsiyonel güvenlik, çalıştırma seçenekleri ve ardışık dispatch kayıtlarını da barındırır. Framework request formunu transaction'ın Go tipine göre doğrular; yapılandırılmış middleware runable'larını ve ardından Transact metodunu çalıştırır.

Çalıştırma modeli

AşamaSorumluluk
Kayıtcreator.NewTransaction, transaction'ı bir department ve ad ile DispatcherHolder içine ekler.
İstek çözümlemeHTTP katmanı JSON, URL-encoded veya multipart veriyi model.Document biçimine dönüştürür.
DispatchRegistry, department ve transaction alanlarıyla kayıtlı transaction'ı bulur.
Transaction yürütmeServer katmanı request doğrulamasını, middleware runable'larını ve Transact metodunu sırasıyla çalıştırır.
SonuçÇıktı Result veya Error tipli bir model.Document olarak döner.

Bu model ayrı frontend, veritabanı veya worker katmanları tanımlamaz. GoDispatcher, uygulamaların HTTP servisleri oluşturmak için kendi Go kodlarına dahil ettiği bir framework'tür.

Dokümantasyon ve açık kaynak

Kayıtlı transaction'ların request ve response tipleri incelenerek /help endpoint'inde HTML, JSON veya metin tabanlı API dokümantasyonu üretilebilir. Kurulum, temel kavramlar ve gelişmiş kullanım örnekleri repository içindeki README ve docs dosyalarında yer alır.

GoDispatcher'ın public GitHub repository'si MIT License ile yayımlanır. Bu profil herhangi bir kullanıcı, katkıcı, kullanım veya performans metriği ileri sürmez.

Proje durumu

Repository'de çalışan framework paketleri, örnek uygulama, kullanım belgeleri ve sürüm etiketleri bulunuyor; proje aktif geliştirme durumunda. Bu durum kararlılık seviyesi, üretim kullanımı veya belirli bir ölçek garantisi olarak yorumlanmamalıdır.