Spring Boot

Fatih Altuntaş
2 min readJun 27, 2019

Building RESTful Web Service

1- RestController

@RestController anotasyonu, RESTful web servislerini tanımlamak için kullanılır.JSON, XML ve custom response hizmeti sunar.

@RestController
public class ProductServiceController {
}

2- Request Mapping

@RequestMapping anotasyonu, Rest Endpointslere erişmek için Requst URL tanımlar.

@RequestMapping(value = "/products")
public ResponseEntity<Object> getProducts() {
}

3- Request Body

@RequestBody anotasyonu, request body’nin içerik türünü tanımlamak için kullanılır.

public ResponseEntity<Object> createProduct(@RequestBody Product product) {}

4- Path Variable

@ParthVariable anotasyonu, özel veya dinamik bir request URL tanımlamak için kullanılır.

public ResponseEntity<Object> updateProduct(@PathVariable("id") String id) {}

5- Request Parameter

@RequestParam anotasyonu, request URL deki request parametrelerini okumak için kullanılır.Default olarak gerekli parametredir.Ayrıca görüldüğü gibi request parametreleri için varsayılan değerleri de ayarlayabiliriz.

public ResponseEntity<Object> getProduct(@RequestParam(value="name", required = false, defaultValue = "honey") String name) {}

GET API

Varsayılan HTTP request yöntemi GET’tir.Bu yöntem herhangi bir Request Body gerektirmez. Özel veya dinamik URL’yi tanımlamak için request parametreleri ve path değişkenleri gönderebilirsiniz.

HTTP GET request yöntemini tanımlamak için örnek kod aşağıda gösterilmiştir. Bu örnekte, ürünü saklamak için HashMap’i kullandık. Saklanacak ürün olarak bir POJO classı kullandığımızı unutmayın.

Burada, request URI’sı /product ve HashMap deposundaki ürünlerin listesini döndürür.

POST API

HTTP POST request kaynak oluşturmak için kullanılır.Bu yöntem Request Body içerir. Özel veya dinamik URL’yi tanımlamak için request parametreleri ve path değişkenleri gönderebiliriz.

Aşağıdaki örnek, HTTP POST request yöntemini tanımlamaktadır. Bu örnekte, ürünün POJO classı olduğu ürünü depolamak için HashMap’i kullandık.

Burada, request URI’sı /product ve ürünü HashMap deposuna kaydettikten sonra String’i döndürür.

PUT API

HTTP PUT request, mevcut kaynağı güncellemek için kullanılır.Bu yöntem Request Body içerir.Özel veya dinamik URL’yi tanımlamak için request parametreleri ve path değişkenleri gönderebiliriz.

Aşağıda verilen örnek, HTTP PUT request yönteminin nasıl tanımlandığını gösterir. Bu örnekte, POJO classındaki mevcut ürünü güncellemek için HashMap kullandık.

Burada URI request, bir üründen sonra String’i bir HashMap deposuna döndürecek olan /products /{id} ‘dir. Güncellenmesi gereken ürün kimliğini tanımlayan {id} Path değişkenini kullandığımızı unutmayın.

DELETE API

HTTP DELETE Request, mevcut kaynağı silmek için kullanılır. Bu metod request body içermez.Özel veya dinamik URL’yi tanımlamak için request parametreleri ve path değişkenleri gönderebiliriz.

Bu örnekte, POJO sınıfı olan mevcut ürünü kaldırmak için HashMap’i kullandık. requestURI’si /products /{id} ‘dir ve ürünü HashMap deposundan sildikten sonra Stringi döndürür.Silinmesi gereken ürün kimliğini tanımlayan {id} Path değişkenini kullandığımızı unutmayın.

Kaynak Kodların Tamamı

Spring Boot main application class — DemoApplication.java

POJO class — Product.java

Rest Controller class — ProductServiceController.java

--

--