Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
demo-go
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
彭芳
demo-go
Commits
a50dbbe4
Commit
a50dbbe4
authored
Feb 17, 2023
by
彭芳
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
minor: refactor
parent
d9be4ff4
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
74 additions
and
14 deletions
+74
-14
Makefile
Makefile
+6
-0
README.md
README.md
+6
-0
wire.go
cmd/demo/wire.go
+2
-0
wire_gen.go
cmd/demo/wire_gen.go
+5
-1
go.mod
go.mod
+4
-1
go.sum
go.sum
+9
-0
router.go
internal/router/router.go
+10
-0
web.go
internal/router/web.go
+25
-0
http.go
internal/server/http.go
+5
-11
greeter.go
internal/service/greeter.go
+2
-1
No files found.
Makefile
View file @
a50dbbe4
...
...
@@ -45,6 +45,12 @@ all:
make config
;
make generate
;
.PHONY
:
run
# local run
run
:
all build
./bin/demo
# show help
help
:
@
echo
''
...
...
README.md
View file @
a50dbbe4
...
...
@@ -17,6 +17,12 @@ cd cmd/server
wire
```
## Local run
```
# Generate all files, build and run
make run
```
## Docker
```
bash
# build
...
...
cmd/demo/wire.go
View file @
a50dbbe4
...
...
@@ -9,6 +9,7 @@ import (
"demo/internal/biz"
"demo/internal/conf"
"demo/internal/data"
"demo/internal/router"
"demo/internal/server"
"demo/internal/service"
...
...
@@ -24,5 +25,6 @@ func wireApp(*conf.Server, *conf.Data, log.Logger) (*kratos.App, func(), error)
data
.
ProviderSet
,
biz
.
ProviderSet
,
service
.
ProviderSet
,
router
.
ProviderSet
,
newApp
))
}
cmd/demo/wire_gen.go
View file @
a50dbbe4
...
...
@@ -10,6 +10,7 @@ import (
"demo/internal/biz"
"demo/internal/conf"
"demo/internal/data"
"demo/internal/router"
"demo/internal/server"
"demo/internal/service"
"github.com/go-kratos/kratos/v2"
...
...
@@ -31,7 +32,10 @@ func wireApp(confServer *conf.Server, confData *conf.Data, logger log.Logger) (*
greeterRepo
:=
data
.
NewGreeterRepo
(
dataData
,
logger
)
greeterUsecase
:=
biz
.
NewGreeterUsecase
(
greeterRepo
,
logger
)
greeterService
:=
service
.
NewGreeterService
(
greeterUsecase
)
httpServer
:=
server
.
NewHTTPServer
(
confServer
,
greeterService
,
logger
)
web
:=
&
router
.
Web
{
Greeter
:
greeterService
,
}
httpServer
:=
server
.
NewHTTPServer
(
confServer
,
web
,
logger
)
app
:=
newApp
(
logger
,
httpServer
)
return
app
,
func
()
{
cleanup
()
...
...
go.mod
View file @
a50dbbe4
...
...
@@ -14,7 +14,10 @@ require (
gorm.io/gorm v1.24.5
)
require github.com/gin-gonic/gin v1.8.2
require (
github.com/gin-contrib/pprof v1.4.0
github.com/gin-gonic/gin v1.8.2
)
require (
github.com/fsnotify/fsnotify v1.5.4 // indirect
...
...
go.sum
View file @
a50dbbe4
...
...
@@ -25,8 +25,11 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7
github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI=
github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/gin-contrib/pprof v1.4.0 h1:XxiBSf5jWZ5i16lNOPbMTVdgHBdhfGRD5PZ1LWazzvg=
github.com/gin-contrib/pprof v1.4.0/go.mod h1:RrehPJasUVBPK6yTUwOl8/NP6i0vbUgmxtis+Z5KE90=
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk=
github.com/gin-gonic/gin v1.8.2 h1:UzKToD9/PoFj/V4rvlKqTRKnQYyz8Sc1MJlv4JHPtvY=
github.com/gin-gonic/gin v1.8.2/go.mod h1:qw5AYuDrzRTnhvusDsrov+fDIxp9Dleuu12h8nfB398=
github.com/go-kratos/aegis v0.1.2/go.mod h1:jYeSQ3Gesba478zEnujOiG5QdsyF3Xk/8owFUeKcHxw=
...
...
@@ -46,10 +49,12 @@ github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb
github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs=
github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho=
github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos=
github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ=
github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU=
github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc=
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk=
github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
github.com/golang-jwt/jwt/v4 v4.4.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
...
...
@@ -108,12 +113,14 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w=
github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU=
github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
...
...
@@ -158,6 +165,7 @@ go.uber.org/automaxprocs v1.5.1 h1:e1YG66Lrk73dn4qhg8WFSvhF0JuFQF0ERIp4rpuV8Qk=
go.uber.org/automaxprocs v1.5.1/go.mod h1:BF4eumQw0P9GtnuxxovUd06vwm1o18oMzFtK66vU6XU=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3 h1:0es+/5331RGQPcXlMfP+WrnIIS6dNnNRe0WB02W0F4M=
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
...
...
@@ -204,6 +212,7 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210816074244-15123e1e1f71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
...
...
internal/router/router.go
0 → 100644
View file @
a50dbbe4
package
router
import
(
"github.com/google/wire"
)
// ProviderSet is router providers.
var
ProviderSet
=
wire
.
NewSet
(
wire
.
Struct
(
new
(
Web
),
"*"
),
)
internal/router/web.go
0 → 100644
View file @
a50dbbe4
package
router
import
(
"net/http"
"github.com/gin-contrib/pprof"
"github.com/gin-gonic/gin"
"demo/internal/service"
)
type
Web
struct
{
Greeter
*
service
.
GreeterService
}
func
(
p
*
Web
)
RouterInit
(
engine
*
gin
.
Engine
)
{
engine
.
NoRoute
(
func
(
c
*
gin
.
Context
)
{
c
.
JSON
(
http
.
StatusNotFound
,
gin
.
H
{
"code"
:
"404"
,
"msg"
:
"PageNo not found"
})
})
// add pprof to look at the heap,a 30-second CPU and so on profile
// eg: go tool pprof http://localhost:8000/api/pprof/profile
pprof
.
Register
(
engine
,
"/api/pprof"
)
// add api
engine
.
GET
(
"/helloworld/:name"
,
p
.
Greeter
.
SayHello
)
}
internal/server/http.go
View file @
a50dbbe4
package
server
import
(
"net/http"
"github.com/gin-gonic/gin"
"github.com/go-kratos/kratos/v2/log"
"github.com/go-kratos/kratos/v2/middleware/recovery"
kratos_http
"github.com/go-kratos/kratos/v2/transport/http"
"demo/internal/conf"
"demo/internal/
service
"
"demo/internal/
router
"
)
// NewHTTPServer new an HTTP server.
func
NewHTTPServer
(
c
*
conf
.
Server
,
greeter
*
service
.
GreeterService
,
logger
log
.
Logger
)
*
kratos_http
.
Server
{
func
NewHTTPServer
(
c
*
conf
.
Server
,
web
*
router
.
Web
,
logger
log
.
Logger
)
*
kratos_http
.
Server
{
var
opts
=
[]
kratos_http
.
ServerOption
{
kratos_http
.
Middleware
(
recovery
.
Recovery
(),
...
...
@@ -29,12 +27,8 @@ func NewHTTPServer(c *conf.Server, greeter *service.GreeterService, logger log.L
opts
=
append
(
opts
,
kratos_http
.
Timeout
(
c
.
Http
.
Timeout
.
AsDuration
()))
}
srv
:=
kratos_http
.
NewServer
(
opts
...
)
router
:=
gin
.
Default
()
router
.
NoRoute
(
func
(
c
*
gin
.
Context
)
{
c
.
JSON
(
http
.
StatusNotFound
,
gin
.
H
{
"code"
:
"404"
,
"msg"
:
"PageNo not found"
})
})
router
.
GET
(
"/helloworld/:name"
,
greeter
.
SayHello
)
srv
.
HandlePrefix
(
"/"
,
router
)
engine
:=
gin
.
Default
()
web
.
RouterInit
(
engine
)
srv
.
HandlePrefix
(
"/"
,
engine
)
return
srv
}
internal/service/greeter.go
View file @
a50dbbe4
package
service
import
(
"fmt"
"net/http"
"github.com/gin-gonic/gin"
...
...
@@ -26,7 +27,7 @@ func (s *GreeterService) SayHello(ctx *gin.Context) {
return
}
ctx
.
AbortWithStatusJSON
(
http
.
StatusOK
,
gin
.
H
{
"message"
:
g
.
Hello
,
"message"
:
fmt
.
Sprintf
(
"hello %s"
,
g
.
Hello
)
,
})
return
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment