Postman İle Delete Metodu Kullanımı

Postman serimizin önceki yazılarında GET ve POST isteklerini ve bu isteklerin kullanımını ele almıştık. Bu bilgilerden yola çıkarak, DELETE metodunun ne amaçla kullanıldığını, hangi senaryolarda tercih edildiğini ve Postman üzerinde nasıl uygulanabileceğini gerçek bir örnek üzerinden adım adım inceleyeceğiz.

HTTP metotları, sunucu ile arayüz arasındaki iletişim dilini oluşturur. Bu dil sayesinde arayüz üzerinde gerçekleştirilen işlemler sunucuya iletilir ve sunucudan dönen cevaba (response) göre UI akışları ilerletilir.

Örneğin, bir web sitesi üzerinde sepete ürün eklemek için “Sepete Ekle” butonuna tıklandığında addItemToCart benzeri bir istek gönderilir. Ürünün stoğu mevcutsa ve tanımlı diğer sepete ekleme kurallarından geçiyorsa, isteğin döndürdüğü cevaba göre ürün sepete eklenir. Ancak addItemToCart isteği başarılı bir yanıt dönmezse, ürün sepete eklenmez.

Bu yazının içeriğinde ise HTTP metotlarından biri olan DELETE isteğini inceleyeceğiz. DELETE, sunucuda var olan kayıtları kalıcı olarak silmek için kullanılan bir HTTP metodudur.

Örneğin, yeni bir müşteri kaydı oluşturduğumuzu düşünelim. Bu müşteri kaydının belirli bir süre sonra silinmesi isteniyorsa, DELETE metodu kullanılarak ilgili kayıt API üzerinden doğrudan silinebilir. DELETE metodunun kullanımı, GET ve POST isteklerine kıyasla benzerlik gösterir; ancak kullanım sırasında dikkatli olunmalıdır.

DELETE isteği ile silinen kayıtlar kalıcı olarak tamamen kaldırılır ve geri getirilemez. Veritabanları üzerinde yapılan işlemlerde commit işlemi gerçekleştirilmezse değişiklikler kalıcı olarak kaydedilmez; commit işlemi yapıldığında ise geri dönüş mümkün olmaz. DELETE metodu ile gerçekleştirilen işlemler de bu açıdan commit edilmiş işlemler gibidir ve geri alınamaz.

Önceki yazılarımızda Postman arayüzünü ve isteklerin nasıl oluşturulabileceğini ele almıştık. Bu yazıda ise bu bilgileri kullanarak DELETE metodunu uygulamaya başlayacağız. İlk olarak, önceki yazılarımızda da kullandığımız otel rezervasyonu örneğini içeren Restful-Booker sitesi üzerinde DELETE metodunu deneyelim. Bu sayfadaki dokümantasyona ilgili bağlantı üzerinden erişebilirsiniz.

DELETE isteği için aşağıdaki görselde yer alan istek detaylarını inceleyelim:

“Example 1” başlığı altındaki alanı incelediğimizde, DELETE isteğinin https://restful-booker.herokuapp.com/booking/1 endpoint’ine gönderilmesi gerektiği görülmektedir. İstek içerisinde herhangi bir body göndermemize gerek yoktur; ancak header bölümünde bazı parametrelerin iletilmesi gerekmektedir. Bunlardan biri de token’dır. DELETE isteğine erişebilmek için öncelikle bir token oluşturulması gerekir.

Token oluşturmak için ilk olarak token oluşturma isteğini inceleyelim:

Token’ı başarılı bir şekilde oluşturabilmek için, istek detayında yer alan body ve header alanlarını doğru değerlerle doldurarak isteği gönderelim.

Bu isteği gönderdiğimizde, isteğimiz 200 durum kodu ile sonuçlanacak ve response olarak token bilgisi dönecektir. Bu token bilgisi, kullanacağımız DELETE isteğinin header kısmında cookie olarak iletilecektir. Bunu, göndereceğimiz DELETE isteğine ait dokümantasyondan da görebiliriz.

Token’ı elde ettiğimize göre, şimdi silme işlemini gerçekleştirmek için tekrar DELETE isteğine bakalım. Endpoint incelendiğinde, booking path’ine sahip olduğu ve silinmesi gereken rezervasyon bilgisinin parametre olarak verildiği görülebilir. Bu sayede, gönderilen istekteki id değerine sahip rezervasyon bilgisi silinir.

Bu değerleri kullanarak bir rezervasyon silelim:

İsteği incelediğimizde, ilgili URL’deki booking path’inde yer alan 2 numaralı rezervasyonun silinmek üzere hedeflendiği görülmektedir. Dokümantasyon incelendiğinde, yapılan isteğin başarılı olması durumunda cevabın 201 – Created durum kodu ile dönmesi gerektiği görülebilir.

Bu işlem sonrasında, ilgili id’ye sahip rezervasyonun gerçekten silinip silinmediğini kontrol etmek için silindiği düşünülen id ile bir GET isteği oluşturabiliriz. Eğer bu id ile oluşturulan GET isteğinde rezervasyon bilgisi dönüyorsa, ilgili kaydın silinmediği anlaşılır; ancak herhangi bir kayıt dönmüyorsa, kaydın silindiği sonucuna varılabilir.

GET isteğini incelediğimizde, header alanına Accept: application/json bilgisinin eklenmesi ve listelenmesi istenen rezervasyonu iletmek için path parametresinin kullanılması gerektiği görülmektedir. Dokümantasyona uygun şekilde istek oluşturulup gönderildiğinde, aşağıdaki yanıt alınır.

İstek gönderildikten sonra sunucudan “404 Not Found” cevabını aldık. Bu, beklediğimiz bir senaryodur; çünkü bir önceki adımda bu id’ye ait rezervasyon kaydı silinmiştir. Eğer bu tür durumlara özel backend cevapları tanımlanmamışsa, genellikle bu şekilde bir “Not Found” yanıtı alınır.

Eğer aradığımız id’ye ait bir kayıt döndürülseydi, DELETE işleminin başarısız olduğu anlaşılırdı. Bazı durumlarda yapılan istekler başarılı gibi görünebilir ve kayıtlar silinmiş izlenimi verebilir; ancak işlemin gerçekten başarılı olup olmadığını mutlaka doğrulamak gerekir. Aksi halde, başarılı görünen fakat gerçekte gerçekleşmemiş işlemlerle karşılaşılabilir.

Bu yazıda, Postman kullanarak DELETE metodunun ne amaçla kullanıldığını ve nasıl uygulanacağını ele aldık. Gerçek bir örnek üzerinden ilerleyerek, token oluşturma sürecini, DELETE isteğinin gönderilmesini ve işlemin başarıyla tamamlanıp tamamlanmadığının GET isteği ile nasıl doğrulanabileceğini inceledik. DELETE işlemlerinin geri döndürülemez sonuçlar doğurabileceğini ve bu nedenle dikkatli şekilde ele alınması gerektiğini vurguladık. Bir sonraki yazıda, farklı HTTP metotları ve Postman üzerindeki kullanım senaryolarını detaylandırarak seriyi devam ettireceğiz.

PSTMNA9F3K7M2Q8R5L4Z

Erhan Eşkin

Yazılım Test Uzmanı

http://pi404.com

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir