These are the fundamental steps of creating GraphQL API with Go and gqlgen library.
go mod initile projeyi oluştur.- gqlgen paketini kur
printf '// +build tools\npackage tools\nimport (_ "github.com/99designs/gqlgen"\n _ "github.com/99designs/gqlgen/graphql/introspection")' | gofmt > tools.go go run github.com/99designs/gqlgen initile gqlgen'i initialize etgqlgen.yml-- Config dosyası, generate edilen kodlar üzerinde ayarlama yapmak için kullanılır.graph/generated/generated.go-- GraphQL'in çalışmasını sağlayan kodlar. Otomatik generate edilir biz müdahale etmeyiz.graph/model/models_gen.go-- Oluşturduğumuz schemalara göre otomatik generate edilen Go structlarıgraph/schema.graphqls-- GraphQL schemalarımızı oluşturacağımız dosyagraph/schema.resolvers.go-- Uygulamamızın logic kodlarını yazacağımız dosya. generated.go bu dosya içerisinde yazdığımız methodları kullanır.server.go-- Uygulamamızın otomatik generate edilen entry point dosyası. Uygulama bu dosya üzerinden ayağa kaldırılır.
- Schemalarımızı oluşturduktan sonra
go run github.com/99designs/gqlgen generatekodu çalıştırılır.- Eğer burada
validation failed: packages.Loadhatası alırsakgraph/schema.resolvers.godosyasındakiCreateTodoveTodosfonksiyonlarını silip komutu tekrar çalıştırmalıyız. Bunlar starter template ile gelen fonksiyonlardır.
- Eğer burada
- Queryleri schema.resolvers.go dosyası içinde yaz.
- Mutationları da schema.resolvers.go dosyası içinde yaz.
Örnek Query :
query {
links{
title
address,
user{
name
}
}
}Örnek Mutation :
mutation {
createLink(input: {title: "new link", address:"http://address.org"}){
title,
user{
name
}
address
}
}name: String!-- buradaki ! işareti non nullable anlamına gelir.[Link!]!-- hem array boş olamaz, hem de tüm Link elemanları dolu olmalı.