Tham khảo:
Tạo mới project dạng ASP.NET Core Web API
Default tick chọn sẵn Enable OpenAPI support để tự động cấu hình Swagger.
Sau đó chạy project sẽ thấy WeatherForcast GET API sẵn có.
Tạo các API liên quan tới người dùng và lưu trữ dữ liệu tĩnh:
GET /users ==> Lấy tất cả
GET /users/{id} ==> Lấy theo id
POST /users ==> Tạo mới
PUT /users/{id} ==> Sửa thông tin người dùng theo id
DELETE /users/{id} ==> Xóa thông tin người dùng theo id
Để đơn giản, định nghĩa các model tương ứng:
public class UserModel
{
public string UserName { get; set; }
public string Password { get; set; }
}
public class User : UserModel
{
public Guid Id { get; set; }
}
trong đó UserModel dùng để tạo mới người dùng, Id sẽ tự sinh ra.
Tạo mới API Controller empty có tên UsersController
namespace MyAPI.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class UsersController : ControllerBase
{
public static List<User> Users = new List<User>();
}
}
trong đó biến Users dạng static lưu danh sách User. Bạn có thể kết nối trực tiếp đến database để lấy và thay đổi data.
API lấy tất cả người dùng (GET)
[HttpGet]
public IActionResult GetAll()
{
return Ok(Users);
}
API tạo mới người dùng (POST)
[HttpPost]
public IActionResult CreateNew(UserModel model)
{
//kiểm tra username trùng
var existedUser = Users.SingleOrDefault(p => p.UserName == model.UserName);
if (existedUser != null)
{
return Ok(new {
Success = false,
Message = $"User {model.UserName} đã tồn tại"
});
}
var user = new User
{
Id = Guid.NewGuid(),
UserName = model.UserName,
Password = model.Password
};
Users.Add(user);
return Ok(new { Success = true, Data = user });
}
trong đó có kiểm tra username có trùng không. Dù có hay không API vẫn trả về status = 200 nhưng nội dung trả về có field success = true/false
API lấy người dùng theo id (GET)
[HttpGet("{id}")]
public IActionResult GetById(Guid id)
{
var existedUser = Users.SingleOrDefault(p => p.Id == id);
if(existedUser == null)
{
return NotFound();
}
return Ok(existedUser);
}
API cập nhật thông tin người dùng theo id (PUT)
[HttpPut("{id}")]
public IActionResult UpdateById(Guid id, User model)
{
if (id != model.Id)
{
return Ok(new
{
Success = false,
Message = $"{id} không khớp"
});
}
for (int i = 0; i < Users.Count; i++)
{
if (Users[i].Id == id)
{
Users[i] = model;
break;
}
}
return Ok(model);
}
Tương tự SV thử viết API cho trường hợp DELETE và API tìm người dùng theo các tiêu chí.
Sau đó chuyển các thông tin người dùng vô database để lưu trữ.