Spring Webflux ile Reactive REST API Oluşturmak

Selamlar, bu yazıda, Spring WebFlux kullanarak bir REST API nasıl oluşturulacağını adım adım öğreneceğiz.Buraya tıklayarak Spring Webflux’ı açıklayan ilk yazımı okuyabilirsiniz.

Spring Webflux

İlk adımda, Spring Boot projesini oluşturmak için bir IDE kullanabilir veya Spring Initializr sitesini ziyaret ederek projeyi oluşturabilirsiniz. Spring WebFlux’ı kullanmak için gerekli olan bağımlılıkları projenize eklemeniz gerekmekte.

Maven kullanıcıları için pom.xml dosyasına aşağıdaki bağımlılıkları ekleyebilirler:

<dependencies>
    <!-- Spring WebFlux -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-webflux</artifactId>
    </dependency>
    <!-- Diğer bağımlılıklar -->
</dependencies>

Gradle kullanıcıları ise build.gradle dosyasına aşağıdaki bağımlılıkları ekleyebilirler:

dependencies {
    // Spring WebFlux
    implementation 'org.springframework.boot:spring-boot-starter-webflux'
    // Diğer bağımlılıklar
}

Eğer uygulamanız spring-boot-starter-web bağımlılığını da barındırıyorsa bunu kaldırmanız gerekir.

Basit bir Controller oluşturalım

package com.codingbytime.webfluxrestservice.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import java.util.Arrays;

@RestController
@RequestMapping("/api/home")
public class HomepageController {

    @GetMapping
    public Mono<String> getMonoResponse() {
        return Mono.fromSupplier(() -> "Hello World!");
    }

    @GetMapping("/flux")
    public Flux<String> getFluxResponse() {
        return Flux.fromIterable(
            Arrays.asList("item 1", "item 2", "item 3")
        );
    }
}

Endpoint’leri test edelim:

Webflux API yanıtı

Webflux API Flux yanıtı

Not: Bu yazıda verilen kod örnekleri basit bir şekilde anlatım amacıyla verilmiştir. Gerçek dünya uygulamalarında, veri tabanı entegrasyonu, hata yönetimi ve diğer güvenlik ve performans önlemleri gibi konuların da ele alınması önemlidir.

İlgini çekebilir:  Spring Boot ile Caching

More Reading

Post navigation