|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package http
-
- import (
- "github.com/gin-gonic/gin"
- "gitlink.org.cn/cloudream/common/pkgs/logger"
- hubapi "gitlink.org.cn/cloudream/storage2/hub/sdk/api"
- )
-
- type Server struct {
- engine *gin.Engine
- listenAddr string
- svc *Service
- }
-
- func NewServer(listenAddr string, svc *Service) (*Server, error) {
- engine := gin.New()
-
- return &Server{
- engine: engine,
- listenAddr: listenAddr,
- svc: svc,
- }, nil
- }
-
- func (s *Server) Serve() error {
- s.initRouters()
-
- logger.Infof("start serving http at: %s", s.listenAddr)
- err := s.engine.Run(s.listenAddr)
-
- if err != nil {
- logger.Infof("http stopped with error: %s", err.Error())
- return err
- }
-
- logger.Infof("http stopped")
- return nil
- }
-
- func (s *Server) initRouters() {
- s.engine.GET(hubapi.GetStreamPath, s.IOSvc().GetStream)
- s.engine.POST(hubapi.SendStreamPath, s.IOSvc().SendStream)
- s.engine.POST(hubapi.ExecuteIOPlanPath, s.IOSvc().ExecuteIOPlan)
- s.engine.POST(hubapi.SendVarPath, s.IOSvc().SendVar)
- s.engine.GET(hubapi.GetVarPath, s.IOSvc().GetVar)
- }
|