@@ -27,42 +27,59 @@ func getSwaggerUIFiles() http.FileSystem {
27
27
return http .FS (fsys )
28
28
}
29
29
30
+ const (
31
+ banner = `
32
+
33
+ ╔══╗─────────────╔╗╔╗
34
+ ║══╬╦╦╦═╗╔═╦═╦═╦╦╣╚╝╠═╦╗╔═╦═╦╦╗
35
+ ╠══║║║║╬╚╣╬║╬║╩╣╔╣╔╗║╩╣╚╣╬║╩╣╔╝
36
+ ╚══╩══╩══╬╗╠╗╠═╩╝╚╝╚╩═╩═╣╔╩═╩╝
37
+ ─────────╚═╩═╝──────────╚╝
38
+ `
39
+ )
40
+
30
41
func main () {
31
42
parser := argparse .NewParser ("SwaggerHelper" , "" )
32
43
var listenAddress * string = parser .String ("L" , "listen" , & argparse.Options {Required : false , Default : "127.0.0.1:1323" , Help : "bind address." })
33
44
var swaggerPath * string = parser .String ("F" , "apifile" , & argparse.Options {Required : true , Help : "swagger-ui api-docs file path." })
34
45
var serverRoot * string = parser .String ("S" , "serverroot" , & argparse.Options {Required : false , Default : "" , Help : "server override." })
35
46
err := parser .Parse (os .Args )
36
47
exit_on_error ("[PARSER ERROR]" , err )
37
-
48
+ useServerOverride := * serverRoot != ""
38
49
e := echo .New ()
50
+ e .HideBanner = true
39
51
e .GET ("/swagger.json" , func (c echo.Context ) error {
40
52
data := getContent (* swaggerPath )
41
- result , _ := jsonparser .Set (data , []byte ("\" \" " ), "host" )
42
- final , _ := jsonparser .Set (result , []byte ("\" /backend-api\" " ), "basePath" )
43
- return c .JSONBlob (http .StatusOK , final )
53
+ if useServerOverride {
54
+ result , _ := jsonparser .Set (data , []byte ("\" \" " ), "host" )
55
+ final , _ := jsonparser .Set (result , []byte ("\" /backend-api\" " ), "basePath" )
56
+ return c .JSONBlob (http .StatusOK , final )
57
+ }
58
+ return c .JSONBlob (http .StatusOK , data )
44
59
})
45
-
46
- backend , err := url .Parse (* serverRoot )
47
- if err != nil {
48
- e .Logger .Fatal (err )
49
- }
50
- targets := []* middleware.ProxyTarget {
51
- {
52
- URL : backend ,
60
+ if useServerOverride {
61
+ backend , err := url .Parse (* serverRoot )
62
+ if err != nil {
63
+ e .Logger .Fatal (err )
64
+ }
65
+ targets := []* middleware.ProxyTarget {
66
+ {
67
+ URL : backend ,
68
+ },
69
+ }
70
+ proxyBackend := e .Group ("/backend-api" )
71
+ proxyBackend .Use (middleware .ProxyWithConfig (middleware.ProxyConfig {
72
+ Balancer : middleware .NewRoundRobinBalancer (targets ),
73
+ Rewrite : map [string ]string {
74
+ "^/backend-api/*" : "/$1" ,
75
+ },
53
76
},
77
+ ))
54
78
}
55
- proxyBackend := e .Group ("/backend-api" )
56
- proxyBackend .Use (middleware .ProxyWithConfig (middleware.ProxyConfig {
57
- Balancer : middleware .NewRoundRobinBalancer (targets ),
58
- Rewrite : map [string ]string {
59
- "^/backend-api/*" : "/$1" ,
60
- },
61
- },
62
- ))
63
79
64
80
assetHandler := http .FileServer (getSwaggerUIFiles ())
65
81
e .GET ("/*" , echo .WrapHandler (assetHandler ))
82
+ println (banner )
66
83
e .Logger .Fatal (e .Start (* listenAddress ))
67
84
}
68
85
0 commit comments