Nautilus Maceraları

Kişisel laboratuvar

Spring Boot ile Web API Projesi Oluşturmak

Merhaba.

Spring Boot ile bir Web Api nasıl oluşturulur onu inceliyor olacağız.

Spring Boot bir DI (Dependency Injection) aracıdır. Bu aracı güçlü yapan şeyler bu araçla proje geliştirmeye başladığımızda bizlere bir çok özellik/aracı gömülü olarak sunmakta ve geliştirici sadece koda odaklanmaktadır. Nedir bu araçlar ve kolaylıklar dersek, bir Web Api oluşturacağız diyelim. Bu Web Api'nin kullanacağı web server(tomcat,wildfly) içerisinde yüklenir ve konfigurasyon hazır olarak gelir(değiştirilebilir). Yine kullanılan ORM araçları dilerseniz yüklü gelir ve konfigürasyonu değiştirilebilir. Uygulama versiyonları için gerekli alanları otomatize eder, geliştirici araç ve kütüphane versiyonlarıyla uğraşmaz, bu işlemlerin hepsi zaman ve proje geliştirme hızına pozitif etkiler yaratır.

Spring Boot ile proje oluşturmak için Spring Initialzr kullanabiliriz. 

 

Burada ilgili proje tipini seçiyoruz. Varsayılan olarak maven projesi gelmekte. Dilimiz Java olarak seçildi. Spring Boot versiyonunu hangisini istiyorsak seçiyoruz. 

Proje metadata kısmındaki ilgili alanlarımızı dolduruyoruz. 

Ardından projemize dependency eklemek için sağ tarafta bulunan Add Dependencies butonuna tıklıyoruz. Açılan pencerede onlarca araç ve kütüphane var.

Rest Servisleri kullanacağımız için Spring Web'i seçiyoruz. Bu seçeneğin alt kısmında seçenekle alakalı bilgiler vermekte. Restful servis yapısı, Spring MVC patterni, gömülü olarak gelen Tomcat kütüphanesi.

Ardından Spring için gerekli araçları içeren DevTools yardımcı aracını ekliyoruz. Bu araç uygulama değişikliklerini anlık olarak web servera iletme ve güncelleme, restarting işlemlerini hızlandırma gibi bir çok süreci basitleştirmekte.

Bir veritabanı seçmek isterseniz ilgili alanda arama yaparak projenize ekleyebilirsiniz. Ben herhangi bir veritabanına bağlı bir web servis oluşturmak istemediğinden seçim yapmıyorum.

Ardından Generate deyip projemizi oluşturuyoruz ve bize bir zip dosyası şeklinde indirme veriyor. Bu zip dosyasını dilediğimiz workspace'e atıp açabiliriz. Projemizi diskte bir alana zipten çıkarttıktan sonra Eclipse ile File tabına tıklıyoruz. Import deyip arama kısmına Maven yazıyoruz. Buradaki seçeneklerden existing maven projects'i seçiyoruz.

Next deyip gelen ekranda Browse butonuna tıklayıp projemizi ilgili klasörden seçiyoruz. pom.xml dosyamız görüntülendi. Finish deyip tamamlıyoruz. Artık Spring Initialzr aracı ile bir proje oluşturduk ve bunu idemiz ile açtık.

Projemizin webApiService dizinine controller ve model adında iki tane package ekliyoruz. Model Package'ımıza User adlı bir sınıf ekliyoruz. Sınıfımız şu şekilde olacak.

Controller package'ına UserController isimli bir sınıf ekleyip aşağıdaki web servis operasyonlarımızı yazıyoruz.

package com.digicore.webApiService.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.digicore.webApiService.model.User;


@RestController
@RequestMapping("/v1/users")
public class UserController {

	@GetMapping("/getusername")

	public String getUserName() {
		return "Soner KÖYLÜ";
	}
	
	@PostMapping(path="/setUserName")

	public String getUserName(@RequestBody User user) {
		return "Hello "+user.getFullName();
	}
	
	@PostMapping(path="/getUserName/{userName}")

	public String getUserName(@PathVariable String userName) {
		return "Hello Dear "+userName;
	}

}

Sınıfımıza @RestController özniteliği ile bir restcontroller olduğunu söylüyoruz, ve bu sınıfımızı dışarıdan rest isteklerine cevap verecek duruma getiriyoruz. RequestMapping ile servisimize nasıl erişileceğini(path) söylüyoruz. Birkaç servis operasyonu ekleyerek servisimizi tamamlıyoruz. GetMapping Get isteklerine cevap vermekte, PostMapping post isteklerine cevap vermektedir. PostMappingte path ile servis operasyonumuzun pathini belirtebiliriz. Operasyonumuza parametre alırken @RequestBody dersek http isteklerimizin boydsinde bu veriyi göndereceğimizi PathVariable dersek Url ile göndereceğimizi belirtiyoruz.

Servisimizi çalıştıralım.

WebApiServiceApplication.java sınıfımızı açıp sınıfımız içinde sağtık Run As > Spring Boot seçip çalıştırıyoruz.

Servisimiz çalıştı ve bunu console kısmından görüntüleyebiliyoruz. Servisimizi tarayıcımızın url kısmından çağırıyoruz ve servisimiz başarılı bir şekilde çalışmakta.

Dilerseniz diğer servis operasyonlarını da çağırabiliriz.

Örneğin Postman aracı ile servis body'sine parametre geçelim ve sonucuna bakalım.

Artık Spring Boot ile çok hızlı bir şekilde bir web api projesi oluşturduk ve bu projeyi çalıştırdık. Arkasında hiçbir ayara dokunmadık. Bizim için her şeyi Spring halletti. Tomcat ile servisimizi çalıştırdı. Hatta pom.xml ile bağımlılıklarımızı yükledi. 

Pom.xml'i gösterelim. Burada version ile alakalı bir bilgi tutulmadığını ve böylece Dependeny mekanizmasının nasıl otomatize edildiğini görüyoruz.

Artık projemizi tamamladık. Gelecek teknik yazılarda görüşmek dileğiyle.

Loading