Spring Boot
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