Spring Boot ile GraphQL API – 1

0 1,844

Önceki yazılarda GraphQL üzerinde durmuştuk. Şimdi ise Spring Boot ile bir uygulama yazacağız. Bir yazı dizisi olarak düşündüm ve en basit uygulamadan daha karmaşık yapılara doğru ilerleyeceğiz. Bunu için aşağıdaki yazıları okumadıysanız öncelikle onları okumanızda fayda var.

İlk adımımız tabii ki Hello-World uygulaması olacak ve bu uygulamayı adım adım geliştireceğiz.

Spring boot 2.2.4.RELEASE, Gradle, Java 8, DevTools ve Lombok kullanıyor olacağım.

Proje Oluşturma

Spring-Boot projesi oluşturun ve gradle.properties dosyasına aşağıdaki bağımlılıkları ekleyin.

Schema Oluşturma

src/main/resource altına schema.graphqls  dosyasını oluşturun ve aşağıdaki tanımı yapın.

Şimdi ise gelen bu query’i çözecek resolver yazmamız gerek.

Resolver Oluşturma

Gerekli bütün işlemlerimizi yapmış olduk. Bir Schema oluşturduk gerekli type tanımlarımızı yaptık ve Query’e karşılık gelecek Resolver’ımızı yazdık.

Test

localhost:8080/graphiql üzerinden test edebiliriz. Dependency olarak GraphiQL eklemiştik. İsterseniz Postman üzerinden de aynı işlemi gerçekleştirebilirsiniz. Fakat GraphiQL oluşturduğunuz Schema’ya göre dokümantasyon oluşturuyor ve kullanışlı bir tool olduğumuz için benim tercihim GraphiQL.

Yukarıdaki query’i çalıştırdığınızda aşağıdaki resimdeki gibi çıktı alacaksınız.

Buraya kadar bir problem yoksa çalışan ilk GraphQL uygulamamızı yazmış olduk. Şimdi ise senaryomuzu değiştirip, Query bir isim parametresi alsın ve o parametreye göre sonuç dönsün.

Schema’ya yeni bir Query tanımı yapmamız gerek ve dediğimiz gibi bir String parametre alacak ve yeni schema.graphqls şöyle olmalı.

Tekrar söylemek gerekirse Schema içerisindeki Query tanımı ile QueryResolver‘ımızındaki metodlar eşleşmeli. Şimdi bu notu dikkate alarak Resolver’ımızı yazalım.

GraphiQL üzerinden test edelim.

Uygulama kodlarına GitHub üzerinden ulaşabilirsiniz.

Faydalı olması dileğiyle.

Email adresiniz yayınlanmayacaktır.