Spring’de Zuul: API Gateway ve Yönlendirme

sametklou

Spring’de Zuul: API Gateway ve Yönlendirme

Spring, mikro hizmet mimarisi üzerinde çalışan birçok proje için API gateway olarak da kullanılan Zuul kütüphanesini sağlar. Bu makalede Zuul'un nasıl kullanılacağı ve API yönlendirme işlemlerinin nasıl yapıldığı detaylı bir şekilde ele alınacaktır.

Zuul Nedir?

Zuul, Netflix tarafından geliştirilen ve Spring Boot ile entegre edilebilen bir API gateway çözümüdür. Gelen istekleri alır, işler ve doğru mikro hizmete yönlendirir. Ayrıca istekler üzerinde filtreleme ve güvenlik işlemleri de gerçekleştirebilir.

Zuul Kullanımı

Zuul'u Spring Boot projesine entegre etmek oldukça basittir. İlk olarak pom.xml dosyasına Zuul bağımlılığını eklememiz gerekmektedir.

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>

Daha sonra bir @EnableZuulProxy annotation ile Zuul'un etkinleştirilmesi sağlanır.

@SpringBootApplication
@EnableZuulProxy
public class ApiGatewayApplication {
    // Uygulama kodları
}

API Yönlendirme

Zuul, application.properties dosyasında yapılandırılarak gelen istekleri belirli mikro hizmetlere yönlendirebilir.

zuul.routes.service1.url=http://service1-hostname
zuul.routes.service2.url=http://service2-hostname

Yukarıdaki örnekte, service1 ve service2 adındaki mikro hizmetler belirlenmiş hostlara yönlendirilir.

Filtreleme ve Güvenlik

Zuul, gelen istekleri işlemek için özelleştirilebilir filtreler sağlar. Bu filtreler sayesinde istekleri güvenlik denetimlerinden geçirebilir veya loglama işlemleri gerçekleştirebilirsiniz.

@Component
public class CustomFilter extends ZuulFilter {
    
    @Override
    public String filterType() {
        return "pre";
    }
    
    @Override
    public int filterOrder() {
        return 1;
    }
    
    @Override
    public boolean shouldFilter() {
        return true;
    }
    
    @Override
    public Object run() {
        // Filtre işlemleri
        return null;
    }
}

Yukarıdaki örnek, CustomFilter adında özel bir filtre oluşturur ve gelen istekleri önceden işler.

Sonuç

Bu makalede Spring ile Zuul kullanarak API gateway ve yönlendirme işlemlerinin nasıl yapıldığı detaylı bir şekilde ele alındı. Daha fazla bilgi edinmek için Spring Cloud Netflix Zuul GitHub Repository adresini ziyaret edebilirsiniz.