ASP.NET Core'da CRUD eylemleri

Tamamlandı

Pizza hizmetimiz, bir pizza listesi için CRUD işlemlerini destekler. Bu işlemler, ASP.NET Core öznitelikleri aracılığıyla eşlenen HTTP fiilleri aracılığıyla gerçekleştirilir. Gördüğünüz gibi, HTTP GET fiili bir hizmetten bir veya daha fazla öğeyi almak için kullanılır. Böyle bir eylem [HttpGet] özniteliğiyle açıklanır.

Aşağıdaki tabloda pizza hizmeti için uyguladığınız dört işlemin eşlemesi gösterilmektedir:

HTTP eylem fiili CRUD işlemi ASP.NET Core özniteliği
GET Okundu [HttpGet]
POST Oluştur [HttpPost]
PUT Güncelleş [HttpPut]
DELETE Silme [HttpDelete]

Eylemlerin nasıl GET çalıştığını zaten gördünüz. , PUTve DELETE eylemleri hakkında POSTdaha fazla bilgi edinelim.

POST

Kullanıcıların uç noktaya yeni bir öğe eklemesini sağlamak için özniteliğini POST [HttpPost] kullanarak eylemi uygulamanız gerekir. Öğeyi (bu örnekte, pizza) yönteme parametre olarak geçirdiğinizde ASP.NET Core uç noktaya gönderilen tüm uygulamaları/JSON'ları otomatik olarak doldurulmuş bir .NET Pizza nesnesine dönüştürür.

Sonraki bölümde uygulayabileceğiniz yöntemin yöntem imzası Create aşağıdadır:

[HttpPost]
public IActionResult Create(Pizza pizza)
{            
    // This code will save the pizza and return a result
}

özniteliği yöntemi [HttpPost] kullanılarak gönderilen http://localhost:5000/pizza HTTP POST isteklerini eşlerCreate(). Yönteminde Get() gördüğümüz gibi pizza listesini döndürmek yerine bu yöntem bir IActionResult yanıt döndürür.

IActionResult istemciye isteğin başarılı olup olmadığını bildirir ve yeni oluşturulan pizzanın kimliğini sağlar. IActionResult standart HTTP durum kodları kullandığından, üzerinde çalıştıkları dilden veya platformdan bağımsız olarak istemcilerle kolayca tümleşebilir.

ASP.NET Core
eylem sonucu
HTTP durum kodu Açıklama
CreatedAtAction 201 Pizza bellek içi önbelleğe eklendi.
Pizza, HTTP isteği üst bilgisinde (varsayılan olarak JSON) tanımlandığı gibi medya türündeki yanıt gövdesine accept dahil edilir.
BadRequest belirtiliyor 400 İstek gövdesindeki pizza nesnesi geçersizdir.

Neyse ki, ControllerBase sizin için uygun HTTP yanıt kodlarını ve iletilerini oluşturan yardımcı program yöntemlerine sahiptir. Sonraki alıştırmada bu yöntemlerin nasıl çalıştığını göreceksiniz.

PUT

Envanterimizdeki bir pizzayı değiştirmek veya güncelleştirmek, uyguladığınız POST yöntemine benzer, ancak özniteliğini kullanır [HttpPut] ve güncelleştirilmesi gereken nesneye Pizza ek olarak parametresini alırid:

[HttpPut("{id}")]
public IActionResult Update(int id, Pizza pizza)
{
    // This code will update the pizza and return a result
}

Önceki eylemde kullanılan her ActionResult örnek, aşağıdaki tabloda karşılık gelen HTTP durum koduyla eşlenir:

ASP.NET Core
eylem sonucu
HTTP durum kodu Açıklama
NoContent 204 Pizza bellek içi önbellekte güncelleştirildi.
BadRequest 400 İstek gövdesindeki Id değeri yolun id değeriyle eşleşmiyor.
BadRequest belirtiliyor 400 İstek gövdesindeki Pizza nesnesi geçersizdir.

SİL

Uygulanması daha kolay eylemlerden biri, pizzanın bellek içi önbellekten kaldırmak için yalnızca id parametresini alan eylemdirDELETE:

[HttpDelete("{id}")]
public IActionResult Delete(int id)
{
    // This code will delete the pizza and return a result
}

Önceki eylemde kullanılan her ActionResult örnek, aşağıdaki tabloda karşılık gelen HTTP durum koduyla eşlenir:

ASP.NET Core
eylem sonucu
HTTP durum kodu Açıklama
NoContent 204 Pizza bellek içi önbellekten silindi.
NotFound 404 Sağlanan id parametreyle eşleşen bir pizza bellek içi önbellekte yok.

Sonraki ünitedeki alıştırmada, web API'sindeki dört eylemin her birinin nasıl destek sürülecekleri gösterilmektedir.

Bilginizi ölçün

1.

Bir ürünün adını güncelleştirmeniz gerektiğini düşünün. Bu isteğe en uygun HTTP eylem filli hangisidir?

2.

HTTP 404 durum kodu döndürmenin en uygun olduğu senaryo hangisidir ve bu ASP.NET Core'da nasıl yapılır?