main.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. "net/http"
  6. "os"
  7. "time"
  8. "git.chuangxin1.com/csacred/toolkit"
  9. "git.chuangxin1.com/csacred/toolkit/example/cuser/service"
  10. khttp "git.chuangxin1.com/csacred/toolkit/http"
  11. "github.com/go-kit/kit/log"
  12. )
  13. func main() {
  14. var addr = flag.String("listen", ":9122", "Address for HTTP server")
  15. logger := log.NewLogfmtLogger(os.Stderr)
  16. flag.Parse()
  17. readTimeout := 30 * time.Second
  18. writeTimeout := 30 * time.Second
  19. maxHeaderBytes := 1 << 20
  20. router := khttp.NewRouter()
  21. khttp.AddGetHandle(router, "/ver", func(w http.ResponseWriter, r *http.Request) {
  22. ver := map[string]string{
  23. "version": "0.2.0",
  24. "comments": "chuangxin1.com API",
  25. "author": "ls"}
  26. khttp.WriteJSON(w, toolkit.RowReplyData(ver))
  27. })
  28. dns := fmt.Sprintf(
  29. "root:Lsar-5211@tcp(127.0.0.1:3306)/community_user?charset=utf8mb4")
  30. dbConfig := toolkit.DbConfig{
  31. Driver: `mysql`,
  32. DNS: dns,
  33. MaxOpenConns: 50,
  34. MaxIdle: 5,
  35. MaxLifetime: 0}
  36. toolkit.SetDbConfig(dbConfig)
  37. defer toolkit.FreeDB()
  38. srv := service.New()
  39. handers := service.GenServiceHandler(srv, logger)
  40. for i := range handers {
  41. fmt.Println(handers[i].Method, handers[i].Router)
  42. router.Handler(handers[i].Method, handers[i].Router, handers[i].Hander)
  43. }
  44. //serviceRouter(router, logger)
  45. //hs := make(HostSwitch)
  46. //hs["192.168.1.8:9122"] = router
  47. //toolkit.StartServer(addr, hs, readTimeout, writeTimeout, maxHeaderBytes, logger)
  48. khttp.ListenAndServe(
  49. *addr,
  50. router,
  51. readTimeout,
  52. writeTimeout,
  53. maxHeaderBytes,
  54. logger)
  55. }