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

Type and hit Enter to search

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

Spring Boot ile GraphQL Kullanmak Örnek Uygulama

Paylaş

Spring Boot kullanarak GraphQL’deki veri işlemlerinin nasıl olacağını örnek bir proje ile yapacağız. Bu projemizde H2 veritabanımızdan GraphQl ile bir veri yapısı oluşturup bu yapıyı kullanacağız. Veritabanı arasında bir köprü görevi gören GraphQl uygulaması yapalım.

Bir Spring Boot projesi oluşturalım. Spring Boot projemizin maven bağımlılıkları aşağıdaki gibidir.

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.graphql-java</groupId>
            <artifactId>graphql-java-tools</artifactId>
            <version>5.2.4</version>
        </dependency>
        <dependency>
            <groupId>com.graphql-java</groupId>
            <artifactId>graphql-spring-boot-starter</artifactId>
            <version>5.0.2</version>
        </dependency>
    </dependencies>Code language: HTML, XML (xml)

Ogrenci entitymizi oluşturalım.

@Entity
@Table
@Getter
@Setter
public class Ogrenci implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String adi;
    private String soyadi;
    private int numara;
    private String sinifi;
}Code language: PHP (php)

Dto’muzu oluşturalım. Veritabanı ile client tarafına taşıyacağımız DTO muzu oluşturalım.

@Data
public class OgrenciDto {
    private String numarasi;
    private String adi;
}Code language: PHP (php)

Ogrenci repostitorymizi oluşturalım ve Spring Data implementasyonu yapalım.

public interface OgrenciRepository extends JpaRepository<Ogrenci,Long> {
    List<Ogrenci> getByNumara(String numarasi);
}Code language: PHP (php)

Şimdide GraphQL modelimizi oluşturacağımız GraphQLQueryResolver implementasyonu yapıp gerekli metotlarımızı oluşturacağız. Bu metotlarımız controller görevi görmektedir.

@Component
@RequiredArgsConstructor
public class OgrenciQueryResolver implements GraphQLQueryResolver {

    private final OgrenciRepository _ogrenciRepository;

    public List<Ogrenci> getOgrenci(String numarasi) {
        return _ogrenciRepository.getByNumara(numarasi);
    }
}Code language: PHP (php)

resources klasörü altında ogrenci.graphqls dosyamızı oluşturuyoruz.

type Ogrenci {
    id: ID!,
    adi: String!,
    soyadi: String,
    numara: String,
    sinifi: String
}

input OgrenciDto {
    numarasi: String!,
    adi: String
    }

type Query {
    getOgrenci(numarasi: String):[Ogrenci]
    getByNumarasi(id: ID):Ogrenci
}

type Mutation {
    createOgrenci(ogrenci: OgrenciDto):Ogrenci
}Code language: JavaScript (javascript)

Sonrasında ise GraphQL’den OgrenciQueryResolver‘i implement edeceğimiz OgrenciMutationResolver oluşturuyoruz.

@Component
@RequiredArgsConstructor
public class OgrenciMutationResolver implements GraphQLMutationResolver {

    private final OgrenciRepository _ogrenciRepository;

    public Ogrenci createVehicle(OgrenciDto ogrenciDto) {
        return _ogrenciRepository.save(dtoToEntity(ogrenciDto));
    }

    private Ogrenci dtoToEntity(OgrenciDto ogrenciDto) {
        Ogrenci ogrenci = new Ogrenci();
        ogrenci.setAdi(ogrenciDto.getAdi());
        ogrenci.setSoyadi(ogrenciDto.getNumarasi());
        return ogrenci;
    }
}Code language: PHP (php)

Programımızı çalıştıralım ve localhost:8080/_graphql adresinde veri erişimi olduğunu görebiliriz.

Tags:

spring boot derslerispring derslerispring graphql

Paylaş

Diğer Yazılar

Previous

Spring Data Nedir?

Spring Boot Logging Uygulama Örneği
Next

Spring Boot Dersleri Spring Logging Uygulama Örneği

Next
Spring Boot Logging Uygulama Örneği
07 Kasım 2020

Spring Boot Dersleri Spring Logging Uygulama Örneği

Previews
26 Ekim 2020

Spring Data Nedir?

blank

No Comment! Be the first one.

Bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

Spring Boot Dersleri Content Negotiation Uygulama Örneği

Spring Boot Content Negotiation XML – JSON Uygulama Örneği

Spring Boot Interceptor Nedir Kullanım Uygulama Örneği

Spring Boot Interceptor Nedir? Uygulama Örneği

Spring Data Redis Cache Kullanım Örneği

Spring Boot Data Redis Nedir? Distributed Cache Kullanımı

Spring Boot Dersleri

Spring Boot Projelerinde Tomcat Yerine Jetty Kullanmak

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

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

Link

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

Kategori

Cloud
Amazon Web Services
Vue.js
Gradle
Node.js
Android
Struts
Röportaj
Spring Cloud Stream
Redis
Debezium
XCode
Video
Spring Native
Mikroservis Mimarisi
iPhone Uygulama Geliştirme
MongoDB
PostgreSQL
Spring Security
JPA
Objective C
Spring Data
Apache Kafka
Git
Servlet
Yaptığım Projeler
Maven
Design Patterns
DevOps
Linux
JDBC
RabbitMQ
PrimeFaces
Spring Jdbc Template
Spring
Google
Manset
Spring MVC
Spring Cloud
OCA Java SE 8
Spring Core
Quarkus
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
  • Eğitim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • Java Server Pages
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • Java 8
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale