Spring Boot ile RestTemplate Kullanarak HTTP İstekleri Gönderme
Günümüzde farklı uygulamalar arasında veri paylaşımı yapmak için en çok tercih edilen mimari modellerden biri RESTful servislerdir. İstemci ve sunucu arasındaki iletişim, HTTP protokolü üzerinden JSON veya XML formatlarıyla sağlanır.
Bu yazıda, özellikle sık aranan konulardan olan Spring Rest Service, RestTemplate kullanımı ve Spring Boot POST API örneği gibi başlıklara odaklanarak pratik bir rehber sunacağız.
🔍 REST Servis Nedir?
REST (Representational State Transfer), web servisleri için kullanılan hafif ama güçlü bir mimari yaklaşımdır. RESTful servisler genellikle JSON formatında veri döner ve şu HTTP metodlarını kullanır:
- GET – Veri çekmek
- POST – Yeni veri oluşturmak
- PUT – Var olan veriyi güncellemek
- DELETE – Veriyi silmek
⚙️ Spring Boot RestTemplate Nedir?
RestTemplate, Spring Framework tarafından sağlanan bir HTTP istemci kütüphanesidir. RESTful API’lere HTTP istekleri göndermek ve yanıtları işlemek için kullanılır. Aşağıdaki HTTP metodlarını destekler:
- GET
- POST
- PUT
- DELETE
exchange()ile özelleştirilmiş istekler
🧪 RestTemplate ile HTTP İstekleri – Kod Örnekleri
Aşağıdaki örnekler, Spring Boot uygulamanızda RestTemplate kullanarak nasıl HTTP isteği gönderebileceğinizi adım adım göstermektedir.
1️⃣ GET Metodu — Veri Çekme
RestTemplate restTemplate = new RestTemplate();
String url = "https://api.example.com/data";
ResponseEntity<String> response =
restTemplate.getForEntity(url, String.class);
System.out.println(response.getBody());
2️⃣ POST Metodu — Veri Gönderme (Spring Boot POST API Örneği)
RestTemplate restTemplate = new RestTemplate();
String url = "https://api.example.com/resource";
String requestBody = "{\"name\": \"John\"}";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> requestEntity =
new HttpEntity<>(requestBody, headers);
ResponseEntity<String> response =
restTemplate.postForEntity(url, requestEntity, String.class);
System.out.println(response.getBody());
3️⃣ PUT Metodu — Veri Güncelleme
RestTemplate restTemplate = new RestTemplate();
String url = "https://api.example.com/resource/123";
String requestBody = "{\"name\": \"Jane\"}";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> requestEntity =
new HttpEntity<>(requestBody, headers);
restTemplate.put(url, requestEntity);
4️⃣ DELETE Metodu — Veri Silme
RestTemplate restTemplate = new RestTemplate();
String url = "https://api.example.com/resource/123";
restTemplate.delete(url);
5️⃣ exchange() Metodu — Daha Esnek Kullanım
RestTemplate restTemplate = new RestTemplate();
String url = "https://api.example.com/data";
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", "Bearer your-access-token");
HttpEntity<String> entity = new HttpEntity<>(headers);
ResponseEntity<String> response =
restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
System.out.println(response.getBody());
🏁 Sonuç
Bu yazıda Spring Boot ile RestTemplate kullanarak GET, POST, PUT, DELETE ve exchange metodlarıyla nasıl HTTP istekleri gönderebileceğinizi gördünüz.
RestTemplate, Spring Rest Service mimarisinde harici API’lerle iletişim kurmak için oldukça güçlü ve kullanımı kolay bir araçtır. Uygulamalarınızda bu örnekleri temel alarak kendi entegrasyonlarınızı rahatlıkla geliştirebilirsiniz.