Simple, flexible go web framework.
go get github.com/rakunlabs/adaCheck out the guide for more details.
package main
import (
"net/http"
"github.com/rakunlabs/ada"
)
func main() {
server := ada.New()
server.GET("/hello/{user}", SayHello)
server.Start(":8080")
}
// /////////////////////
func SayHello(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello, " + r.PathValue("user")))
}Replace, disable, or add middlewares at runtime without restarting:
auth := ada.NewSlot(forwardauth.Middleware(
forwardauth.WithAddress("http://auth:8080/verify"),
))
server.Use(auth.Middleware())
// Hot-swap at runtime
auth.Replace(forwardauth.Middleware(forwardauth.WithAddress("http://auth-v2:8080")))
auth.Disable() // bypass
auth.Enable() // restore
// Or manage multiple middlewares by key
stack := ada.NewPipeline()
stack.Set("cors", cors.Middleware(...))
stack.Set("auth", forwardauth.Middleware(...))
server.Use(stack.Middleware())
stack.Set("ratelimit", ratelimit.Middleware(...)) // add at runtime
stack.Remove("auth") // remove at runtimeSee the Runtime Reload guide for full details.
