Tindakan CRUD di ASP.NET Core
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 |
Read | [HttpGet] |
POST |
Buat | [HttpPost] |
PUT |
Update | [HttpPut] |
DELETE |
Delete | [HttpDelete] |
Anda sudah melihat cara GET
kerja tindakan. 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.