_examples/todo/server/server.go (25 lines of code) (raw):

package main import ( "context" "errors" "log" "net/http" "runtime/debug" "github.com/99designs/gqlgen/_examples/todo" "github.com/99designs/gqlgen/graphql/handler" "github.com/99designs/gqlgen/graphql/handler/transport" "github.com/99designs/gqlgen/graphql/playground" ) func main() { srv := handler.New(todo.NewExecutableSchema(todo.New())) srv.AddTransport(transport.GET{}) srv.AddTransport(transport.POST{}) srv.SetRecoverFunc(func(ctx context.Context, err any) (userMessage error) { // send this panic somewhere log.Print(err) debug.PrintStack() return errors.New("user message on panic") }) http.Handle("/", playground.Handler("Todo", "/query")) http.Handle("/query", srv) log.Fatal(http.ListenAndServe(":8081", nil)) }