额外参数新增uuid算法

This commit is contained in:
Liujian
2024-03-12 16:04:02 +08:00
parent 2f81cbf3a8
commit 06006a38d4
4 changed files with 62 additions and 1 deletions

View File

@@ -5,6 +5,8 @@ import (
"strings"
"sync"
"github.com/eolinker/apinto/drivers/plugins/extra-params_v2/dynamic-params/uuid"
hmac_sha256 "github.com/eolinker/apinto/drivers/plugins/extra-params_v2/dynamic-params/hmac-sha256"
"github.com/eolinker/apinto/drivers/plugins/extra-params_v2/dynamic-params/concat"
@@ -55,6 +57,7 @@ func Create(id, name string, conf *Config, workers map[eosc.RequireId]eosc.IWork
timestamp.Register()
concat.Register()
hmac_sha256.Register()
uuid.Register()
})
ep := &executor{
WorkerBase: drivers.Worker(id, name),

View File

@@ -0,0 +1,24 @@
package uuid
import dynamic_params "github.com/eolinker/apinto/drivers/plugins/extra-params_v2/dynamic-params"
const name = "$uuid"
func Register() {
dynamic_params.Register(name, NewFactory())
}
func NewFactory() *Factory {
return &Factory{}
}
type Factory struct {
}
func (f *Factory) Create(name string, value []string) (dynamic_params.IDynamicDriver, error) {
v := defaultValue
if len(value) > 0 {
v = value[0]
}
return NewUuid(name, v), nil
}

View File

@@ -0,0 +1,34 @@
package uuid
import (
"github.com/google/uuid"
http_service "github.com/eolinker/eosc/eocontext/http-context"
)
const (
defaultValue = "string"
)
type Uuid struct {
name string
value string
}
func NewUuid(name, value string) *Uuid {
return &Uuid{name: name, value: value}
}
func (t *Uuid) Name() string {
return t.name
}
func (t *Uuid) Generate(ctx http_service.IHttpContext, contentType string, args ...interface{}) (interface{}, error) {
switch t.value {
case "string":
return uuid.New().String(), nil
case "int":
return uuid.New().ID(), nil
}
return uuid.New().String(), nil
}

View File

@@ -69,7 +69,7 @@ func (ur *URIRequest) GetQuery(key string) string {
}
func (ur *URIRequest) RawQuery() string {
return string(ur.uri.QueryString())
return string(ur.uri.QueryArgs().String())
}
func (ur *URIRequest) SetPath(s string) {