Skip to content
This repository has been archived by the owner on Oct 16, 2023. It is now read-only.
/ SaoVietAPI Public archive

Xây dựng API cho việc quản lý trung tâm tin học Sao Việt

License

Notifications You must be signed in to change notification settings

foxminchan/SaoVietAPI

Repository files navigation

API trung tâm tin học Sao Việt

Dự án xây dựng API mã nguồn mở trên nền tảng .NET Core 7, sử dụng Clean architectureRepository pattern

Mục lục

Tổng quan

Giới thiệu

Sao Việt API là một công cụ tạo dữ liệu tự động cho các ứng dụng phần mềm. Nó cung cấp dữ liệu về giáo viên, lớp học, học sinh... Sử dụng Sao Việt API giúp cho việc lấy dữ liệu trở nên dễ dàng và nhanh chóng.

Chi tiết

Các thành phần chính của API bao gồm:

  • Quản lý dữ liệu: Là một dự án .NET Core 7, sử dụng Entity Framework Core để quản lý dữ liệu. Dữ liệu được lưu trữ trong cơ sở dữ liệu SQL Server.
  • Loggging: Sử dụng trình quản lý ghi nhật ký Elastic Stack để quản lý nhật ký.
  • Giám sát: Sử dụng trình quản lý giám sát Prometheus và Grafana để giám sát tình trạng của API.
  • Cache: Sử dụng memory cached để lưu trữ dữ liệu cache.
  • Giao diện người dùng: Sử dụng Swagger để triển khai giao diện người dùng.

Kiến trúc

API được thiết kế theo kiến trúc Clean architecture. Các thành phần chính của kiến trúc bao gồm:

  • Domain: Là các đối tượng thể hiện các bảng trong cơ sở dữ liệu.
  • Application: Là các lớp xử lý nghiệp vụ của API.
  • Infrastructure: Là các lớp cung cấp các dịch vụ như cơ sở dữ liệu, giao diện người dùng, nhật ký, giám sát, cache...
  • WebApi: Là các lớp cung cấp các API cho người dùng.

Repository pattern

API sử dụng mô hình Repository pattern để truy xuất dữ liệu. Mô hình này bao gồm các thành phần sau:

  • Interface: Là một interface chứa các phương thức truy xuất dữ liệu.
  • Repository: Là một lớp thực thi interface.
  • Service: Là một lớp chứa các phương thức xử lý nghiệp vụ.

Môi trường phát triển

Để phát triển API, bạn cần cài đặt các thành phần sau:

  • .NET Core 7
  • SQL Server 2022
  • ELK Stack
  • Prometheus
  • Grafana

Cài đặt

Cài đặt môi trường phát triển

Để cài đặt môi trường cho việc phát triển API, bạn cần cài đặt các thành phần sau:

🐳 Ngoài ra có thể triển khai môi trường một cách nhanh chóng bằng cách sử dụng Docker.

Đầu tiên, bạn cần pull image .NET 7 từ Docker Hub:

docker pull mcr.microsoft.com/dotnet/core/sdk:7.0

Khởi động container .NET 7:

docker run -it --name dotnet7_container -p 8080:80 microsoft/dotnet:7.0-runtime

Cài đặt SQL Server:

docker pull mcr.microsoft.com/mssql/server

Khởi động container SQL Server:

docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d mcr.microsoft.com/mssql/server

Ngoài ra, bạn cũng có thể sử dụng Docker Compose để khởi động môi trường phát triển.

Cuối cùng, bạn cần khởi động API bằng cách chạy lệnh sau:

dotnet run

📝 Lưu ý: Nếu bạn sử dụng Docker, bạn cần chạy lệnh sau để khởi động API:

docker run -it --name dotnet7_container -p 8080:80 -v /path/to/project:/app microsoft/dotnet:7.0-runtime

Cài đặt Log và Monitor

Sau đó, bạn cần thiết lập các thành phần như Elastic Stack, Prometheus và Grafana. Để làm được điều này, bạn cần chạy lệnh sau:

docker-compose up -d

Để sử dụng được các thành phần này, vui lòng tham khảo tạo trang Wiki.

Cấu hình kết nối với SQL Server

Sau khi khởi động API, bạn có thể truy cập vào giao diện người dùng của API tại địa chỉ http://localhost:(port)/swagger. Với port được thiết lập trong file appsettings.json.

Sau đó tiến hành cấu hình kết nối với SQL Server.

Đầu tiên thay đổi chuỗi kết nối trong file appsettings.json

"ConnectionStrings": {
    "DefaultConnection": "Data Source=your_server;Initial Catalog=your_database;User ID=your_username;Password=your_password; Integrated Security=True; TrustServerCertificate=True"
}

Xoá các Migration cũ:

dotnet ef migrations remove

Tạo Migration mới:

dotnet ef migrations add InitialCreate

Lưu ý: Cơ sở dữ liệu cần được tạo trước khi chạy lệnh này.

Cuối cùng, cập nhật cơ sở dữ liệu:

dotnet ef database update

Tài liệu

Người đóng góp

Sao Việt API là một dự án mã nguồn mở và được phát triển bởi các đóng góp của các thành viên sau:

Nguyễn Xuân Nhân
Nguyễn Xuân Nhân

💻
Nguyễn Xuân Nhân
Nguyễn Đình Ánh

📝

Liên hệ

Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với tôi qua các kênh sau:

Giấy phép

Sao Việt API được phát hành theo giấy phép MIT.

@Copyright (C) 2023 4FT. All rights reserved