func main() { swaggerSpec, err := spec.New(SwaggerJSON, "") if err != nil { log.Fatalln(err) } parser := flags.NewParser(&opts, flags.Default) parser.ShortDescription = swaggerSpec.Spec().Info.Title parser.LongDescription = swaggerSpec.Spec().Info.Description if _, err := parser.Parse(); err != nil { os.Exit(1) } api := operations.NewTodoListAPI(swaggerSpec) handler := configureAPI(api) httpServer := &graceful.Server{Server: new(http.Server)} httpServer.Handler = handler listener, err := net.Listen("tcp", fmt.Sprintf("%s:%d", opts.Host, opts.Port)) if err != nil { log.Fatalln(err) } fmt.Printf("serving todo list at http://%s\n", listener.Addr()) if err := httpServer.Serve(tcpKeepAliveListener{listener.(*net.TCPListener)}); err != nil { log.Fatalln(err) } }
func main() { swaggerSpec, err := loads.Analyzed(restapi.SwaggerJSON, "") if err != nil { log.Fatalln(err) } api := operations.NewTodoListAPI(swaggerSpec) server := restapi.NewServer(api) defer server.Shutdown() parser := flags.NewParser(server, flags.Default) parser.ShortDescription = `A To Do list application` parser.LongDescription = `The product of a tutorial on goswagger.io` server.ConfigureFlags() for _, optsGroup := range api.CommandLineOptionsGroups { _, err := parser.AddGroup(optsGroup.ShortDescription, optsGroup.LongDescription, optsGroup.Options) if err != nil { log.Fatalln(err) } } if _, err := parser.Parse(); err != nil { os.Exit(1) } server.ConfigureAPI() if err := server.Serve(); err != nil { log.Fatalln(err) } }
func main() { swaggerSpec, err := spec.New(SwaggerJSON, "") if err != nil { log.Fatalln(err) } parser := flags.NewParser(&opts, flags.Default) parser.ShortDescription = swaggerSpec.Spec().Info.Title parser.LongDescription = swaggerSpec.Spec().Info.Description api := operations.NewTodoListAPI(swaggerSpec) handler := configureAPI(api) for _, optsGroup := range api.CommandLineOptionsGroups { parser.AddGroup(optsGroup.ShortDescription, optsGroup.LongDescription, optsGroup.Options) } if _, err := parser.Parse(); err != nil { os.Exit(1) } httpServer := &graceful.Server{Server: new(http.Server)} httpServer.Handler = handler listener, err := net.Listen("tcp", fmt.Sprintf("%s:%d", opts.Host, opts.Port)) if err != nil { api.ServerShutdown() log.Fatalln(err) } fmt.Printf("serving todo list at http://%s\n", listener.Addr()) if err := httpServer.Serve(tcpKeepAliveListener{listener.(*net.TCPListener)}); err != nil { api.ServerShutdown() log.Fatalln(err) } go func() { <-httpServer.StopChan() api.ServerShutdown() }() }