Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
SpringSpring Boot

Spring Boot GraphQL API Uygulama Örneği #1

Paylaş

Spring’in GraphQL yayınlandı. Bu yazıda Spring GraphQL kullanacağız. 3 yazıdan olucak bu seriye giriş yapacağız ve diğer yazılarda ise veritabanı ve resolver işlemlerinden bahsedeceğiz.

İçindekiler

Toggle
  • GraphQL Nedir?
  • Spring Boot GraphQL Uygulama Örneği
  • GraphQL Schema
    • Mutation
    • Query
    • Resolver

GraphQL Nedir?

GraphQL kısaca Facebook tarafından geliştirilen bir Rest alternatifidir. Bu alternatifin en güçlü ve fark yaratan özellikleri ise bir istekte birden fazla metotu çağırabilmek ve isteğinizin geri dönüş değerini isteğinize göre değiştirip onu almamızı sağlamaktadır.

Spring Boot GraphQL Uygulama Örneği

Uygulamamızı yapalım. Bu uygulamada bir öğrenci uygulaması olacak ve detay bilgileri bulunacak. Bağımlılıklarımızı yükleyelim.

GraphQL Schema

Veri yapısını tanımladığız dosyaya verdiğimiz isimdir. src/main/resources/graphql

Mutation

GraphQL’e herhangi bir veri göndermek için kullandığımız yöntemdir. CRUD işlemleri yapabilmekteyiz.

Query

Sorgularımızı hazırladığımız tiplerdir.

Resolver

Query, Mutation için bir resolverlar sayesinde rilerin hangi kaynaktan nasıl alınacağı veya kaydedileceğini çözebilsin.

Shcema dosyamızı oluşturacağız. Bu dosya src/main/resources/graphql yolu içerisinde

type Student{
    id: String
    name: String
}

type Mutation{
    addStudent(name:String): Student
}

type Query{
    getStudentById(id: String) : Student
    getStudents : [Student]
}

Code language: JavaScript (javascript)

Oluşturduğumuz şema dosyamız içerisinde graphql için gerekli olan Mutation ve Query lerimiz ise bizim için gerekli olan sorgularımız ve sorgularımıza karşılık gelen controllerimiz ve modellerimizi oluşturacağız

Modelimizi oluşturalım.

@Data
@AllArgsConstructor
public class Student {

    private String id;
    private String name;

}
Code language: PHP (php)

Controllerimiz ise aşağıdaki gibi olacaktır.

@RestController
public class StudentController {

    private Map<String, Student> map = new HashMap<>();
    private AtomicInteger id = new AtomicInteger();

    @QueryMapping
    public Student getStudentById(@Argument String id) {
        return map.get(id);
    }

    @MutationMapping
    public Student addStudent(@Argument String name) {
        final int id = this.id.incrementAndGet();
        Student student = new Student(String.valueOf(id), name);
        map.put(String.valueOf(id), student);
        return student;
    }

    @QueryMapping
    public List<Student> getStudents(){
        return new ArrayList<>(map.values());
    }

}
Code language: PHP (php)

Controllerimizi yazdıktan sonra projemizi çalıştıralım. GraphQL erişebilmek için application.yml dosyamıza ekleyelim.

spring.graphql.graphiql.enabled=trueCode language: JavaScript (javascript)

Öğrenci ekleyelim.

Spring GraphQL Mutation
Spring GraphQL Mutation

Öğrenci arama işlemi yapalım.

Spring Boot GraphQL Query İşlemi
Spring Boot GraphQL Query İşlemi

Sonraki yazıda ise veritabanı işlemleri ve resolver işlemlerini inceleyeğiz.

Tags:

spring bootspring graphql api

Paylaş

Diğer Yazılar

JIB Plugin Dockerize Kullanımı
Previous

Jib ile Java Projelerini Verimli ve Hızlı Dockerize Etmek

blank
Next

Design Patterns – Template Metot Pattern Nedir?

Next
blank
30 Temmuz 2022

Design Patterns – Template Metot Pattern Nedir?

Previews
02 Temmuz 2022

Jib ile Java Projelerini Verimli ve Hızlı Dockerize Etmek

JIB Plugin Dockerize Kullanımı

No Comment! Be the first one.

Bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

Spring Boot Problem Detail Exception Handling Custon Exception

Spring Boot 3.0 ile Gelen Problem Details Kullanımı ve Uygulama Örneği

Spring Boot Dersleri

Spring Boot Projelerinde Tomcat Yerine Jetty Kullanmak

Spring Boot Dersleri

Spring Boot Bean Validation Uygulama Örneği

Spring Boot Hatası Çözümü

Spring boot error:Inferred type ‘S’ for type parameter ‘S’ is not within its bound; should extend Hatası Çözümü

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Cloud
Node.js
Java 24
Android
Struts
Röportaj
Gradle
Amazon Web Services
Vue.js
Video
Redis
Spring Boot 3.0
Debezium
Mikroservis Mimarisi
Spring Native
Spring Cloud Stream
Etkinlikler
XCode
JPA
Objective C
iPhone Uygulama Geliştirme
PostgreSQL
Spring Security
MongoDB
Java 21
Spring Data
Apache Kafka
Yaptığım Projeler
Servlet
Git
Maven
Design Patterns
DevOps
Linux
Spring Jdbc Template
RabbitMQ
JDBC
PrimeFaces
Manset
Google
Spring
Spring MVC
Spring Cloud
OCA Java SE 8
Quarkus
Spring Core
Microsoft
Veritabanı
Java SE
Tanıyalım
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github
  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale