mirror of
https://github.com/go-kratos/kratos.git
synced 2025-03-19 21:18:07 +02:00
add bm path param doc (#253)
This commit is contained in:
parent
db4edd293b
commit
2ef7f7e10c
@ -51,7 +51,8 @@ func initRouter(e *bm.Engine) {
|
||||
e.Ping(ping) // engine自带的"/ping"接口,用于负载均衡检测服务健康状态
|
||||
g := e.Group("/kratos-demo") // e.Group 创建一组 "/kratos-demo" 起始的路由组
|
||||
{
|
||||
g.GET("/start", howToStart) // g.GET 创建一个 "kratos-demo/start" 的路由,默认处理Handler为howToStart方法
|
||||
g.GET("/start", howToStart) // g.GET 创建一个 "kratos-demo/start" 的路由,使用GET方式请求,默认处理Handler为howToStart方法
|
||||
g.POST("start", howToStart) // g.POST 创建一个 "kratos-demo/start" 的路由,使用POST方式请求,默认处理Handler为howToStart方法
|
||||
}
|
||||
}
|
||||
```
|
||||
@ -111,6 +112,52 @@ curl 'http://127.0.0.1:8000/metadata'
|
||||
}
|
||||
```
|
||||
|
||||
# 路径参数
|
||||
|
||||
使用方式如下:
|
||||
|
||||
```go
|
||||
func initRouter(e *bm.Engine) {
|
||||
e.Ping(ping)
|
||||
g := e.Group("/kratos-demo")
|
||||
{
|
||||
g.GET("/start", howToStart)
|
||||
|
||||
// 路径参数有两个特殊符号":"和"*"
|
||||
// ":" 跟在"/"后面为参数的key,匹配两个/中间的值 或 一个/到结尾(其中不再包含/)的值
|
||||
// "*" 跟在"/"后面为参数的key,匹配从 /*开始到结尾的所有值,所有*必须写在最后且无法多个
|
||||
|
||||
// NOTE:这是不被允许的,会和 /start 冲突
|
||||
// g.GET("/:xxx")
|
||||
|
||||
// NOTE: 可以拿到一个key为name的参数。注意只能匹配到/param1/felix,无法匹配/param1/felix/hao(该路径会404)
|
||||
g.GET("/param1/:name", pathParam)
|
||||
// NOTE: 可以拿到多个key参数。注意只能匹配到/param2/felix/hao/love,无法匹配/param2/felix或/param2/felix/hao
|
||||
g.GET("/param2/:name/:value/:felid", pathParam)
|
||||
// NOTE: 可以拿到一个key为name的参数 和 一个key为action的路径。
|
||||
// NOTE: 如/params3/felix/hello,action的值为"/hello"
|
||||
// NOTE: 如/params3/felix/hello/hi,action的值为"/hello/hi"
|
||||
// NOTE: 如/params3/felix/hello/hi/,action的值为"/hello/hi/"
|
||||
g.GET("/param3/:name/*action", pathParam)
|
||||
}
|
||||
}
|
||||
|
||||
func pathParam(c *bm.Context) {
|
||||
name, _ := c.Params.Get("name")
|
||||
value, _ := c.Params.Get("value")
|
||||
felid, _ := c.Params.Get("felid")
|
||||
action, _ := c.Params.Get("action")
|
||||
path := c.RoutePath // NOTE: 获取注册的路由原始地址,如: /kratos-demo/param1/:name
|
||||
c.JSONMap(map[string]interface{}{
|
||||
"name": name,
|
||||
"value": value,
|
||||
"felid": felid,
|
||||
"action": action,
|
||||
"path": path,
|
||||
}, nil)
|
||||
}
|
||||
```
|
||||
|
||||
# 性能分析
|
||||
|
||||
启动时默认监听了`2333`端口用于`pprof`信息采集,如:
|
||||
|
@ -16,7 +16,7 @@ type RateLimiter struct {
|
||||
logTime int64
|
||||
}
|
||||
|
||||
// New return a ratelimit middleware.
|
||||
// NewRateLimiter return a ratelimit middleware.
|
||||
func NewRateLimiter(conf *bbr.Config) (s *RateLimiter) {
|
||||
return &RateLimiter{
|
||||
group: bbr.NewGroup(conf),
|
||||
|
@ -5,9 +5,9 @@
|
||||
package blademaster
|
||||
|
||||
import (
|
||||
"net/url"
|
||||
"strings"
|
||||
"unicode"
|
||||
"net/url"
|
||||
"strings"
|
||||
"unicode"
|
||||
)
|
||||
|
||||
// Param is a single URL parameter, consisting of a key and a value.
|
||||
|
Loading…
x
Reference in New Issue
Block a user