|
|
@@ -0,0 +1,57 @@
|
|
|
+package gateway
|
|
|
+
|
|
|
+import (
|
|
|
+ "fmt"
|
|
|
+ "git.sxidc.com/go-framework/baize/framework/core/api"
|
|
|
+)
|
|
|
+
|
|
|
+type Builder struct {
|
|
|
+ router api.Router
|
|
|
+
|
|
|
+ httpMethod string
|
|
|
+ relativePath string
|
|
|
+}
|
|
|
+
|
|
|
+func (builder *Builder) Url(httpMethod string, relativePath string) *Builder {
|
|
|
+ newBuilder := builder.copy()
|
|
|
+ newBuilder.httpMethod = httpMethod
|
|
|
+ newBuilder.relativePath = relativePath
|
|
|
+ return newBuilder
|
|
|
+}
|
|
|
+
|
|
|
+func (builder *Builder) Request() *Builder {
|
|
|
+ newBuilder := builder.copy()
|
|
|
+
|
|
|
+ return newBuilder
|
|
|
+}
|
|
|
+
|
|
|
+func (builder *Builder) Response() *Builder {
|
|
|
+ newBuilder := builder.copy()
|
|
|
+
|
|
|
+ return newBuilder
|
|
|
+}
|
|
|
+
|
|
|
+func (builder *Builder) PassThrough() *Builder {
|
|
|
+ newBuilder := builder.copy()
|
|
|
+
|
|
|
+ return newBuilder
|
|
|
+}
|
|
|
+
|
|
|
+func (builder *Builder) Build(middlewares ...api.Handler) {
|
|
|
+ newBuilder := builder.copy()
|
|
|
+ newBuilder.router.AddRoute(builder.httpMethod, builder.relativePath, append(middlewares,
|
|
|
+ func(c *api.Context) {
|
|
|
+ fmt.Println("Come Here!!!")
|
|
|
+ })...)
|
|
|
+}
|
|
|
+
|
|
|
+func (builder *Builder) copy() *Builder {
|
|
|
+ newBuilder := &Builder{
|
|
|
+ router: builder.router,
|
|
|
+
|
|
|
+ httpMethod: builder.httpMethod,
|
|
|
+ relativePath: builder.relativePath,
|
|
|
+ }
|
|
|
+
|
|
|
+ return newBuilder
|
|
|
+}
|