Vnstock Logo

Kiến trúc

Thử nghiệm

Mục lục

Bản thử nghiệm, chưa phát hành chính thức

Trang này viết cho vnstock v6.0.0rc2, bản thử nghiệm. Tên hàm, tham số và cột dữ liệu có thể còn đổi trước ngày phát hành; khi cài, ghi rõ số phiên bản như ở trang Cài đặt. Bản đang phát hành chính thức là v5.0.1, xem tài liệu bản đó.

Một lời gọi hàm đi qua ba bước xử lý trên máy của bạn. Request dữ liệu được gửi thẳng tới nguồn đã chọn hoặc qua proxy do bạn tự cấu hình.

  1. Lấy dữ liệu. vnstock-oapi đọc khoá của bạn từ keyring, .env hoặc biến môi trường, gọi Open API của nguồn, giữ phiên đăng nhập, tự gọi nhiều trang khi kết quả dài.
  2. Bọc phong bì. Mỗi phản hồi được bọc thành một phong bì: nội dung nguồn gửi, kèm nguồn, thao tác, tham số, thời điểm lấy. Phong bì không chứa khoá.
  3. Chuẩn hoá. Lõi vnstock đọc phong bì theo bộ cột chuẩn của hàm: đổi tên trường, đổi đơn vị giá, đổi mã của nguồn sang từ vựng chung, đặt giờ Việt Nam, kiểm dải giá, bỏ dòng trùng. Lõi không gọi mạng.

Khoá được xử lý thế nào

  • Khoá nguồn được đọc trên máy và chỉ đưa vào request gửi tới nguồn tương ứng.
  • Thông tin đăng nhập Vnstock tại vnstocks.com được xử lý riêng, không dùng thay khoá của nguồn.
  • Phong bì lưu ra tệp không chứa khoá. Phong bì có dấu hiệu chứa bí mật thì lõi từ chối đọc (VNSTOCK_ENVELOPE_SECRET).

Vì sao tách hai gói

  • Cập nhật cách gọi một nguồn chỉ cần cập nhật vnstock-oapi; bảng chuẩn của bạn giữ nguyên.
  • Bạn có thể lấy dữ liệu bằng vnstock-oapi hoặc mã của riêng bạn, lưu phong bì, rồi chuẩn hoá sau (Tự mang phong bì).
  • Bước chuẩn hoá không cần gọi mạng; cùng một bộ phong bì và cùng phiên bản thư viện cho phép chạy lại quy trình để đối chiếu kết quả.

Một hàm, nhiều nguồn

Mỗi hàm có một bộ cột chuẩn. Với từng nguồn, thư viện khai trường nào của nguồn điền cột nào, theo đơn vị nào. Vì vậy:

  • đổi source= không đổi cấu trúc bảng khi dùng bộ cột standard;
  • trường nguồn có mà bộ chuẩn chưa có vẫn lấy được bằng columns="all";
  • hàm mới thêm vào bằng cách khai thêm, không đổi cách gọi.

Xem Bộ cột và chuẩn hoá.