ASP.NET Web API - Triển khai phương thức Post

Thực hiện phương thức Post
 

Phần này là phần tiếp theo của hai phần trước, trong đó chúng ta đã tạo cơ sở hạ tầng cần thiết cho Web API và cũng đã triển khai các phương thức GET. Ở đây, chúng ta sẽ triển khai phương thức POST trong Web API.

Yêu cầu HTTP POST được sử dụng để tạo một bản ghi mới trong nguồn dữ liệu trong kiến ​​trúc RESTful. Vì vậy, hãy tạo một phương thức hành động trong StudentController của chúng ta để chèn bản ghi sinh viên mới vào cơ sở dữ liệu bằng Entity Framework.

Phương thức hành động sẽ xử lý yêu cầu HTTP POST phải bắt đầu bằng một từ Post. Nó có thể được đặt tên là Post hoặc với bất kỳ hậu tố nào, ví dụ: POST(), Post(), PostNewStudent(), PostStudents() là những tên hợp lệ cho một phương thức hành động xử lý yêu cầu HTTP POST.

Ví dụ sau đây minh họa phương thức hành động Post để xử lý yêu cầu HTTP POST.

Ví dụ: Phương thức Post trong  API Web Controller

public class StudentController : ApiController
{
    public StudentController()
    {
    }

    //Get action methods of the previous section
    public IHttpActionResult PostNewStudent(StudentViewModel student)
    {
        if (!ModelState.IsValid)
            return BadRequest("Invalid data.");

        using (var ctx = new SchoolDBEntities())
        {
            ctx.Students.Add(new Student()
            {
                StudentID = student.Id,
                FirstName = student.FirstName,
                LastName = student.LastName
            });

            ctx.SaveChanges();
        }

        return Ok();
    }
} 

Như bạn có thể thấy ở trên, chúng tôi đặt tên phương thức hành động là PostNewStudent. Bạn có thể đặt bất kỳ tên nào theo yêu cầu của mình nhưng phải bắt đầu bằng từ "Post". Phương thức hành động PostNewStudent() bao gồm tham số của loại StudentViewModel bao gồm tất cả thông tin về sinh viên mới.

Trong phương thức Post, trước tiên chúng ta cần xác thực mô hình bằng ModelState.IsValid. Điều này sẽ đảm bảo rằng đối tượng sinh viên bao gồm tất cả thông tin cần thiết. Nếu không hợp lệ, bạn có thể trả về phản hồi BadRequest. Nếu hợp lệ, hãy thêm sinh viên bằng ngữ cảnh Entity Framework và trả về phản hồi trạng thái 200 OK.

 

Chú ý:
Đây chỉ là một dự án demo. Tuy nhiên, bạn có thể trả về đối tượng sinh viên mới tạo với Id trong phản hồi.

Bây giờ, bạn có thể gửi yêu cầu HTTP POST bằng Fiddler như hiển thị bên dưới và xem phản hồi.

Thực hiện yêu cầu HTTP POST trong Fiddler

Như bạn có thể thấy trong hình trên, yêu cầu HTTP POST bao gồm đối tượng StudentViewModel vào định dạng JSON trong nội dung yêu cầu. Sau khi thực hiện thành công, trạng thái phản hồi là 200 OK.