main.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package main
  2. import (
  3. "encoding/json"
  4. "git.sxidc.com/go-framework/baize"
  5. "git.sxidc.com/go-framework/baize/convenient/gateway"
  6. "git.sxidc.com/go-framework/baize/framework/binding"
  7. "git.sxidc.com/go-framework/baize/framework/core/api"
  8. "git.sxidc.com/go-framework/baize/framework/core/application"
  9. DEATH "github.com/vrecan/death"
  10. "net/http"
  11. "syscall"
  12. )
  13. func main() {
  14. app := baize.NewApplication(application.Config{
  15. ApiConfig: application.ApiConfig{
  16. UrlPrefix: "/gateway/api",
  17. Port: "11000",
  18. },
  19. })
  20. app.Api().
  21. PrefixRouter().
  22. RegisterVersionedRouter("v1")
  23. gw := gateway.NewGateway()
  24. defer gateway.DestroyGateway(gw)
  25. v1Binder := binding.NewBinder(app.ChooseRouter(api.RouterPrefix, "v1"), app.Infrastructure())
  26. gw.BodyMapping(v1Binder, &gateway.BodyMapping{
  27. HttpMethod: http.MethodPost,
  28. RelativePath: "/class/create",
  29. ToUrl: "http://localhost:31000/example/api/v1/class/create",
  30. BodyMappingFunc: func(body []byte) ([]byte, error) {
  31. origin := make(map[string]any)
  32. err := json.Unmarshal(body, &origin)
  33. if err != nil {
  34. return nil, err
  35. }
  36. origin["studentNum"] = origin["studentNum1"]
  37. delete(origin, "studentNum1")
  38. newBody, err := json.Marshal(origin)
  39. if err != nil {
  40. return nil, err
  41. }
  42. return newBody, nil
  43. },
  44. })
  45. go func() {
  46. if err := app.Start(); err != nil {
  47. panic(err)
  48. }
  49. }()
  50. defer func() {
  51. if err := app.Finish(); err != nil {
  52. panic(err)
  53. }
  54. }()
  55. death := DEATH.NewDeath(syscall.SIGINT, syscall.SIGTERM)
  56. _ = death.WaitForDeath()
  57. }