Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Eğitim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • Spring Core
  • Spring Örnekleri
  • Hibernate
  • Java Server Pages
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • Java 8
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
Spring Boot

Spring Boot RestTemplate Nedir ve Kullanımı

Paylaş

Spring Boot Dersleri‘ne devam ediyorum.

İçindekiler

  • RestTemplate Nedir?
    • Özellikleri
  • Örnek

Bu yazıda RestTemplate’nin ne olduğuna ve hangi amaçlarda kullanacağımızı anlatacağım.

RestTemplate Nedir?


Spring projelerimizde HTTP isteklerini yapıp yönetebileceğimiz Spring Boot Web kütüphanesinin içerisinde yer alan bir yapıdır. Bu sayede bir client olarak bir servisten veri çekebiliriz.

Özellikleri


  • getForObject
  • getForEntity
  • postForEntity
  • postForObject

Örnek


Projemiz için elimizde Ricky and Morty dizisinin Rest API’si bulunmakta.

https://rickandmortyapi.com/api/character
Code language: JavaScript (javascript)

Yukarıkadaki API’dan dizideki karakterlerin verilerini çeken bir uygulama yapalım.

Maven bağımlılığımız aşağıdaki gibi olacaktır.

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.22</version> </dependency>
Code language: HTML, XML (xml)

Sadece Spring’in web kütüphanesi yeterli ve lombok kullanıyorum.

Spring Boot uygulamamızın her yerinde RestTemplate’imizi ve Http Header’i kullanabilmemiz için bir adet instance oluşturmalıyız. Bunu da uygulamamızın çalıştırdığımız application sınıfımızın içerisinde yapalım.

@Bean public RestTemplate restTemplate() { return new RestTemplate(); } @Bean public HttpHeaders httpHeaders() { return new HttpHeaders(); }
Code language: PHP (php)

Entitymizi hazırlayalım. Client Apimi’ze bakarsak Karakterler için bir INFO bilgisi ve devamında RESULT dizini bulunuyor. Bunlar için ayrı ayrı entitylerimizi hazırlayalım.

@Data public class Info { private Integer count; private Integer pages; private String next; private String prev; }
Code language: PHP (php)

Info sınıfımız tamam. Result enttiymizi yapalım.

@Data public class Result { private Integer id; private String name; private String status; private String species; private String type; private String gender; private String image; private String url; private Date created; }
Code language: PHP (php)

Entitymiz hazır. Ve son olarak Character sınıfımız oluşturuyoruz.

@Data public class Character { Info info; List<Result> results; }
Code language: PHP (php)

API’mizden bize gerekli olan değerler bunlar. Controller’imizi oluşturalım.

@RestController public class ApiController { @Autowired private ApiService apiService; @GetMapping("/") public ResponseEntity<Character> getCharacters() { Character characters = apiService.getAllCharacter(); return new ResponseEntity<>(characters, HttpStatus.OK); } }
Code language: PHP (php)

Kullanıcının istek oluşturduktan sonra karşılık gelen servisi oluşturalım. Bu servisimizde API’mize bağlanacağız ve gelen datayı parse edip, bir listeye alacağız.

@Service public class ApiService { @Autowired private RestTemplate restTemplate; @Autowired private HttpHeaders httpHeaders; private static final String CHAHRACTER_API = "https://rickandmortyapi.com/api/character"; public Character getAllCharacter() { httpHeaders.setAccept(Arrays.asList(MediaType.APPLICATION_JSON)); HttpEntity<String> entity = new HttpEntity<>(httpHeaders); ResponseEntity<Character> response = restTemplate.exchange(CHAHRACTER_API, HttpMethod.GET, entity, Character.class); return response.getBody(); } }
Code language: JavaScript (javascript)

Servisimiz yazdık. Burada dikkat etmemiz gereken satır

restTemplate.exchange(CHAHRACTER_API, HttpMethod.GET,entity,Character.class);
Code language: CSS (css)

Burada exchange metodunu kullanarak API adresimizi, header bilgimizi ve mapper etmemiz için gerekli olan tipimizi yani gelen verinin aslında Character sınıfında olacağınız belirtiyoruz.

Bu cevabının body’sinde bizim sınıfımıza göre maplenmiş veriler bulunmakta.

Postman’dan istek atalım ve sonucumuza bakalım.

Spring Boot RestTemplate Örneği

Sonraki Spring Boot Derslerslerinde görüşmek üzere.


Projenin Kaynak Kodlarına Ulaş


Önceki Ders: Spring Boot Projelerinde Jackson Kullanımı
Spring Boot Dersleri
Sonraki Ders:

Tags:

spring boot derslerispring boot resttemplateSpring Boot Uygulama Örneğispring boot uygulamaları

Paylaş

Diğer Yazılar

blank
Previous

JsonBackReference, ve JsonManagedReference Many to Many, Many to One İlişkisi (Infinite Recursion , StackOverflowError Hatası Çözümü)

RabbitMQ Dersleri
Next

RabbitMQ Java Publisher Uygulaması

Next
RabbitMQ Dersleri
23 Ocak 2022

RabbitMQ Java Publisher Uygulaması

Previews
11 Ocak 2022

JsonBackReference, ve JsonManagedReference Many to Many, Many to One İlişkisi (Infinite Recursion , StackOverflowError Hatası Çözümü)

blank

No Comment! Be the first one.

Bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

Spring Boot Dersleri

Spring Boot Projelerinde Tomcat Yerine Jetty Kullanmak

Spring Boot Dersleri

Spring Boot Transaction, Isolation, Propagation ve RollBack

Spring Boot Dersleri

Spring Boot Projelerinde Jackson Kullanımı

Spring Boot Dersleri

Spring Boot Bean Validation Uygulama Örneği

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Cloud
Amazon Web Services
Vue.js
Gradle
Node.js
Android
Struts
Redis
Röportaj
Spring Data
Spring Cloud Stream
XCode
Debezium
Mikroservis Mimarisi
Video
Spring Native
iPhone Uygulama Geliştirme
Objective C
JPA
Spring Security
PostgreSQL
Apache Kafka
Git
Servlet
Yaptığım Projeler
Maven
Design Patterns
DevOps
Linux
RabbitMQ
PrimeFaces
JDBC
Spring Jdbc Template
Spring
Spring MVC
Manset
Google
Spring Cloud
OCA Java SE 8
Spring Core
Quarkus
Microsoft
Veritabanı
Tanıyalım
Java SE
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github
  • Eğitim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • Spring Core
  • Spring Örnekleri
  • Hibernate
  • Java Server Pages
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • Java 8
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale