mirror of
https://github.com/go-micro/go-micro.git
synced 2025-03-17 20:28:06 +02:00
60 lines
1016 B
Go
60 lines
1016 B
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
|
|
httpServer "github.com/asim/go-micro/plugins/server/http/v3"
|
|
"github.com/asim/go-micro/v3"
|
|
|
|
"github.com/asim/go-micro/v3/registry"
|
|
"github.com/asim/go-micro/v3/server"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
const (
|
|
SERVER_NAME = "demo-http" // server name
|
|
)
|
|
|
|
func main() {
|
|
|
|
srv := httpServer.NewServer(
|
|
server.Name(SERVER_NAME),
|
|
server.Address(":8080"),
|
|
)
|
|
|
|
gin.SetMode(gin.ReleaseMode)
|
|
router := gin.New()
|
|
router.Use(gin.Recovery())
|
|
|
|
// register router
|
|
demo := newDemo()
|
|
demo.InitRouter(router)
|
|
|
|
hd := srv.NewHandler(router)
|
|
if err := srv.Handle(hd); err != nil {
|
|
log.Fatalln(err)
|
|
}
|
|
|
|
service := micro.NewService(
|
|
micro.Server(srv),
|
|
micro.Registry(registry.NewRegistry()),
|
|
)
|
|
service.Init()
|
|
service.Run()
|
|
}
|
|
|
|
//demo
|
|
type demo struct{}
|
|
|
|
func newDemo() *demo {
|
|
return &demo{}
|
|
}
|
|
|
|
func (a *demo) InitRouter(router *gin.Engine) {
|
|
router.POST("/demo", a.demo)
|
|
}
|
|
|
|
func (a *demo) demo(c *gin.Context) {
|
|
c.JSON(200, gin.H{"msg": "call go-micro v3 http server success"})
|
|
}
|