func main() { // Create service service := goa.New("API") logger := log15.New() goa.Log = goalog15.New(logger) // Setup middleware service.Use(middleware.RequestID()) service.Use(middleware.LogRequest(true)) service.Use(middleware.Recover()) cspec, err := cors.New(func() { cors.Origin("*", func() { cors.Resource("/*", func() { cors.Headers("Accept", "Content-Type", "Origin", "Authorization") cors.Methods("GET", "POST", "PUT", "DELETE", "OPTIONS") cors.MaxAge(600) cors.Credentials(true) cors.Vary("Http-Origin") }) }) }) if err != nil { panic(err) } // mount the cors controller service.Use(cors.Middleware(cspec)) cors.MountPreflightController(service, cspec) // Mount "authentication" controller c := NewAuthenticationController(service) app.MountAuthenticationController(service, c) // Mount "operands" controller c2 := NewOperandsController(service) app.MountOperandsController(service, c2) // Mount "ui" controller ui.MountController(service) // Mount Swagger spec provider controller swagger.MountController(service) // Start service, listen on port 8080 service.ListenAndServe(":8080") fmt.Println("a ...interface{}") }
Ω(err).ShouldNot(HaveOccurred()) rw := new(testResponseWriter) ctx = goa.NewContext(nil, service, req, rw, params) ctx.SetPayload(payload) handler = new(testHandler) logger := log15.New("test", "test") logger.SetHandler(handler) ctx.Logger = logger }) It("logs requests", func() { h := func(ctx *goa.Context) error { ctx.Respond(200, "ok") return nil } lg := middleware.LogRequest()(h) Ω(lg(ctx)).ShouldNot(HaveOccurred()) Ω(handler.Records).Should(HaveLen(4)) Ω(handler.Records[0].Ctx).Should(HaveLen(6)) Ω(handler.Records[0].Ctx[4]).Should(Equal("POST")) Ω(handler.Records[0].Ctx[5]).Should(Equal("/goo")) Ω(handler.Records[1].Ctx).Should(HaveLen(6)) Ω(handler.Records[1].Ctx[4]).Should(Equal("param")) Ω(handler.Records[1].Ctx[5]).Should(Equal([]string{"value"})) Ω(handler.Records[2].Ctx).Should(HaveLen(6)) Ω(handler.Records[2].Ctx[4]).Should(Equal("payload")) Ω(handler.Records[2].Ctx[5]).Should(Equal(42))