core.go 738 B

123456789101112131415161718192021222324252627282930313233343536
  1. package framework
  2. import (
  3. "log"
  4. "net/http"
  5. )
  6. // 核心框架
  7. type Core struct {
  8. router map[string]ControllerHandler
  9. }
  10. // 初始化框架核心结构
  11. func NewCore() *Core {
  12. return &Core{router: map[string]ControllerHandler{}}
  13. }
  14. func (c *Core) Get(url string, handler ControllerHandler) {
  15. c.router[url] = handler
  16. }
  17. // 框架核心结构实现 handler 接口
  18. func (c *Core) ServeHTTP(response http.ResponseWriter, request *http.Request) {
  19. log.Println("core.ServeHTTP")
  20. ctx := NewContext(request,response)
  21. // 一个简单的路由选择器,这里直接写死为测试路由 foo
  22. router:= c.router["foo"]
  23. if router == nil {
  24. return
  25. }
  26. log.Println("core.router")
  27. router(ctx)
  28. }