Tindakan CRUD di ASP.NET Core

Selesai

Layanan pizza kami mendukung operasi CRUD untuk daftar pizza. Operasi ini dilakukan melalui kata kerja HTTP, yang dipetakan melalui atribut ASP.NET Core. Seperti yang Anda lihat, kata kerja HTTP GET digunakan untuk mengambil satu atau beberapa item dari layanan. Tindakan seperti itu dianotasikan dengan atribut [HttpGet].

Tabel berikut menunjukkan pemetaan empat operasi yang Anda terapkan untuk layanan pizza:

Kata kerja tindakan HTTP Operasi CRUD Atribut ASP.NET Core
GET Baca [HttpGet]
POST Buat [HttpPost]
PUT Pembaruan [HttpPut]
DELETE Delete [HttpDelete]

Anda telah melihat cara tindakan GET bekerja. Mari kita pelajari lebih lanjut tindakan POST, PUT, dan DELETE.

POST

Untuk memungkinkan pengguna menambahkan item baru ke titik akhir, Anda harus menerapkan tindakan POST dengan menggunakan atribut [HttpPost]. Saat Anda meneruskan item (dalam contoh ini, pizza) ke dalam metode sebagai parameter, ASP.NET Core secara otomatis mengonversi aplikasi/JSON apa pun yang dikirim ke titik akhir menjadi objek .NET Pizza yang diisi.

Berikut adalah tanda tangan metode dari metode Create yang akan Anda terapkan di bagian berikutnya:

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

Atribut [HttpPost] memetakan permintaan HTTP POST yang dikirim http://localhost:5000/pizza dengan menggunakan Create() metode . Alih-alih mengembalikan daftar pizza, seperti yang kita lihat dengan metode Get(), metode ini mengembalikan respons IActionResult.

IActionResult memberi tahu klien jika permintaan berhasil dan memberikan ID pizza yang baru saja dibuat. IActionResult menggunakan kode status HTTP standar, sehingga dapat dengan mudah diintegrasikan dengan klien terlepas dari bahasa atau platform tempat mereka berjalan.

Inti ASP.NET
hasil tindakan
Kode status HTTP Deskripsi
CreatedAtAction 201 Pizza ditambahkan ke cache dalam memori.
Produk disertakan dalam isi respons dalam jenis media, sebagaimana ditentukan dalam header permintaan HTTP accept (JSON secara default).
BadRequest tersirat 400 Objek pizza isi permintaan tidak valid.

Untungnya, ControllerBase memiliki metode utilitas yang membuat kode respons HTTP dan pesan yang sesuai untuk Anda. Anda akan melihat cara kerja metode tersebut di latihan berikutnya.

TARUH

Memodifikasi atau memperbarui pizza dalam inventaris [HttpPut] kami mirip dengan metode POST yang Anda terapkan, tetapi menggunakan atribut dan mengambil parameter selain id objek yang perlu diperbaruiPizza:

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

Setiap instans ActionResult yang digunakan dalam tindakan sebelumnya dipetakan ke kode status HTTP yang sesuai dalam tabel berikut:

Inti ASP.NET
hasil tindakan
Kode status HTTP Deskripsi
NoContent 204 Pizza diperbarui di cache dalam memori.
BadRequest 400 Nilai Id isi permintaan tidak cocok dengan nilai rute id.
BadRequest tersirat 400 Objek Pizza isi permintaan tidak valid.

DELETE

Salah satu tindakan yang lebih mudah diterapkan adalah tindakan DELETE, yang hanya mengambil parameter id dari pizza untuk dihapus dari cache dalam memori:

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

Setiap instans ActionResult yang digunakan dalam tindakan sebelumnya dipetakan ke kode status HTTP yang sesuai dalam tabel berikut:

Inti ASP.NET
hasil tindakan
Kode status HTTP Deskripsi
NoContent 204 Pizza dihapus dari cache dalam memori.
NotFound 404 Pizza yang cocok dengan parameter id yang diberikan tidak ada di cache dalam memori.

Latihan di unit berikutnya menunjukkan cara mendukung masing-masing dari empat tindakan di API web.

Uji pengetahuan Anda

1.

Anggap saja Anda perlu memperbarui nama produk. Kata kerja tindakan HTTP mana yang paling cocok untuk permintaan ini?

2.

Dalam skenario mana yang paling tepat untuk mengembalikan kode status HTTP 404, dan bagaimana pencapaiannya di ASP.NET Core?