Created
January 20, 2020 16:01
-
-
Save fwojciec/84a3020ad91ab083fd22d386af5dea15 to your computer and use it in GitHub Desktop.
gqlserver2: dataloaders6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"fmt" | |
"net/http" | |
"os" | |
"github.com/[username]/gqlgen-sqlc-example/dataloaders" // update the username | |
"github.com/[username]/gqlgen-sqlc-example/gqlgen" // update the username | |
"github.com/[username]/gqlgen-sqlc-example/pg" // update the username | |
) | |
func main() { | |
// initialize the db | |
db, err := pg.Open("dbname=gqlgen_sqlc_example_db sslmode=disable") | |
if err != nil { | |
panic(err) | |
} | |
defer db.Close() | |
// initialize the repository | |
repo := pg.NewRepository(db) | |
// initialize the dataloaders | |
dl := dataloaders.NewRetriever() // <- here we initialize the dataloader.Retriever | |
// configure the server | |
mux := http.NewServeMux() | |
mux.Handle("/", gqlgen.NewPlaygroundHandler("/query")) | |
dlMiddleware := dataloaders.Middleware(repo) // <- here we initialize the middleware | |
queryHandler := gqlgen.NewHandler(repo, dl) // <- use dataloader.Retriever here | |
mux.Handle("/query", dlMiddleware(queryHandler)) // <- use dataloader.Middleware here | |
// run the server | |
port := ":8080" | |
fmt.Fprintf(os.Stdout, "🚀 Server ready at http://localhost%s\n", port) | |
fmt.Fprintln(os.Stderr, http.ListenAndServe(port, mux)) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment