Spark Java, Apache Spark değil!

Spark denilince hemen akla Apache Spark geliyor. Ama bu yazıda big data ile pek işimiz yok, şuan için yok 🙂 . Yazının konusu Spark Java, bir micro web uygulaması çatısı.

Java 8 ile gelen lambda kullanımını benimsemiş framework. Minimal yapısı ile hızlı ve güçlü bir geliştirim sağlıyor bize. Ayrıca yeni bir dil olan Kotlin’i de destekliyor. Fakat ben java ile kullanıyorum.

Spark Java’yı, Spring gibi büyük ve bir sürü dalı olan bir framework yerine elbette kullanamayız. Ama daha küçük projeler yapmak istiyorsak ve hızlı bir şekilde ilerlemek istiyorsak Spark Java iyi bir seçim olacaktır. Oluşturmamız gereken, küçük ve hızlı olmasını istediğimiz bir projemiz var ise Spark Java’yı kullanabiliriz.

Sırasıyla sıfırdan, adım adım bir proje oluşturup Spark Java’ya bir giriş yapacağız.

Öncelikle maven bağımlılığı eklememiz gerekiyor. Bu yazıyı yazdığım tarihte Spark Java sürümü 2.7.1 dir.

<dependency>
    <groupId>com.sparkjava</groupId>
    <artifactId>spark-core</artifactId>
    <version>2.7.1</version>
</dependency>

Maven ile gerekli bağımlılığımızı da ekledikten sonra aşağıdaki gibi en basit şekilde bir GET isteğini karşılayacak bir endpoint oluşturalım.

import static spark.Spark.*;

public class MerhabaDunya {
    public static void main(String[] args) {
        get("/merhaba", (request, response) -> "Merhaba Dunya");
    }
}

Yukarıdaki MerhabaDunya sınıfını derleyip, çalıştırdığımız zaman Spark Java uygulamamız varsayılan olarak 4567 portunda istekleri dinlemeye başlayacaktır.

http://localhost:4567/merhaba

Yukarıda linkten localhost üzerinde çalışan uygulamamıza eriştiğimizde sayfada “Merhaba Dunya” yazısı bizi karşılamış olmalı.

Gördüğünüz gibi yukarıda static olarak “get()” metodunu kullandık aynı şekilde HTTP-REST ikilisi ile kullanılan diğer metodları da barındırıyor Spark Java.

get("/", (request, response) -> {
    // Goruntuleme Islemleri
});

post("/", (request, response) -> {
    // Olusturma Islemleri
});

put("/", (request, response) -> {
    // Guncelleme Islemleri
});

delete("/", (request, response) -> {
    // Kaldırma Islemleri
});

options("/", (request, response) -> {
    // Ayarlama Islemleri
});

Peki parametre kullanmak istersem ne yapmalıyım? Onun da çaresi Spark Java içerisinde bulunmakta 🙂 .

// "GET /merhaba/talip" ve "GET /merhaba/tayfur" yazarsak tarayicimizin adresine bu endpoint e duseriz
// request.params(":isim") ile 'talip' ya da 'tayfur' bilgisini aliriz
get("/merhaba/:isim", (request, response) -> {
    return "Merhaba: " + request.params(":isim");
});

Yukarıdaki örneklerde gördüğünüz gibi Java 8’in bize sağlamış olduğu lambda metodları ile çok hızlı bir şekilde endpointlerimizi oluşturduk.

Bu yazıda anlatılanların uygulandığı örnek proje Bu Github Reposunda bulunmaktadır.

Spark Java Web Adresi Bu adres üzerinden Spark Java’ya ulaşabilirsiniz.

Bir sonraki yazıda görüşmek dileğiyle, esen kalın.

No Comments

Post a Comment

Comment
Name
Email
Website