VieTopikKhoá học
  • Games
  • Cá nhân
Tải app
© 2026 VieTopikChính sách bảo mậtĐiều khoản sử dụngCài appEnglish
  • Trang chủ
  • Học
  • Luyện thi
  • Cẩm nang
  • Games
  • Cá nhân
ASP.NET Core Web APINền tảng web
Bài 2/19
5 phút

Tạo Web API đầu tiên

Bình luận
Nội dung bài · 5 mục
  1. 1.Khái niệm
  2. 2.Ví dụ
  3. 3.Thử ngay
  4. 4.Lỗi hay gặp
  5. 5.Tóm tắt

Bạn đã biết HTTP, giờ tới lúc tự dựng một server trả lời request. Bài này tạo project Web API bằng ASP.NET Core, chạy nó, và gọi thử API có sẵn trong template.

Khái niệm

🏗️ Web API: chương trình chạy trên server, nhận HTTP request và trả về dữ liệu (thường là JSON) thay vì trang web.

🧩 WebApplication: object đại diện cho ứng dụng web, được tạo qua builder, cấu hình xong thì gọi Run() để bắt đầu nhận request.

Ví dụ

Tạo và chạy project:

dotnet new webapi --use-controllers -o ShopApi
cd ShopApi
dotnet run --urls http://localhost:5000
  • --use-controllers tạo project dùng controller, cách làm của cả khoá này.
  • --urls cố định địa chỉ server, để mọi bài gọi cùng một địa chỉ.

Phần cốt lõi của Program.cs:

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();

var app = builder.Build();
app.MapControllers();
app.Run();
  • CreateBuilder tạo builder để cấu hình ứng dụng.
  • AddControllers() đăng ký các service mà controller cần.
  • Build() tạo ra app từ cấu hình đó.
  • MapControllers() nối URL tới các controller trong project.
  • Run() bắt đầu nhận request, chạy cho tới khi bạn bấm Ctrl+C.

Template còn vài dòng khác trong Program.cs, như AddOpenApi() hay UseHttpsRedirection(). Cứ giữ nguyên chúng, khoá này không cần sửa.

Thử ngay

Template có sẵn một controller mẫu tên WeatherForecast. Để nguyên server đang chạy, mở terminal thứ hai và gọi:

curl -i http://localhost:5000/weatherforecast

Đoán trước khi chạy: status code là bao nhiêu, và body có mấy phần tử?

Xem kết quả
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

[{"date":"...","temperatureC":12,"temperatureF":53,"summary":"Cool"},
 ... 5 phần tử]

Status 200, body là một mảng JSON 5 phần tử. Số liệu là ngẫu nhiên nên mỗi lần gọi mỗi khác. Tên property trong JSON có chữ đầu viết thường (temperatureC), dù trong C# là TemperatureC.

Lỗi hay gặp

Quên MapControllers(). Server vẫn chạy, nhưng mọi URL đều trả 404 vì không controller nào được nối vào.

// SAI — gọi URL nào cũng 404
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();

var app = builder.Build();
app.Run();
// ĐÚNG
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();

var app = builder.Build();
app.MapControllers();
app.Run();

Quên AddControllers(). Ứng dụng dừng ngay lúc khởi động, báo thiếu service. Lời nhắc tuỳ dòng nào chạy trước: còn app.UseAuthorization() của template thì lỗi nhắc gọi AddAuthorization; chỉ có MapControllers() thì nhắc gọi AddControllers. Cách sửa vẫn là thêm AddControllers(), vì nó đăng ký luôn các service kia. Hai dòng AddControllers và MapControllers luôn đi cùng nhau.

Tóm tắt

  • dotnet new webapi --use-controllers tạo project Web API dùng controller.
  • dotnet run --urls http://localhost:5000 chạy server ở địa chỉ cố định.
  • Program.cs: tạo builder, đăng ký service, Build(), nối URL, Run().
  • AddControllers() và MapControllers() phải có đủ cả hai.
HTTP và RESTController và routing

Bình luận

Đang tải bình luận…

Nội dung bài

  1. 1.Khái niệm
  2. 2.Ví dụ
  3. 3.Thử ngay
  4. 4.Lỗi hay gặp
  5. 5.Tóm tắt