Más contenido relacionado
La actualidad más candente (20)
Similar a TDC2018SP | Trilha Go - Case Easylocus (20)
Más de tdc-globalcode (20)
TDC2018SP | Trilha Go - Case Easylocus
- 11. package middlewares
import (
"easytaxi/easylocus/entities"
"net/http"
)
type NotFoundMiddleware struct {
Next http.Handler
}
func (controller NotFoundMiddleware) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
path := request.URL.Path
routes := entities.Routes
for _, route := range routes {
if route.Path == path {
controller.Next.ServeHTTP(writer, request)
return
}
}
http.NotFound(writer, request)
}
MIDDLEWARES
- 12. package middlewares
import (
NewRelicService "easytaxi/easylocus/services/newrelic"
"github.com/newrelic/go-agent"
"net/http"
)
type NewRelicMiddleware struct {
Next http.Handler
}
func (controller NewRelicMiddleware) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
if NewRelicService.Agent != nil {
_, newRelicHandler := newrelic.WrapHandle(
NewRelicService.Agent,
request.URL.Path,
http.Handler(controller.Next),
)
newRelicHandler.ServeHTTP(writer, request)
return
}
controller.Next.ServeHTTP(writer, request)
}
MIDDLEWARES
- 13. func main() {
http.Handle(
entities.RootEndpoint,
middlewares.NotFoundMiddleware{
middlewares.NewRelicMiddleware{
controllers.IndexController{},
},
},
)
http.Handle(
entities.PlaceEndpoint,
middlewares.NotFoundMiddleware{
middlewares.NewRelicMiddleware{
middlewares.AuthenticationMiddleware{
controllers.PlaceController{},
},
},
},
)
log.Fatal(http.ListenAndServe(":"+conf.GetConfigs().Port, nil))
}
ROUTES