Skip to content

Commit

Permalink
introduce MergePathStrategy
Browse files Browse the repository at this point in the history
  • Loading branch information
emicklei committed Feb 28, 2023
1 parent daf9981 commit 709cf80
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 6 deletions.
19 changes: 18 additions & 1 deletion route_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -353,8 +353,25 @@ func (b *RouteBuilder) Build() Route {
return route
}

type MergePathStrategyFunc func(path1, path2 string) string

var (
// behavior 3.10.*
PathJoinStrategy = path.Join

// behavior <= 3.9
TrimSlashStrategy = func(path1, path2 string) string {
return strings.TrimRight(path1, "/") + "/" + strings.TrimLeft(path2, "/")
}

// MergePathStrategy is the active strategy for merging a Route path when building the routing of all WebServices.
// The value is set to TrimSlashStrategy
// PathJoinStrategy is an alternative strategy that is more strict
MergePathStrategy = TrimSlashStrategy
)

func concatPath(path1, path2 string) string {
return path.Join(path1, path2)
return MergePathStrategy(path1, path2)
}

var anonymousFuncCount int32
Expand Down
10 changes: 5 additions & 5 deletions web_service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -338,11 +338,11 @@ func TestClientWithAndWithoutTrailingSlash(t *testing.T) {
wantCode int
}{
// behavior before #520
// {url: "http://here.com/test", wantCode: 404},
// {url: "http://here.com/test/", wantCode: 200},
// current behavior
{url: "http://here.com/test", wantCode: 200},
{url: "http://here.com/test/", wantCode: 404},
{url: "http://here.com/test", wantCode: 404},
{url: "http://here.com/test/", wantCode: 200},
// behavior #520
// {url: "http://here.com/test", wantCode: 200},
// {url: "http://here.com/test/", wantCode: 404},
} {
t.Run(tt.url, func(t *testing.T) {
httpRequest, _ := http.NewRequest("PUT", tt.url, nil)
Expand Down

0 comments on commit 709cf80

Please sign in to comment.