Skip to content

Commit dce10a8

Browse files
authored
chore: update handler to use embed.FS (#96)
1 parent 2c39a92 commit dce10a8

File tree

3 files changed

+11
-19
lines changed

3 files changed

+11
-19
lines changed

go.mod

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
module github.com/swaggo/http-swagger
1+
module github.com/swaggo/http-swagger/v2
22

33
go 1.17
44

55
require (
66
github.com/stretchr/testify v1.7.0
7-
github.com/swaggo/files v0.0.0-20220610200504-28940afbdbfe
7+
github.com/swaggo/files/v2 v2.0.0
88
github.com/swaggo/swag v1.8.1
99
)
1010

@@ -18,7 +18,6 @@ require (
1818
github.com/josharian/intern v1.0.0 // indirect
1919
github.com/mailru/easyjson v0.7.6 // indirect
2020
github.com/pmezard/go-difflib v1.0.0 // indirect
21-
golang.org/x/net v0.7.0 // indirect
2221
golang.org/x/sys v0.5.0 // indirect
2322
golang.org/x/tools v0.1.12 // indirect
2423
gopkg.in/yaml.v2 v2.4.0 // indirect

go.sum

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV
5555
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
5656
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
5757
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
58-
github.com/swaggo/files v0.0.0-20220610200504-28940afbdbfe h1:K8pHPVoTgxFJt1lXuIzzOX7zZhZFldJQK/CgKx9BFIc=
59-
github.com/swaggo/files v0.0.0-20220610200504-28940afbdbfe/go.mod h1:lKJPbtWzJ9JhsTN1k1gZgleJWY/cqq0psdoMmaThG3w=
58+
github.com/swaggo/files/v2 v2.0.0 h1:hmAt8Dkynw7Ssz46F6pn8ok6YmGZqHSVLZ+HQM7i0kw=
59+
github.com/swaggo/files/v2 v2.0.0/go.mod h1:24kk2Y9NYEJ5lHuCra6iVwkMjIekMCaFq/0JQj66kyM=
6060
github.com/swaggo/swag v1.8.1 h1:JuARzFX1Z1njbCGz+ZytBR15TFJwF2Q7fu8puJHhQYI=
6161
github.com/swaggo/swag v1.8.1/go.mod h1:ugemnJsPZm/kRwFUnzBlbHRd0JY9zE1M4F+uy2pAaPQ=
6262
github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
@@ -75,8 +75,6 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
7575
golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
7676
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
7777
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
78-
golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
79-
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
8078
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
8179
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
8280
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -93,12 +91,10 @@ golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
9391
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
9492
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
9593
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
96-
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
9794
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
9895
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
9996
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
10097
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
101-
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
10298
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
10399
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
104100
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=

swagger.go

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ package httpSwagger
22

33
import (
44
"html/template"
5+
"log"
56
"net/http"
67
"path/filepath"
78
"regexp"
8-
"sync"
99

10-
swaggerFiles "github.com/swaggo/files"
10+
swaggerFiles "github.com/swaggo/files/v2"
1111
"github.com/swaggo/swag"
1212
)
1313

@@ -149,7 +149,6 @@ func newConfig(configFns ...func(*Config)) *Config {
149149

150150
// Handler wraps `http.Handler` into `http.HandlerFunc`.
151151
func Handler(configFns ...func(*Config)) http.HandlerFunc {
152-
var once sync.Once
153152

154153
config := newConfig(configFns...)
155154

@@ -169,14 +168,10 @@ func Handler(configFns ...func(*Config)) http.HandlerFunc {
169168

170169
path := matches[2]
171170

172-
handler := swaggerFiles.Handler
173-
once.Do(func() {
174-
handler.Prefix = matches[1]
175-
})
176-
177171
switch filepath.Ext(path) {
178172
case ".html":
179173
w.Header().Set("Content-Type", "text/html; charset=utf-8")
174+
180175
case ".css":
181176
w.Header().Set("Content-Type", "text/css; charset=utf-8")
182177
case ".js":
@@ -191,6 +186,7 @@ func Handler(configFns ...func(*Config)) http.HandlerFunc {
191186
case "index.html":
192187
_ = index.Execute(w, config)
193188
case "doc.json":
189+
log.Printf("Reading doc")
194190
doc, err := swag.ReadDoc(config.InstanceName)
195191
if err != nil {
196192
http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
@@ -200,9 +196,10 @@ func Handler(configFns ...func(*Config)) http.HandlerFunc {
200196

201197
_, _ = w.Write([]byte(doc))
202198
case "":
203-
http.Redirect(w, r, handler.Prefix+"index.html", http.StatusMovedPermanently)
199+
http.Redirect(w, r, matches[1]+"/"+"index.html", http.StatusMovedPermanently)
204200
default:
205-
handler.ServeHTTP(w, r)
201+
r.RequestURI = matches[2]
202+
http.FileServer(http.FS(swaggerFiles.FS)).ServeHTTP(w, r)
206203
}
207204
}
208205
}

0 commit comments

Comments
 (0)