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

    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 architecture và Repository 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

    Github: https://github.com/foxminchan/SaoVietAPI

    Để lại một bình luận

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

    7 mins