
Dispatcher, modern API tasarımında esneklik, hız ve basitliği bir araya getiren bir Go framework’tür.
Kurumsal yapılarda kullanılan “departman” ve “işlem” kavramlarını merkeze alan yapısıyla, API’lerinizi anlamlı, ölçeklenebilir ve düzenli bir biçimde kurgulamanızı sağlar.
Günümüzde Go dünyasında birçok minimalist web framework bulunuyor. GoDispatcher (a.k.a. 'dispatcher'), JSON tabanlı API’ler geliştirmek isteyenler için type-safe, middleware tabanlı, bölümsel (department-based) mimari desteği sunan bir çözüm.
Küçük projelerden büyük ölçekli enterprise sistemlere kadar geniş yelpazede HTTP servisleri kolayca geliştirmeyi hedefler.
/helpGO// Örnek department içinden package department import ( "github.com/godispatcher/dispatcher/src/middleware" ) type HelloRequest struct { Name string `json:"name"` } type HelloResponse struct { Message string `json:"message"` } type HelloTransaction struct { middleware.Middleware[HelloRequest, HelloResponse] } func (t *HelloTransaction) SetSelfRunables() error { return nil } func (t *HelloTransaction) Transact() error { t.Response.Message = "Hello, " + t.Request.Name + "!" return nil }
Transaction kaydı:
GOpackage department import "github.com/godispatcher/dispatcher/creator" func RegisterHello() { creator.NewTransaction[HelloTransaction, *HelloTransaction]( "Greeting", "hello", nil, nil, ) }
Ana uygulama:
GOpackage main import ( "github.com/godispatcher/dispatcher/department" "github.com/godispatcher/dispatcher/server" "your-project/department" ) func main() { service := department.NewRegisteryDispatcher("8080") department.RegisterHello() server.ServJsonApiDoc() server.ServJsonApi(service) }
Bu yapı ile uygulama
/helpJSON{ "department": "DepartmentName", "transaction": "transaction-name", "form": { "field1": "value1", "field2": "value2" }, "security": { "licence": "token-string" }, "options": { "security": { "licence_checker": true } }, "dispatchings": [ { "department": "OtherDept", "transaction": "other-trans" } ] }
JSON{ "department": "DepartmentName", "transaction": "transaction-name", "type": "Result", "output": { "result": { } } }
JSON{ "department": "DepartmentName", "transaction": "transaction-name", "type": "Error", "error": "Hata mesajı" }
Kullanım alanları:
your-project/ ├── main.go ├── department/ │ ├── user/ │ │ ├── user.go │ │ └── register.go │ ├── product/ │ │ ├── product.go │ │ └── register.go │ └── auth/ │ ├── auth.go │ └── register.go ├── middleware/ │ └── custom.go └── model/ └── types.go
document.Security.Licence"GoDispatcher ile hızlı, güvenli ve ölçeklenebilir HTTP servisleri oluşturun!"