Skip to content

Commit 0ad761b

Browse files
authored
refactor(jet): refactor jet.Client to service-breaking change (#338)
* refactor(hyperf/jet/middleware): refactor `jet.Client` to `service` * refactor(hyperf/jet/middleware): refactor `jet.Client` to `service` * refactor(hyperf/jet/middleware): refactor `jet.Client` to `service`
1 parent 20703f6 commit 0ad761b

13 files changed

+64
-73
lines changed

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ module github.com/go-kratos-ecosystem/components/v2
33
go 1.22
44

55
require (
6+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.35.1-20240920164238-5a7b106cbb87.1
67
entgo.io/ent v0.14.0
78
github.com/bufbuild/protovalidate-go v0.7.2
89
github.com/cheggaaa/pb/v3 v3.1.5
@@ -36,7 +37,6 @@ require (
3637
)
3738

3839
require (
39-
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.35.1-20240920164238-5a7b106cbb87.1 // indirect
4040
github.com/VividCortex/ewma v1.2.0 // indirect
4141
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
4242
github.com/bytedance/sonic v1.11.6 // indirect

hyperf/jet/client.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -99,27 +99,27 @@ func NewClient(opts ...Option) (*Client, error) {
9999
return client, nil
100100
}
101101

102-
func (c *Client) Invoke(ctx context.Context, name string, request any, response any, middlewares ...Middleware) (err error) { // nolint:lll
103-
handler := func(ctx context.Context, _ *Client, name string, request any) (any, error) {
104-
err = c.invoke(ctx, name, request, response)
102+
func (c *Client) Invoke(ctx context.Context, method string, request any, response any, middlewares ...Middleware) (err error) { // nolint:lll
103+
handler := func(ctx context.Context, service string, method string, request any) (any, error) {
104+
err = c.invoke(ctx, service, method, request, response)
105105
return response, err
106106
}
107107

108108
handler = Chain(append(c.middlewares, middlewares...)...)(handler)
109109

110-
response, err = handler(ctx, c, name, request)
110+
response, err = handler(ctx, c.service, method, request)
111111
return
112112
}
113113

114-
func (c *Client) invoke(ctx context.Context, name string, request any, response any) error {
114+
func (c *Client) invoke(ctx context.Context, service, method string, request any, response any) error {
115115
params, err := c.packer.Pack(request)
116116
if err != nil {
117117
return err
118118
}
119119

120120
req, err := c.formatter.FormatRequest(&RPCRequest{
121121
ID: c.idGenerator.Generate(),
122-
Path: c.pathGenerator.Generate(c.service, name),
122+
Path: c.pathGenerator.Generate(service, method),
123123
Params: params,
124124
})
125125
if err != nil {

hyperf/jet/client_test.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,10 @@ func TestClient_Invoke(t *testing.T) {
6969
WithFormatter(formatter),
7070
WithPacker(packer),
7171
WithMiddleware(func(next Handler) Handler {
72-
return func(ctx context.Context, client *Client, name string, request any) (response any, err error) {
73-
assert.Equal(t, "balance", name)
72+
return func(ctx context.Context, service, method string, request any) (response any, err error) {
73+
assert.Equal(t, "balance", method)
7474
assert.Equal(t, testParams, request)
75-
return next(ctx, client, name, request)
75+
return next(ctx, service, method, request)
7676
}
7777
}),
7878
)
@@ -85,10 +85,10 @@ func TestClient_Invoke(t *testing.T) {
8585
assert.Equal(t, packer, client.GetPacker())
8686

8787
client.Use(func(next Handler) Handler {
88-
return func(ctx context.Context, client *Client, name string, request any) (response any, err error) {
89-
assert.Equal(t, "balance", name)
88+
return func(ctx context.Context, service, method string, request any) (response any, err error) {
89+
assert.Equal(t, "balance", method)
9090
assert.Equal(t, testParams, request)
91-
return next(ctx, client, name, request)
91+
return next(ctx, service, method, request)
9292
}
9393
})
9494

hyperf/jet/middleware.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package jet
22

33
import "context"
44

5-
type Handler func(ctx context.Context, client *Client, name string, request any) (response any, err error)
5+
type Handler func(ctx context.Context, service, method string, request any) (response any, err error)
66

77
type Middleware func(Handler) Handler
88

hyperf/jet/middleware/logging/logging.go

+3-8
Original file line numberDiff line numberDiff line change
@@ -29,29 +29,24 @@ func New(opts ...Option) jet.Middleware {
2929
opt(&o)
3030
}
3131
return func(next jet.Handler) jet.Handler {
32-
return func(ctx context.Context, client *jet.Client, name string, request any) (response any, err error) {
32+
return func(ctx context.Context, service, method string, request any) (response any, err error) {
3333
defer func(starting time.Time) {
3434
level := log.LevelInfo
3535
if err != nil {
3636
level = log.LevelError
3737
}
3838

39-
service := "unknown"
40-
if client != nil {
41-
service = client.GetService()
42-
}
43-
4439
_ = log.WithContext(ctx, o.logger).Log(level,
4540
"kind", "jet",
4641
"service", service,
47-
"name", name,
42+
"method", method,
4843
"request", request,
4944
"response", response,
5045
"error", err,
5146
"latency", time.Since(starting),
5247
)
5348
}(time.Now())
54-
return next(ctx, client, name, request)
49+
return next(ctx, service, method, request)
5550
}
5651
}
5752
}

hyperf/jet/middleware/logging/logging_test.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ import (
77

88
"github.com/go-kratos/kratos/v2/log"
99
"github.com/stretchr/testify/assert"
10-
11-
"github.com/go-kratos-ecosystem/components/v2/hyperf/jet"
1210
)
1311

1412
type mockLogger struct {
@@ -27,8 +25,8 @@ func (m *mockLogger) Log(level log.Level, keyvals ...any) error {
2725
assert.Equal(m.t, "kind", keyvals[0])
2826
assert.Equal(m.t, "jet", keyvals[1])
2927
assert.Equal(m.t, "service", keyvals[2])
30-
assert.Equal(m.t, "unknown", keyvals[3])
31-
assert.Equal(m.t, "name", keyvals[4])
28+
assert.Equal(m.t, "service", keyvals[3])
29+
assert.Equal(m.t, "method", keyvals[4])
3230

3331
if keyvals[5] == "no-error" {
3432
assert.Equal(m.t, log.LevelInfo, level)
@@ -59,14 +57,16 @@ func TestLogging(t *testing.T) {
5957
)
6058

6159
// no error
62-
_, _ = logging(func(_ context.Context, _ *jet.Client, name string, _ any) (response any, err error) {
63-
assert.Equal(t, "no-error", name)
60+
_, _ = logging(func(_ context.Context, service, method string, _ any) (response any, err error) {
61+
assert.Equal(t, "service", service)
62+
assert.Equal(t, "no-error", method)
6463
return "response", nil
65-
})(context.Background(), nil, "no-error", nil)
64+
})(context.Background(), "service", "no-error", nil)
6665

6766
// with error
68-
_, _ = logging(func(_ context.Context, _ *jet.Client, name string, _ any) (response any, err error) {
69-
assert.Equal(t, "with-error", name)
67+
_, _ = logging(func(_ context.Context, service, method string, _ any) (response any, err error) {
68+
assert.Equal(t, "service", service)
69+
assert.Equal(t, "with-error", method)
7070
return nil, assert.AnError
71-
})(context.Background(), nil, "with-error", nil)
71+
})(context.Background(), "service", "with-error", nil)
7272
}

hyperf/jet/middleware/recovery/recovery.go

+6-10
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,11 @@ import (
77
"github.com/go-kratos-ecosystem/components/v2/hyperf/jet"
88
)
99

10-
var DefaultHandler = func(_ context.Context, client *jet.Client, name string, request any, err any) error {
11-
service := "unknown"
12-
if client != nil {
13-
service = client.GetService()
14-
}
15-
return fmt.Errorf("service: %s, name: %s, request: %v, error: %v", service, name, request, err)
10+
var DefaultHandler = func(_ context.Context, service, method string, request any, err any) error {
11+
return fmt.Errorf("service: %s, method: %s, request: %v, error: %v", service, method, request, err)
1612
}
1713

18-
type HandlerFunc func(ctx context.Context, client *jet.Client, name string, request any, err any) error
14+
type HandlerFunc func(ctx context.Context, service, method string, request any, err any) error
1915

2016
type options struct {
2117
handler HandlerFunc
@@ -38,13 +34,13 @@ func New(opts ...Option) jet.Middleware {
3834
opt(&o)
3935
}
4036

41-
return func(ctx context.Context, client *jet.Client, name string, request any) (response any, err error) {
37+
return func(ctx context.Context, service, method string, request any) (response any, err error) {
4238
defer func() {
4339
if rerr := recover(); rerr != nil {
44-
err = o.handler(ctx, client, name, request, rerr)
40+
err = o.handler(ctx, service, method, request, rerr)
4541
}
4642
}()
47-
return next(ctx, client, name, request)
43+
return next(ctx, service, method, request)
4844
}
4945
}
5046
}

hyperf/jet/middleware/recovery/recovery_test.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -6,37 +6,37 @@ import (
66
"testing"
77

88
"github.com/stretchr/testify/assert"
9-
10-
"github.com/go-kratos-ecosystem/components/v2/hyperf/jet"
119
)
1210

1311
func TestRecovery(t *testing.T) {
14-
testName := "test"
12+
testService := "service"
13+
testMethod := "method"
1514
testRequest := "request"
1615
testError := "error"
1716

1817
recovery := New(
19-
Handler(func(_ context.Context, _ *jet.Client, name string, request any, err any) error {
20-
assert.Equal(t, testName, name)
18+
Handler(func(_ context.Context, service string, method string, request any, err any) error {
19+
assert.Equal(t, testService, service)
20+
assert.Equal(t, testMethod, method)
2121
assert.Equal(t, testRequest, request)
2222
assert.Equal(t, testError, err)
23-
return fmt.Errorf("name: %s, request: %v, error: %v", name, request, err)
23+
return fmt.Errorf("method: %s, request: %v, error: %v", method, request, err)
2424
}),
2525
)
2626

27-
response, err := recovery(func(context.Context, *jet.Client, string, any) (response any, err error) {
27+
response, err := recovery(func(context.Context, string, string, any) (response any, err error) {
2828
panic(testError)
29-
})(context.Background(), nil, testName, testRequest)
29+
})(context.Background(), testService, testMethod, testRequest)
3030
assert.Error(t, err)
3131
assert.Nil(t, response)
3232
}
3333

3434
func TestRecovery_DefaultHandler(t *testing.T) {
3535
recovery := New()
3636

37-
response, err := recovery(func(context.Context, *jet.Client, string, any) (response any, err error) {
37+
response, err := recovery(func(context.Context, string, string, any) (response any, err error) {
3838
panic("error")
39-
})(context.Background(), nil, "test", "request")
39+
})(context.Background(), "service", "method", "request")
4040
assert.Error(t, err)
4141
assert.Nil(t, response)
4242
}

hyperf/jet/middleware/retry/retry.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ func New(opts ...Option) jet.Middleware {
1919
opt(&o)
2020
}
2121
return func(next jet.Handler) jet.Handler {
22-
return func(ctx context.Context, client *jet.Client, name string, request any) (response any, err error) {
22+
return func(ctx context.Context, service, method string, request any) (response any, err error) {
2323
starting := time.Now()
2424
for i := 1; i <= o.attempts; i++ {
25-
response, err = next(ctx, client, name, request)
25+
response, err = next(ctx, service, method, request)
2626
if err == nil {
2727
return
2828
}

hyperf/jet/middleware/retry/retry_test.go

+5-7
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import (
66
"testing"
77

88
"github.com/stretchr/testify/assert"
9-
10-
"github.com/go-kratos-ecosystem/components/v2/hyperf/jet"
119
)
1210

1311
func TestRetry(t *testing.T) {
@@ -22,12 +20,12 @@ func TestRetry(t *testing.T) {
2220

2321
tests := []struct {
2422
name string
25-
handler func(ctx context.Context, client *jet.Client, name string, request any) (response any, err error)
23+
handler func(ctx context.Context, service, method string, request any) (response any, err error)
2624
want func(t *testing.T, err error)
2725
}{
2826
{
2927
name: "test",
30-
handler: func(context.Context, *jet.Client, string, any) (any, error) {
28+
handler: func(context.Context, string, string, any) (any, error) {
3129
return nil, assert.AnError
3230
},
3331
want: func(t *testing.T, err error) {
@@ -36,7 +34,7 @@ func TestRetry(t *testing.T) {
3634
},
3735
{
3836
name: "test",
39-
handler: func(context.Context, *jet.Client, string, any) (any, error) {
37+
handler: func(context.Context, string, string, any) (any, error) {
4038
return nil, customError
4139
},
4240
want: func(t *testing.T, err error) {
@@ -45,7 +43,7 @@ func TestRetry(t *testing.T) {
4543
},
4644
{
4745
name: "test",
48-
handler: func(context.Context, *jet.Client, string, any) (any, error) {
46+
handler: func(context.Context, string, string, any) (any, error) {
4947
return nil, nil
5048
},
5149
want: func(t *testing.T, err error) {
@@ -56,7 +54,7 @@ func TestRetry(t *testing.T) {
5654

5755
for _, tt := range tests {
5856
t.Run(tt.name, func(t *testing.T) {
59-
_, err := retry(tt.handler)(context.Background(), nil, "test", nil)
57+
_, err := retry(tt.handler)(context.Background(), "service", "test", nil)
6058
tt.want(t, err)
6159
})
6260
}

hyperf/jet/middleware/timeout/timeout.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func New(opts ...Option) jet.Middleware {
3535
opt(&o)
3636
}
3737
return func(next jet.Handler) jet.Handler {
38-
return func(ctx context.Context, client *jet.Client, name string, request any) (response any, err error) { // nolint:lll
38+
return func(ctx context.Context, service, method string, request any) (response any, err error) { // nolint:lll
3939
newCtx, cancel := context.WithTimeout(ctx, o.timeout)
4040
defer cancel()
4141

@@ -46,7 +46,7 @@ func New(opts ...Option) jet.Middleware {
4646
defer close(finished)
4747
mu.Lock()
4848
defer mu.Unlock()
49-
response, err = next(newCtx, client, name, request)
49+
response, err = next(newCtx, service, method, request)
5050
}()
5151

5252
select {

hyperf/jet/middleware/timeout/timeout_test.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import (
66
"time"
77

88
"github.com/stretchr/testify/assert"
9-
10-
"github.com/go-kratos-ecosystem/components/v2/hyperf/jet"
119
)
1210

1311
func TestTimeout(t *testing.T) {
@@ -41,11 +39,14 @@ func TestTimeout(t *testing.T) {
4139
t.Run(tt.name, func(t *testing.T) {
4240
handler := New(
4341
Timeout(tt.timeout),
44-
)(func(context.Context, *jet.Client, string, any) (any, error) {
42+
)(func(_ context.Context, service, method string, req any) (any, error) {
43+
assert.Equal(t, "service", service)
44+
assert.Equal(t, "test", method)
45+
assert.Equal(t, "request", req)
4546
time.Sleep(tt.sleep)
4647
return "test", nil
4748
})
48-
response, err := handler(context.Background(), nil, "test", "request")
49+
response, err := handler(context.Background(), "service", "test", "request")
4950
tt.want(t, response, err)
5051
})
5152
}

hyperf/jet/middleware_test.go

+7-6
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ import (
1010

1111
func createTestMiddleware(t *testing.T, result *[]string, no int) Middleware {
1212
return func(next Handler) Handler {
13-
return func(ctx context.Context, client *Client, name string, request any) (any, error) {
13+
return func(ctx context.Context, service, method string, request any) (any, error) {
1414
*result = append(*result, fmt.Sprintf("Before: %d", no))
1515
defer func() {
1616
*result = append(*result, fmt.Sprintf("After: %d", no))
1717
}()
1818

19-
assert.Equal(t, "name", name)
19+
assert.Equal(t, "method", method)
2020
assert.Equal(t, "request", request)
21-
return next(ctx, client, name, request)
21+
return next(ctx, service, method, request)
2222
}
2323
}
2424
}
@@ -28,18 +28,19 @@ func TestMiddleware_Chain(t *testing.T) {
2828
chain := Chain(
2929
createTestMiddleware(t, &result, 1),
3030
createTestMiddleware(t, &result, 2),
31-
)(func(_ context.Context, _ *Client, name string, request any) (any, error) {
31+
)(func(_ context.Context, service, method string, request any) (any, error) {
3232
result = append(result, "Before: 3")
3333
defer func() {
3434
result = append(result, "After: 3")
3535
}()
3636

37-
assert.Equal(t, "name", name)
37+
assert.Equal(t, "service", service)
38+
assert.Equal(t, "method", method)
3839
assert.Equal(t, "request", request)
3940

4041
return "response", nil
4142
})
42-
response, err := chain(context.Background(), nil, "name", "request")
43+
response, err := chain(context.Background(), "service", "method", "request")
4344
assert.NoError(t, err)
4445
assert.Equal(t, "response", response)
4546

0 commit comments

Comments
 (0)