19 Ocak 2017 Perşembe

Spring Rest API Kullanımı



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