Ai
1 Star 0 Fork 0

go-better/go

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
example.go 1.88 KB
一键复制 编辑 原始数据 按行查看 历史
proce 提交于 2022-03-21 15:37 +08:00 . add goa
package main
import (
"net/url"
"os"
"path/filepath"
"strings"
"gitee.com/go-better/dev/os/fs"
"gitee.com/go-better/dev/net/goa"
"gitee.com/go-better/dev/net/goa/benchmark/example/users"
"gitee.com/go-better/dev/net/goa/middlewares"
"gitee.com/go-better/dev/net/goa/server"
"gitee.com/go-better/dev/net/goa/utilroutes"
"gitee.com/go-better/dev/debug/logger"
)
func main() {
router := goa.New()
// logger should comes first, to handle panic and log all requests
router.Use(middlewares.NewLogger(logger.New(os.Stdout)).Record)
router.Use(middlewares.NewCORS(allowOrigin).Check)
utilroutes.Setup(&router.RouterGroup)
if os.Getenv("GOA_DOC") != "" {
router.DocDir(filepath.Join(fs.SourceDir(), "docs", "apis"))
}
// If don't need document, use this simple style.
router.Get("/", func(c *goa.Context) {
c.Data("index", nil)
})
// If need document, use this style for automated routes documentation generation.
router.Group("/users", "用户", "用户相关的接口").
Get("/", func(req struct {
Title string `用户列表`
Desc string `根据搜索条件获取用户列表`
Query users.ListReq
Session users.Session
}, resp *struct {
Data users.ListResp
Error error
}) {
resp.Data, resp.Error = req.Query.Run(&req.Session)
}).
Get(`/(\d+)`, func(req struct {
Title string `用户详情`
Desc string `根据用户ID获取用户详情`
Param int64 `用户ID`
Ctx *goa.Context
}, resp *struct {
Data users.DetailResp
Error error
}) {
resp.Data, resp.Error = users.Detail(req.Param)
})
if os.Getenv("GOA_DOC") != "" {
return
}
server.ListenAndServe(router)
}
func allowOrigin(origin string, c *goa.Context) bool {
u, err := url.Parse(origin)
if err != nil {
return false
}
hostname := u.Hostname()
return strings.HasSuffix(hostname, ".example.com") ||
hostname == "example.com" || hostname == "localhost"
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/go-better/go.git
git@gitee.com:go-better/go.git
go-better
go
go
d31700df43a9

搜索帮助