BasicGraphQL
BasicGraphQL, Hot Chocolate kütüphanesi ile GraphQL kullanımını gösteren bir ASP.NET Core 8 Web API projesidir. Voyager ve Postman kullanarak GraphQL uç noktalarının nasıl test edileceğini içeren örnekler sunar.
Bu proje, aşağıdaki katmanlı mimariyi takip eder:
- BasicGraphQL.Domain:
Book
modelini içerir. - BasicGraphQL.Infrastructure: Demonstrasyon amaçlı bellek içi sahte veri sağlar.
- BasicGraphQL.Application: GraphQL sorgularını ve mutasyonlarını uygular.
- BasicGraphQL.Api: İstemci isteklerini işleyen GraphQL uç noktasını sunar.
Proje aşağıdaki işlemleri sağlar:
- Tüm kitapları getirme (
getBooks
). - ID ile kitap getirme (
getBookById
). - Yeni kitap ekleme (
addBook
). - Voyager kullanarak GraphQL şemasını görselleştirme.
Kullanılan Teknolojiler
Bu proje aşağıdaki teknolojiler ile geliştirilmiştir:
- ASP.NET Core 8
- Hot Chocolate (GraphQL sunucusu için)
- GraphQL Voyager (şema görselleştirme için)
Uygulamayı Çalıştırma
Bu projeyi çalıştırmak için önce .NET 8 SDK yüklü olmalıdır. Daha sonra aşağıdaki adımları takip edin:
1. Uç Noktalara Erişim
- GraphQL Playground:
http://localhost:5042/graphql
- Voyager UI:
https://localhost:7027/graphql
Uygulamayı Test Etme
Voyager ile Test Etme
- Uygulamayı başlatın.
- Tarayıcınızda
http://localhost:5042/graphql-voyager
adresine gidin. - Şemayı keşfedin ve sorguları Voyager arayüzü üzerinden çalıştırın.
Postman veya curl ile Test Etme
GraphQL uç noktasını Postman veya curl
kullanarak test edebilirsiniz. Aşağıda bazı örnekler verilmiştir.
Tüm Kitapları Getirme
curl -X POST http://localhost:5042/graphql \
-H "Content-Type: application/json" \
-d '{"query": "query { getBooks { id title author genre year isTurkish } }"}'
Id'ye göre kitap çekme
curl -X POST http://localhost:5042/graphql \
-H "Content-Type: application/json" \
-d '{"query": "query { getBookById(id: 1) { id title author genre year isTurkish } }"}'
Yeni kitap ekleme
curl -X POST http://localhost:5042/graphql \
-H "Content-Type: application/json" \
-d '{"query": "mutation { addBook(title: \"Clean Code\", author: \"Robert C. Martin\", genre: \"Non-fiction\", year: 2008, isTurkish: false) { id title author } }"}'