Dear anh em, H có gần 4 năm làm về mảng xe khách nên cũng có chút chút kinh nghiệm chia sẻ lại cho anh em nào đang tham gia cộng tác hoặc chuẩn bị triển khai hệ thống cho hãng xe nào đó.
Lời đầu tiên là H thấy mọi người ít chia sẻ mã nguồn hay idea để implement hệ thống lắm. Một là do bí quyết nghề nghiệp, hai là source code có điểm dở và sợ bị hack.
Riêng H thấy, source code dở là chuyện đương nhiên luôn rồi cho dù có cố gắng giấu giếm cũng không được gì. 😀 Anh em cũng thừa nhận điều đó đúng không? Thay vì giấu, thà mình share ra cho mọi người cùng sử dụng và cải tiến mỗi ngày cho nó ngon lành hơn.
H xin tiên phong share trước một source code mà H đã build dùng để kết nối nhà xe với các đại lý bán vé (H gọi là Agency).
Ý tưởng của H là một API trung tâm để:
- Nhà xe có thể publish các ghế/giường lên để bán.
- Đại lý vào query xem ghế/giường còn trống để hiển thị lên ứng dụng của chính đại lý đó.
- Đại lý book ghế/giường và thông tin được push qua bên nhà xe để nhà xe biết ghế/giường đó đã được giữ chỗ/thanh toán,…
Về mặt dữ liệu qua lại được build theo 2 cơ chế:
- Kiểu bình thường là gọi API trả kết quả.
- Xây một hoặc vài cái queue để push dữ liệu vào đó, ứng dụng của mỗi bên sẽ lắng nghe và xử lý.
Giao thức kết nối thì API hỗ trợ được:
- Chuẩn JSON phổ biến
- Chuẩn XML, SOAP cho các developer nào thích dùng.
- Protocol Buffer (Google)
- Message Pack, Wire format
- CSV
- HTML5 format
Hỗ trợ các plugin cần thiết cho việc develop như tích hợp Postman, Slack, Swagger,…
Khả năng nâng cấp và phát triển hỗ trợ việc deploy ứng dụng .Net
- Windows: IIS
- Linux: Mono + FastCGI
- Cross-flatform: .Net Core
Hiện tại source mới implement được phần API cơ bản các function, còn lại các cơ chế publish/subcribe.
Anh em ai hứng thú thì trao đổi cùng phát triển tiếp nhé.
Source: https://github.com/hoaihuongbk/agency
Demo: http://sagency.azurewebsites.net/api/metadata
(hiện tại demo không vô được vì account Azure free đã hết $)