HTTP服务

Example

项目地址HTTP服务 - 图1 (opens new window)

HTTP配置

  1. type Config struct {
  2. Host string // IP地址,默认127.0.0.1
  3. Port int // PORT端口,默认9001
  4. Mode string // gin的模式,默认是release模式
  5. EnableMetricInterceptor bool // 是否开启监控,默认开启
  6. EnableTraceInterceptor bool // 是否开启链路追踪,默认开启
  7. EnableLocalMainIP bool // 自动获取ip地址
  8. SlowLogThreshold time.Duration // 服务慢日志,默认500ms
  9. }

用户配置

  1. [server.http]
  2. host = "127.0.0.1"
  3. port = 9001

用户代码

配置创建一个 http 的配置项,其中内容按照上文配置进行填写。以上这个示例里这个配置key是server.http

代码中创建一个 HTTP 服务, egin.Load(“”).Build() ,代码中的 key 和配置中的 key 要保持一致。创建完 HTTP 服务后, 将他添加到 ego new 出来应用的 Serve 方法中,之后使用的方法和 gin 就完全一致。

  1. package main
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/gotomicro/ego"
  5. "github.com/gotomicro/ego/core/elog"
  6. "github.com/gotomicro/ego/server/egin"
  7. )
  8. // export EGO_DEBUG=true && go run main.go --config=config.toml
  9. func main() {
  10. if err := ego.New().Serve(func() *egin.Component {
  11. server := egin.Load("server.http").Build()
  12. server.GET("/hello", func(ctx *gin.Context) {
  13. ctx.JSON(200, "Hello EGO")
  14. return
  15. })
  16. return server
  17. }()).Run(); err != nil {
  18. elog.Panic("startup", elog.FieldErr(err))
  19. }
  20. }