J'essaie d'utiliser gqlgen (https://github.com/99designs/gqlgen) avec gin.
J'utilise le code ci-dessous mais j'ai des doutes.
package server
import (
"myProject/graphql"
"github.com/99designs/gqlgen/handler"
"github.com/gin-gonic/gin"
)
func Start() {
r := gin.Default()
r.GET("/query", gin.WrapH(handler.Playground("GraphQL playground", "/api")))
r.GET("/api", gin.WrapH(handler.GraphQL(graphql.NewExecutableSchema(graphql.Config{Resolvers: &graphql.Resolver{}}))))
r.POST("/api", gin.WrapH(handler.GraphQL(graphql.NewExecutableSchema(graphql.Config{Resolvers: &graphql.Resolver{}}))))
r.Run()
}
Comme vous pouvez le voir, je dois répéter les lignes:
r.GET("/api", gin.WrapH(handler.GraphQL(graphql.NewExecutableSchema(graphql.Config{Resolvers: &graphql.Resolver{}}))))
r.POST("/api", gin.WrapH(handler.GraphQL(graphql.NewExecutableSchema(graphql.Config{Resolvers: &graphql.Resolver{}}))))
Est-ce correct?
Puis-je simplement avoir GET
et POST
tous les deux avec la même fonction de gestionnaire ?
(J'ai ouvert https://github.com/99designs/gqlgen/issues/418 pour ce problème).
Gin utilise httprouter
routeur CETTE CHAINE, c'est impossible.
d'ailleurs
Je ne peux même pas imaginer ce que tu vas faire avec GET
et POST
sur la même action
Pourquoi ne viens-tu pas
graphHandler := gin.WrapH(handler.GraphQL(graphql.NewExecutableSchema(graphql.Config{Resolvers: &graphql.Resolver{}})))
r.GET("/api", graphHandler)
r.POST("/api", graphHandler)
oui, cela répète toujours la ligne, mais facilite sa modification.
Je suis d'accord avec @olegsobchuk , dans une WebAPI normale, GET et POST feraient des choses différentes et auraient donc des gestionnaires différents - mais les gens font ce qu'ils font
router.GET("/a/b", h)
router.POST("/a/b", h)
c'est bon!
Commentaire le plus utile
Pourquoi ne viens-tu pas
oui, cela répète toujours la ligne, mais facilite sa modification.
Je suis d'accord avec @olegsobchuk , dans une WebAPI normale, GET et POST feraient des choses différentes et auraient donc des gestionnaires différents - mais les gens font ce qu'ils font