- vừa được xem lúc

#2 Controller - Tạo một API đơn giản bằng ASP.NET CORE 5

0 0 62

Người đăng: Jocelyn

Theo Viblo Asia

Tổng quan

Bài trước mình đã khởi tạo một project ASP.NET Core 5 API trên Visual Studio 2019. Trong bài này, chúng ta hãy cùng nhau tìm hiểu về controller trong ASP.NET Core 5 API.

Nội dung

Ok, hãy mở project đã tạo ở phần 1 nào. Giờ hãy tạo một controller: click chuột phải vào folder Controllers > Add > Controller.... Khi cửa sổ Scaffolded hiện ra, chọn API trong thanh navbar bên trái, sau đó chọn API Controller - Empty image.png

Đặt tên cho Controller với cú pháp {Name}Controller, ở đây mình sẽ đặt là DemoController sau đó click Add image.png

Khi đã tạo xong, mở controller vừa tạo ra, bạn sẽ thấy image.png Controller API trong ASP.NET Core 5 mặc định sẽ có 2 annonation mà mình đã highlight màu vàng ở hình trên

  • Route("api/[controller]") - annonation cấu hình router của controller [controller] sẽ được thay thế bằng tên của controlller. Ví dụ: DemoController thì controller sẽ là Demo
  • ApiController - annonation đánh dấu cho biết đây là Api controller trong ASP.NET Core 5

Giờ hãy thử tạo ra một router

 [Route("api/[controller]")] [ApiController] public class DemoController : ControllerBase { /// <summary> /// GET: / /// Endpoint trả về chữ: Thành công /// </summary> /// <returns></returns> [HttpGet] public string Get() { return "Thành công"; } }

Để tạo một endpoint ta chỉ cần tạo một phương thức trong ApiController với sau đó thêm một annonation method và đầu phương thức đó. Ở ví dụ trên mình dùng [HttpGet] cho biết đây là một endpoint với method là GET. Khi đó đường dẫn của endpoint vừa tạo sẽ là api/Demo Bạn có thể cấu hình lại đường dẫn của endpoint trên bằng cách truyền một string vào annonation trên [HttpGet("test")]. Khi đó đường dẫn của endpoint sẽ là api/Demo/test.

Lưu ý: Đường dẫn của endpoint trong một ApiController sẽ là đường dẫn router của controller/đường dẫn endpoint

Ngoài ra còn có các annonation method khác như HttpPost, HttpPut, HttpDelete. Bạn có thể tham khảo tại: https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-5.0#http-verb-templates

Đối với response trả về, ngoài các kiểu dữ liệu nguyên thủy, List, IEnumrable, chúng ta có IActionResult. IActionResult là một interface định nghĩa các phương thức trả về kết quả của các HttpStatus

Ví dụ: cùng là trả về một chuỗi Thành công nhưng với cách dùng IActionResult

 [Route("api/[controller]")] [ApiController] public class DemoController : ControllerBase { /// <summary> /// GET: / /// Endpoint trả về chữ: Thành công /// </summary> /// <returns></returns> [HttpGet] public IActionResult Get() { // Ok là phương thức trả về response với HttpStatus là 200 return Ok("Thành công"); } }

Bên cạnh hàm Ok, ASP.NET Core cung cấp rất nhiều hàm khác:

  • Created: 201
  • NoContent: 204
  • NotFound: 404
  • ...

Tổng kết

Như vậy mình đã giới thiệu cho các bạn cách tạo ra controller đơn giản trong ASP.NET Core.

Bình luận

Bài viết tương tự

- vừa được xem lúc

10 điều cần biết về In-Memory Caching trong ASP.NET Core

Mục đính chính của bất kỳ cơ chế caching nào cũng là để cải thiện hiệu suất của ứng dụng. Với một lập trình viên ASP.

0 0 51

- vừa được xem lúc

#1 Khởi tạo Project - Tạo một API đơn giản bằng ASP.NET CORE 5

Tổng quan. Hiện mình đang làm một dự án trên công ty và API được viết bằng ASP.NET Core. Thấy tạo API trong ASP.

0 0 142

- vừa được xem lúc

Tổng quan về Dependency Injection - Sử dụng Dependency Injection trong .NET CORE

1. Khái niệm.

0 0 80

- vừa được xem lúc

Áp dụng Cookie Authentication trong ASP .NET Core không dùng Identity

Cookie là một tệp văn bản chứa dữ liệu mà các trình duyệt web có thể truy cập, thông thường là những dữ liệu thời gian ngắn. Cookie Authentication là một khái niệm trong đó một số ngữ cảnh đã được xác

0 0 73

- vừa được xem lúc

Policy-Based Authorization trong ASP. NET Core

Trong bài biết này chúng ta sẽ tìm hiểu về Policy-Based Authorization trong ASP .NET Core.

0 0 34

- vừa được xem lúc

[C# Căn bản] Kiểu dữ liệu, khai báo biến, hằng số, toán tử

1. Kiểu dữ liệu. . .

0 0 46