Bu yazımda sizlere
Spring Rest API kullanımından bahsedeceğim. Bir sonra ki yazımda
da yazdığımız bu web servisleri başka bir uygulamadan nasıl
çağıracağımız hakkında (RestTemplate) bilgi vereceğim.
Restful web
servisler sunucu ile haberleşmek için daha çok JSON
kullanırlar.Client-Server arasında ki iletişim HTTP üzerinden
sağlanır.
Bu kısa bilgiden
sonra artık Spring REST kodlamaya başlayabiliriz. Ben data olarak
kendi veritabanımda ki kutuphane tablosunu kullanacağım. DAO ‘
dan çekeceğiniz verinin türünü sizlere bırakıyorum.
KitaplarRestController.java
package
com.mesutemre.restcontroller;
import
java.util.List;
import
org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.http.HttpStatus;
import
org.springframework.http.MediaType;
import
org.springframework.http.ResponseEntity;
import
org.springframework.web.bind.annotation.RequestBody;
import
org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestMethod;
import
org.springframework.web.bind.annotation.ResponseBody;
import
org.springframework.web.bind.annotation.RestController;
import
com.mesutemre.dao.KitaplarDAO;
import
com.mesutemre.model.Kitap;
import
com.mesutemre.model.KitapResult;
@RestController
@RequestMapping(value
= "/kitaplarRest")
public
class
KitaplarRestController {
@Autowired
private
KitaplarDAO service;
@RequestMapping(value
= "/kitaplar"
, method = RequestMethod.GET
, produces = "application/json")
public
ResponseEntity<List<Kitap>> getKitapListe(){
List<Kitap>
kitapListe = service.getKitapListe();
if(kitapListe
== null){
return
new
ResponseEntity<List<Kitap>>(HttpStatus.NO_CONTENT);
}
return
new
ResponseEntity<List<Kitap>>(kitapListe,HttpStatus.OK);
}
@RequestMapping(value
= "/findKitapById"
, method = RequestMethod.POST
, produces = MediaType.APPLICATION_JSON_VALUE)
public
@ResponseBody
ResponseEntity<Kitap> findKitapById(@RequestBody
Kitap k){
Kitap
kitap = service.findKitapById(k.getKitapId());
if(kitap
== null){
return
new
ResponseEntity<Kitap>(HttpStatus.NOT_FOUND);
}
return
new
ResponseEntity<Kitap>(kitap,HttpStatus.OK);
}
@RequestMapping(value
= "/createKitap"
, method = RequestMethod.POST
,
produces = MediaType.APPLICATION_JSON_VALUE)
public
@ResponseBody
ResponseEntity<KitapResult> createKitap(@RequestBody
Kitap k){
Kitap
kitap = service.createKitap(k);
if(kitap
== null){
return
new
ResponseEntity<KitapResult>(HttpStatus.FORBIDDEN);
}
KitapResult
kitapResult = new
KitapResult();
kitapResult.setKitapAd(kitap.getKitapAd());
kitapResult.setYazarAd(kitap.getYazarAd());
kitapResult.setKitapDurum(kitap.getKitapDurum());
kitapResult.setKitaptur(kitap.getKitaptur());
return
new
ResponseEntity<KitapResult>(kitapResult,HttpStatus.CREATED);
}
@RequestMapping(value
= "/deleteKitap"
, method = RequestMethod.POST
,
produces = "application/json")
public
@ResponseBody
ResponseEntity<Kitap> deleteKitap(@RequestBody
Kitap kitap){
Kitap
k = service.deleteKitap(kitap.getKitapId());
if(k
== null){
return
new
ResponseEntity<Kitap>(HttpStatus.NOT_FOUND);
}
return
new
ResponseEntity<Kitap>(k,HttpStatus.OK);
}
@RequestMapping(value
= "/updateKitap"
, method = RequestMethod.POST
,
produces = "application/json")
public
@ResponseBody
ResponseEntity<Kitap> updateKitap(@RequestBody
Kitap kitap){
Kitap
k = service.updateKitap(kitap);
if(k
== null){
return
new
ResponseEntity<Kitap>(HttpStatus.NOT_FOUND);
}
return
new
ResponseEntity<Kitap>(k,HttpStatus.OK);
}
}
Yazdığımız bu
metodlar POSTMAN ile aşağıda ki gibi çağrılarak sonuçlar
döner.
Hiç yorum yok:
Yorum Gönder