123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- package http
- import (
- "fmt"
- "net/http"
- grpc "go-common/app/service/bbq/recsys-recall/api/grpc/v1"
- "go-common/app/service/bbq/recsys-recall/conf"
- "go-common/app/service/bbq/recsys-recall/service"
- "go-common/app/service/bbq/recsys-recall/service/index"
- "go-common/library/log"
- bm "go-common/library/net/http/blademaster"
- "go-common/library/net/http/blademaster/binding"
- "go-common/library/net/http/blademaster/middleware/verify"
- )
- var (
- srv *service.Service
- vfy *verify.Verify
- )
- // Init init
- func Init(c *conf.Config) {
- srv = service.New(c)
- vfy = verify.New(c.Verify)
- engine := bm.DefaultServer(c.BM)
- route(engine)
- if err := engine.Start(); err != nil {
- log.Error("bm Start error(%v)", err)
- panic(err)
- }
- }
- func route(e *bm.Engine) {
- e.Ping(ping)
- e.Register(register)
- g := e.Group("/bbq/internal/recall")
- {
- g.GET("/start", vfy.Verify, howToStart)
- g.GET("/forward_index", forwardIndex)
- g.GET("/inverted_index", invertedIndex)
- g.GET("/recall", recall)
- g.GET("/videos", videosByIndex)
- g.POST("/new_income", newIncomeVideos)
- }
- }
- func forwardIndex(c *bm.Context) {
- args := struct {
- Svid uint64 `form:"svid" json:"svid" validate:"required"`
- }{}
- var err error
- if err = c.Bind(&args); err != nil {
- log.Errorv(*c, log.KV("log", err))
- return
- }
- if res := index.Index.Get(args.Svid); res != nil {
- c.String(0, res.String())
- return
- }
- c.String(0, "error: %v", err)
- }
- func invertedIndex(c *bm.Context) {
- c.JSON(nil, nil)
- }
- func recall(c *bm.Context) {
- args := struct {
- MID int64 `json:"mid" form:"mid"`
- BUVID string `json:"buvid" form:"buvid"`
- TotalLimit int32 `json:"total_limit" form:"total_limit"`
- Tag string `json:"tag" form:"tag"`
- Name string `json:"name" form:"name"`
- Scorer string `json:"scorer" form:"scorer"`
- Filter string `json:"filter" form:"filter"`
- Ranker string `json:"ranker" form:"ranker"`
- Priority int32 `json:"priority" form:"priority"`
- Limit int32 `json:"limit" form:"limit"`
- }{}
- if err := c.Bind(&args); err != nil {
- return
- }
- req := &grpc.RecallRequest{
- MID: args.MID,
- BUVID: args.BUVID,
- TotalLimit: args.TotalLimit,
- Infos: []*grpc.RecallInfo{
- {
- Tag: args.Tag,
- Name: args.Name,
- Scorer: args.Scorer,
- Filter: args.Filter,
- Ranker: args.Ranker,
- Priority: args.Priority,
- Limit: args.Limit,
- },
- },
- }
- c.JSON(srv.Recall(c, req))
- }
- func newIncomeVideos(c *bm.Context) {
- args := &grpc.NewIncomeVideoRequest{}
- if err := c.BindWith(args, binding.JSON); err != nil {
- return
- }
- fmt.Println(args)
- c.JSON(srv.NewIncomeVideo(c, args))
- }
- func videosByIndex(c *bm.Context) {
- args := &grpc.VideosByIndexRequest{}
- if err := c.Bind(args); err != nil {
- return
- }
- c.JSON(srv.VideosByIndex(c, args))
- }
- func ping(c *bm.Context) {
- if err := srv.Ping(c); err != nil {
- log.Error("ping error(%v)", err)
- c.AbortWithStatus(http.StatusServiceUnavailable)
- }
- }
- func register(c *bm.Context) {
- c.JSON(map[string]interface{}{}, nil)
- }
- // example for http request handler
- func howToStart(c *bm.Context) {
- c.String(0, "Golang 大法好 !!!")
- }
|