package main import ( "encoding/json" "git.sxidc.com/go-framework/baize" "git.sxidc.com/go-framework/baize/convenient/gateway" "git.sxidc.com/go-framework/baize/framework/binding" "git.sxidc.com/go-framework/baize/framework/core/api" "git.sxidc.com/go-framework/baize/framework/core/application" DEATH "github.com/vrecan/death" "net/http" "syscall" ) func main() { app := baize.NewApplication(application.Config{ ApiConfig: application.ApiConfig{ UrlPrefix: "/gateway/api", Port: "11000", }, }) app.Api(). PrefixRouter(). RegisterVersionedRouter("v1") gw := gateway.NewGateway() defer gateway.DestroyGateway(gw) v1Binder := binding.NewBinder(app.ChooseRouter(api.RouterPrefix, "v1"), app.Infrastructure()) gw.BodyMapping(v1Binder, &gateway.BodyMapping{ HttpMethod: http.MethodPost, RelativePath: "/class/create", ToUrl: "http://localhost:31000/example/api/v1/class/create", BodyMappingFunc: func(body []byte) ([]byte, error) { origin := make(map[string]any) err := json.Unmarshal(body, &origin) if err != nil { return nil, err } origin["studentNum"] = origin["studentNum1"] delete(origin, "studentNum1") newBody, err := json.Marshal(origin) if err != nil { return nil, err } return newBody, nil }, }) go func() { if err := app.Start(); err != nil { panic(err) } }() defer func() { if err := app.Finish(); err != nil { panic(err) } }() death := DEATH.NewDeath(syscall.SIGINT, syscall.SIGTERM) _ = death.WaitForDeath() }