Spring Boot CRUD: DELETE İşlemi Nasıl Yapılır? (REST API)

İngilizce'ye Geç
Kısa Özet: Spring Boot'ta Veri Nasıl Silinir?

Spring Boot uygulamasında veritabanından bir kayıt silmek (DELETE) için Spring Data JPA'nın yerleşik deleteById(id) metodu kullanılır. REST API tasarlarken, Controller katmanında @DeleteMapping("/{id}") anotasyonu ile silinecek verinin ID'si yakalanır ve Service katmanı aracılığıyla veritabanından kalıcı olarak silinir. İşlem başarılıysa istemciye 204 No Content veya 200 OK HTTP durum kodu dönülür.

Spring Boot CRUD Delete işlemi mimarisi ve REST API diyagramı

Bu yazıda, modern bir Spring Boot REST API mimarisinde DELETE operasyonunu adım adım inceleyeceğiz. Entity modelinden başlayıp Repository, Service ve Controller katmanlarını nasıl tasarlayacağınızı ve Postman ile nasıl test edeceğinizi öğreneceksiniz.


1. CRUD Delete Operasyonu Nedir?

CRUD, veritabanı yönetimindeki dört temel işlemi temsil eder: Create (Ekleme), Read (Okuma), Update (Güncelleme) ve Delete (Silme).

DELETE operasyonu, ilişkisel veritabanlarında (PostgreSQL, MySQL vb.) DELETE FROM table WHERE id=? SQL sorgusunun karşılığıdır. Spring Boot'ta bu işlemi manuel SQL yazmadan JPA sayesinde tek satır kodla yapabiliriz.

Serinin önceki yazılarını incelemek isterseniz:

2. Entity Sınıfının Oluşturulması

İlk olarak veritabanındaki "users" tablosunu temsil eden User entity sınıfını oluşturuyoruz. Kodu temiz tutmak için Lombok kütüphanesini kullanıyoruz.

Spring Boot User entity sınıfı Lombok anotasyonları ile kullanımı
@Entity
@Table(name = "users")
@Getter
@Setter
@NoArgsConstructor
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private String username;

    @Column(nullable = false)
    private String password;

    @Column(unique = true, nullable = false)
    private String email;
}

3. Repository Katmanının Oluşturulması

Veritabanı işlemleri için bir UserRepository interface'i oluşturuyoruz. JpaRepository sınıfını miras aldığımız için silme metotlarını bizim yazmamıza gerek kalmıyor.

Spring Boot UserRepository JPA kod örneği
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    // deleteById(Long id) metodu JpaRepository içinde zaten mevcuttur!
    // Ekstra bir metot tanımlamamıza gerek yoktur.
}

4. Service Katmanında Delete Metodu

İş kurallarının (Business Logic) yazıldığı Servis katmanında kullanıcıyı ID üzerinden silen metodumuzu oluşturuyoruz.

Spring Boot delete service metodu ve Transactional kullanımı
@Service
@RequiredArgsConstructor
public class UserService {

    private final UserRepository userRepository;

    @Transactional
    public void deleteUser(Long id) {
        // Silinmek istenen veri veritabanında var mı kontrolü
        if (!userRepository.existsById(id)) {
            throw new RuntimeException("Kullanıcı bulunamadı: " + id);
        }
        
        userRepository.deleteById(id);
    }
}

5. Controller Katmanında DELETE Endpoint

Dış dünyadan (Frontend veya Mobil uygulamadan) gelen HTTP DELETE isteklerini yakalamak için REST Controller sınıfımızı yazıyoruz.

Spring Boot DeleteMapping controller endpoint örneği
@RestController
@RequestMapping("/api/users")
@RequiredArgsConstructor
public class UserController {

    private final UserService userService;

    @DeleteMapping("/{id}")
    public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
        userService.deleteUser(id);
        
        // İşlem başarılı olduğunda 204 No Content dönmek REST standartıdır
        return ResponseEntity.noContent().build();
    }
}

6. Postman ile Delete İşlemini Test Etme

Yazdığımız API'nin çalışıp çalışmadığını Postman üzerinden test edebiliriz.

Postman HTTP DELETE request örneği

İstek Tipi: DELETE

URL: http://localhost:8080/api/users/2

Bu istek, veritabanındaki id = 2 olan kullanıcıyı siler. İşlem başarılıysa sunucu REST standartlarına uygun olarak 204 No Content veya 200 OK yanıtı döndürür.

7. Sonuç

Bu rehberde Spring Boot ve Spring Data JPA kullanarak bir DELETE işleminin nasıl yapılacağını katmanlı mimariye (Entity, Repository, Service, Controller) uygun olarak öğrendik.

Bir sonraki adım olan veri güncelleme işlemlerini öğrenmek için Spring Boot Update İşlemi içeriğimizi inceleyebilirsiniz. İyi çalışmalar!

Etiketler: spring boot crud delete, spring boot kullanıcı silme, jpa delete example, spring boot rest api

Son Güncelleme: 2026

Latest Software Developers - Yazılım Blog Yazarı Profil Resmi

Yazar

LatestSoftwareDevelopers

Güncel yazılım teknolojilerinin takip edildiği blog.

Spring Boot ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *