Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

57 lines
1.1KB

  1. package main
  2. import (
  3. "biukop.com/sfm/loan"
  4. "fmt"
  5. log "github.com/sirupsen/logrus"
  6. "net/http"
  7. )
  8. type httpEntry func(http.ResponseWriter, *http.Request)
  9. var httpEntryMap = map[string]httpEntry{
  10. apiV1Prefix: apiV1Main,
  11. "/dummy/": dummyHandler,
  12. }
  13. func main() {
  14. err := config.readConfig() //wechat API config
  15. if err != nil {
  16. log.Println(err)
  17. log.Fatalf("unable to read %s, program quit\n", configFile)
  18. return
  19. }
  20. setupRootFileServer()
  21. //always the last one
  22. setupHTTPHandler()
  23. }
  24. func setupRootFileServer() {
  25. //root of doc
  26. for idx, node := range config.Static {
  27. log.Printf("setting up static %d with %+v\n", idx, node)
  28. fs := http.FileServer(http.Dir(node.Dir))
  29. http.Handle(node.StaticUrl, http.StripPrefix(node.StripPrefix, fs))
  30. }
  31. }
  32. func setupHTTPHandler() {
  33. for key, val := range httpEntryMap {
  34. http.HandleFunc(key, val)
  35. }
  36. log.Printf("Server started at %s:%s\n", config.Host, config.Port)
  37. log.Fatal(http.ListenAndServe(config.Host+":"+config.Port, nil))
  38. }
  39. func dummyHandler(w http.ResponseWriter, r *http.Request) {
  40. p := loan.People{}
  41. p.FakeNew()
  42. fmt.Fprintf(w, "Hello, there %s, %+v\n", loan.Version, p)
  43. }