Tạo API RESTful với ASP.NET Core – Phần 18

Đăng ngày: 20/06/2026 • Tác giả: Quản trị viên
Tạo API RESTful với ASP.NET Core – Phần 18

 

Tạo API RESTful với ASP.NET Core – Phần 18

1. Giới thiệu về API RESTful

API RESTful (Representational State Transfer) là kiểu API phổ biến giúp trao đổi dữ liệu giữa client và server.

🔹 Đặc điểm của RESTful API:
✅ Giao tiếp qua HTTP (GET, POST, PUT, DELETE).
✅ Trả dữ liệu dạng JSON hoặc XML.
✅ Không lưu trạng thái (Stateless).

📌 ASP.NET Core hỗ trợ mạnh mẽ cho RESTful API thông qua ASP.NET Web API.

2. Cài đặt ASP.NET Core Web API

👉 Tạo project API mới:

dotnet new webapi -n MyApiApp
cd MyApiApp
dotnet run

📌 Mặc định, ASP.NET Core Web API sẽ tạo một API mẫu với WeatherForecastController.

👉 Cài đặt Entity Framework Core (nếu dùng database):

dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools

3. Cấu trúc thư mục API

📂 MyApiApp/
├── 📂 Controllers/
│ ├── StudentController.cs
├── 📂 Models/
│ ├── Student.cs
├── 📂 Data/
│ ├── AppDbContext.cs
├── Program.cs
├── MyApiApp.csproj

4. Tạo Model và DbContext

4.1. Tạo Model Student.cs

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

4.2. Tạo AppDbContext.cs để quản lý database

using Microsoft.EntityFrameworkCore;

public class AppDbContext : DbContext
{
    public DbSet<Student> Students { get; set; }

    public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
}

4.3. Cấu hình DbContext trong Program.cs

using Microsoft.EntityFrameworkCore;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddDbContext<AppDbContext>(options =>
    options.UseSqlServer("Server=localhost;Database=SchoolDB;Trusted_Connection=True;"));
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();
app.UseSwagger();
app.UseSwaggerUI();
app.UseAuthorization();
app.MapControllers();
app.Run();

📌 Mở Swagger UI bằng:

http://localhost:5000/swagger

5. Tạo Controller cho API

👉 Tạo StudentController.cs trong thư mục Controllers/

using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;

[Route("api/[controller]")]
[ApiController]
public class StudentController : ControllerBase
{
    private readonly AppDbContext _context;

    public StudentController(AppDbContext context)
    {
        _context = context;
    }

    // GET: api/student
    [HttpGet]
    public async Task<ActionResult<IEnumerable<Student>>> GetStudents()
    {
        return await _context.Students.ToListAsync();
    }

    // GET: api/student/1
    [HttpGet("{id}")]
    public async Task<ActionResult<Student>> GetStudent(int id)
    {
        var student = await _context.Students.FindAsync(id);
        if (student == null) return NotFound();
        return student;
    }

    // POST: api/student
    [HttpPost]
    public async Task<ActionResult<Student>> CreateStudent(Student student)
    {
        _context.Students.Add(student);
        await _context.SaveChangesAsync();
        return CreatedAtAction(nameof(GetStudent), new { id = student.Id }, student);
    }

    // PUT: api/student/1
    [HttpPut("{id}")]
    public async Task<IActionResult> UpdateStudent(int id, Student student)
    {
        if (id != student.Id) return BadRequest();
        _context.Entry(student).State = EntityState.Modified;
        await _context.SaveChangesAsync();
        return NoContent();
    }

    // DELETE: api/student/1
    [HttpDelete("{id}")]
    public async Task<IActionResult> DeleteStudent(int id)
    {
        var student = await _context.Students.FindAsync(id);
        if (student == null) return NotFound();
        _context.Students.Remove(student);
        await _context.SaveChangesAsync();
        return NoContent();
    }
}

6. Chạy API và kiểm thử

👉 Tạo database với migration:

dotnet ef migrations add InitialCreate
dotnet ef database update

👉 Chạy API:

dotnet run

🔹 Kiểm thử API với Postman hoặc Swagger UI:

Phương thức URL Chức năng
GET http://localhost:5000/api/student Lấy danh sách sinh viên
GET http://localhost:5000/api/student/1 Lấy sinh viên theo ID
POST http://localhost:5000/api/student Thêm sinh viên
PUT http://localhost:5000/api/student/1 Cập nhật sinh viên
DELETE http://localhost:5000/api/student/1 Xóa sinh viên

📌 Ví dụ dữ liệu JSON khi gửi POST:

{
    "name": "Nguyễn Văn B",
    "age": 22
}

7. Triển khai API lên Hosting

🔹 Cách triển khai API lên hosting hoặc cloud:
✅ Azure App Service: Hỗ trợ tốt cho ASP.NET Core.
✅ Docker: Chạy API dưới dạng container.
✅ IIS hoặc Windows Server: Triển khai trên máy chủ nội bộ.

👉 Xuất bản API bằng lệnh:

dotnet publish -c Release -o ./publish

8. Tổng Kết

✅ ASP.NET Core Web API giúp tạo API mạnh mẽ, dễ triển khai.
✅ Sử dụng Entity Framework Core để thao tác database.
✅ Hỗ trợ Swagger UI để kiểm thử API trực tiếp.

📌 Các bước chính:

  1. Tạo project Web API.
  2. Thêm Entity Framework Core để kết nối database.
  3. Tạo Model, DbContext và cấu hình trong Program.cs.
  4. Viết Controller với các phương thức RESTful.
  5. Chạy API và kiểm thử với Postman hoặc Swagger.

💡 Bài tiếp theo:
👉 Bảo mật API với JWT Authentication trong C# – Phần 19 🚀

Bài viết liên quan