.NET Core API PUT Metodu Oluşturma #6

Posted by

Merhaba arkadaşlar, bu yazımda sizlere .NET Core API PUT Metodu Oluşturma konusundan bahsedeceğim.

Listeleme ve Ekleme işlemlerimiz için aksiyonlarımızı yazdık. Şimdi de güncelleme işlemleri için PUT metodumuzu oluşturacağız. ProductsController ve CategoriesController içerisinde HttPut metodlarımızı yazalım.

Öncelikle bir ProductDto nesnesi oluşturuyoruz ve içerisine güncelleme yapmak istediğimiz alanlarımızı tanımlıyoruz.

public class ProductDto
{
   public int Id { get; set; }
   public string Name { get; set; }
   public decimal Price { get; set; }
}

Id, Name, Price olarak 3 property ekledik. Id ürünü sorgulamak için kullanılacak diğer alanlar da güncelleme işlemi için kullanılacak. Şimdi de ProductsController içerisinde aşağıdaki gibi bir aksiyon tanımı yapıyoruz ve içerisine kodlarımızı yazıyoruz.

[HttpPut("{id}")]
public IActionResult Put(int id, ProductDto productModel)
{
   using var context = new NetCoreApiSampleDataContext();

   if (id != productModel.Id)
       return BadRequest("Geçersiz Id");

   var product = context.Products.Find(productModel.Id);

   if (product == null)
       return BadRequest("Böyle bir ürün bilgisi bulunamadı!");

   product.Name = productModel.Name;
   product.Price = productModel.Price;

   context.SaveChanges();

   return NoContent();
}

HttpPut olarak aksiyonumuzu yazdık ve içerisinde {id} bilgisini belirttik. Bunu yazdığımızda URL aşağıdaki gibi geldiğinde ve HttpPut metodu olarak çağırıldığında ilgili işlemler sağlanacaktır.

http://localhost:5000/api/products/1

“/api/products/1” products’tan sonra gelen id değerimizi belirtir. Bu URL’i PUT metodu olarak çağırdığımızda Id’si 1 olan ürün için bir güncelleme işlemi yapılacağı anlamına gelir.

Benzer şekilde Category için de metodumuzu oluşturacağız.

[HttpPut("{id}")]
public IActionResult Put(int id, CategoryDto categoryDto)
{
    using var context = new NetCoreApiSampleDataContext();

    if (id != categoryDto.Id)
        return BadRequest("Geçersiz Id");

    var category = context.Categories.Find(categoryDto.Id);

    if (category == null)
        return BadRequest("Böyle bir kategori bilgisi bulunamadı!");

    category.Name = categoryDto.Name;

    context.SaveChanges();

    return NoContent();
}

CategoriesController içerisinde de HttpPut olarak aksiyonumuzu yazdık ve içerisinde {id} bilgisini belirttik. Bunu yazdığımızda URL aşağıdaki gibi geldiğinde ve HttpPut metodu olarak çağırıldığında ilgili işlemler sağlanacaktır.

http://localhost:5000/api/categories/1

“/api/categories/1” categories’ten sonra gelen id değerimizi belirtir. Bu URL’i PUT metodu olarak çağırdığımızda Id’si 1 olan ürün için bir güncelleme işlemi yapılacağı anlamına gelir.

Ürün ve Kategori için de PUT metotlarımızı yazarak güncelleme işlemlerini yaptırmış olduk.

Bir sonraki yazımda DELETE metodumuzu oluşturacağız ve silme işlemlerini gerçekleştireceğiz.

Görüşmek üzere 🙂

Leave a Reply

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