SaoVietAPI
SaoVietAPI copied to clipboard
Xây dựng API cho việc quản lý 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 architecture và Repository pattern
Mục lục
- Mục lục
- Tổng quan
- Giới thiệu
- Chi tiết
- Kiến trúc
- Repository pattern
- Môi trường phát triển
- Cài đặt
- Cài đặt môi trường phát triển
- Cài đặt Log và Monitor
- Cấu hình kết nối với SQL Server
- Tài liệu
- Người đóng góp
- Liên hệ
- Giấy phép
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.0Khởi động container .NET 7:
docker run -it --name dotnet7_container -p 8080:80 microsoft/dotnet:7.0-runtimeCài đặt SQL Server:
docker pull mcr.microsoft.com/mssql/serverKhởi động container SQL Server:
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d mcr.microsoft.com/mssql/serverNgoà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
- Xem Các thay đổi tại trang Changelog
- Xem tài liệu về cách sử dụng API tại trang API Documentation
- Xem quy tắc ứng xử tại trang Contributor Covenant Code of Conduct
- Xem đóng góp tại trang Contributing
- Xem chính sách bảo mật tại trang Privacy Policy
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 Đì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