<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Divineshop.net API</title>
    <description>The latest articles on DEV Community by Divineshop.net API (@divineshop-api).</description>
    <link>https://dev.to/divineshop-api</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4172459%2F0f40f176-7ca7-4746-8db9-c8a5b7b4736d.png</url>
      <title>DEV Community: Divineshop.net API</title>
      <link>https://dev.to/divineshop-api</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/divineshop-api"/>
    <language>en</language>
    <item>
      <title>Chọn VPS cho dự án: vị trí máy chủ, hệ điều hành và chi phí vận hành</title>
      <dc:creator>Divineshop.net API</dc:creator>
      <pubDate>Tue, 20 Oct 2026 12:15:27 +0000</pubDate>
      <link>https://dev.to/taivps/chon-vps-cho-du-an-vi-tri-may-chu-he-dieu-hanh-va-chi-phi-van-hanh-j6c</link>
      <guid>https://dev.to/taivps/chon-vps-cho-du-an-vi-tri-may-chu-he-dieu-hanh-va-chi-phi-van-hanh-j6c</guid>
      <description>&lt;p&gt;Bài viết từ TaiVPS — nhà cung cấp dịch vụ VPS. Các liên kết sản phẩm bên dưới thuộc TaiVPS.&lt;/p&gt;

&lt;p&gt;Chọn VPS nên bắt đầu từ yêu cầu ứng dụng, thay vì chỉ so số core và RAM. Đây là checklist ngắn trước khi thuê.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Xác định hệ điều hành
&lt;/h2&gt;

&lt;p&gt;Ứng dụng phụ thuộc Windows cần kiểm tra phiên bản hệ điều hành, yêu cầu giấy phép và cách truy cập Remote Desktop. Với Linux, kiểm tra bản phân phối, phiên bản runtime và cách truy cập SSH. Đừng mở SSH hoặc RDP cho mọi địa chỉ nếu có thể giới hạn IP quản trị.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Chọn vị trí gần người dùng
&lt;/h2&gt;

&lt;p&gt;Website phục vụ khách Việt nên đo độ trễ từ mạng người dùng tới vị trí máy chủ dự kiến. Dự án phục vụ khách quốc tế nên thử từ thị trường chính. Khoảng cách địa lý chỉ là một yếu tố; định tuyến mạng cũng ảnh hưởng kết quả.&lt;/p&gt;

&lt;p&gt;Có thể dùng &lt;code&gt;ping&lt;/code&gt; để xem độ trễ ICMP khi máy chủ cho phép, nhưng cần đo cả HTTP của ứng dụng. Ví dụ trên Linux/macOS hoặc môi trường có curl:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-o&lt;/span&gt; /dev/null &lt;span class="nt"&gt;-sS&lt;/span&gt; &lt;span class="nt"&gt;-w&lt;/span&gt; &lt;span class="s2"&gt;"connect=%{time_connect}s starttransfer=%{time_starttransfer}s total=%{time_total}s&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; https://example.com/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thay &lt;code&gt;https://example.com/&lt;/code&gt; bằng URL bạn quản lý. Chạy vài lần ở các thời điểm khác nhau. &lt;code&gt;time_starttransfer&lt;/code&gt; còn phụ thuộc xử lý ứng dụng; một lần đo không đủ kết luận chất lượng VPS.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Tính tổng chi phí
&lt;/h2&gt;

&lt;p&gt;Ngoài giá thuê, kiểm tra chu kỳ tính phí, lưu lượng, IPv4, giấy phép Windows, sao lưu và công quản trị. Với gói theo giờ, đọc rõ thời điểm ngừng tính phí: tắt máy và xóa dịch vụ không nhất thiết có cùng tác dụng.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Dự trù RAM và ổ đĩa
&lt;/h2&gt;

&lt;p&gt;Đo ứng dụng thật sau triển khai: RAM lúc tải cao, dung lượng database, log và bản sao lưu. Không dùng toàn bộ ổ đĩa cho dữ liệu; cần khoảng trống cho cập nhật và tăng trưởng. Số vCPU không tự nói lên hiệu năng khi chưa biết CPU, mức chia sẻ và giới hạn tài nguyên.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Chuẩn bị trước khi đưa vào chạy
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Cập nhật hệ điều hành và ứng dụng.&lt;/li&gt;
&lt;li&gt;Dùng khóa SSH khi phù hợp; bật xác thực mạnh cho tài khoản quản trị.&lt;/li&gt;
&lt;li&gt;Chỉ mở cổng cần thiết bằng firewall.&lt;/li&gt;
&lt;li&gt;Sao lưu ngoài VPS và thử khôi phục.&lt;/li&gt;
&lt;li&gt;Theo dõi uptime, dung lượng và lỗi ứng dụng.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Các dòng VPS tại TaiVPS
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://taivps.net/buy-vps" rel="noopener noreferrer"&gt;VPS Việt Nam Windows/Linux&lt;/a&gt;: đối chiếu cấu hình và hệ điều hành với ứng dụng đang dùng.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://taivps.net/buy-cloud-vps-pro" rel="noopener noreferrer"&gt;Cloud VPS Pro&lt;/a&gt;: xem lựa chọn và chu kỳ thanh toán hiện có trên bảng giá.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://taivps.net/buy-vps-nn" rel="noopener noreferrer"&gt;VPS quốc tế&lt;/a&gt;: kiểm tra location phù hợp thị trường mục tiêu.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Giá, cấu hình và tình trạng cung cấp có thể thay đổi; kiểm tra trực tiếp trang đặt mua trước khi thanh toán. Hãy xác nhận phạm vi hỗ trợ quản trị để phân công rõ phần việc của nhà cung cấp và người thuê.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>TaiVPS API v19: liệt kê dịch vụ VPS bằng cURL</title>
      <dc:creator>Divineshop.net API</dc:creator>
      <pubDate>Fri, 09 Oct 2026 05:34:39 +0000</pubDate>
      <link>https://dev.to/taivps/taivps-api-v19-liet-ke-dich-vu-vps-bang-curl-1ife</link>
      <guid>https://dev.to/taivps/taivps-api-v19-liet-ke-dich-vu-vps-bang-curl-1ife</guid>
      <description>&lt;p&gt;Bài này được đăng trong tổ chức TaiVPS trên DEV. Tài khoản tác giả đang hiển thị tên Divineshop.net API.&lt;/p&gt;

&lt;p&gt;Nếu đang xây bảng chọn gói VPS hoặc tích hợp đại lý, hãy bắt đầu bằng yêu cầu chỉ đọc &lt;code&gt;loaivps&lt;/code&gt;. Yêu cầu này trả về các loại dịch vụ VPS mà tài khoản có thể dùng. Không cần thử thao tác mua hay thay đổi máy chủ để kiểm kết nối API.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chuẩn bị
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Có tài khoản TaiVPS và &lt;code&gt;auth_token&lt;/code&gt; của chính bạn. Giữ token ngoài mã nguồn, bài đăng và ảnh chụp màn hình.&lt;/li&gt;
&lt;li&gt;Endpoint v19: &lt;code&gt;https://taivps.net/api/v19&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Gửi tham số trong body của yêu cầu &lt;code&gt;POST&lt;/code&gt;, dạng form data.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Yêu cầu mẫu
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;--request&lt;/span&gt; POST &lt;span class="nt"&gt;--url&lt;/span&gt; &lt;span class="s2"&gt;"https://taivps.net/api/v19"&lt;/span&gt; &lt;span class="nt"&gt;--form&lt;/span&gt; &lt;span class="s2"&gt;"auth_token=YOUR_TOKEN"&lt;/span&gt; &lt;span class="nt"&gt;--form&lt;/span&gt; &lt;span class="s2"&gt;"action=loaivps"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thay &lt;code&gt;YOUR_TOKEN&lt;/code&gt; bằng token riêng trong môi trường chạy của bạn. Đừng đưa token thật lên Git, Postman workspace công khai hoặc bình luận.&lt;/p&gt;

&lt;p&gt;Theo &lt;a href="https://taivps.net/api-docs" rel="noopener noreferrer"&gt;tài liệu API TaiVPS&lt;/a&gt;, phản hồi mẫu có các cặp &lt;code&gt;type&lt;/code&gt; và &lt;code&gt;name&lt;/code&gt;, ví dụ &lt;code&gt;vps-gold&lt;/code&gt;, &lt;code&gt;vps-platinum&lt;/code&gt;, &lt;code&gt;vps-vip&lt;/code&gt;. Đây là ví dụ tài liệu, không phải danh sách gói cố định; hãy dùng dữ liệu phản hồi hiện tại để dựng giao diện.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"vps-gold"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"VPS Gold"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"vps-platinum"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"VPS Platinum"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"vps-vip"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"VPS VIP"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Bước tiếp theo
&lt;/h2&gt;

&lt;p&gt;Sau khi lấy được &lt;code&gt;type&lt;/code&gt;, yêu cầu &lt;code&gt;action=services&lt;/code&gt; nhận thêm tham số &lt;code&gt;type&lt;/code&gt; để đọc các gói thuộc loại đó. &lt;a href="https://documenter.getpostman.com/view/25675425/2sBYHQ1hiU" rel="noopener noreferrer"&gt;Bộ sưu tập Postman công khai&lt;/a&gt; có ba ví dụ chỉ đọc: loại dịch vụ, gói VPS và hệ điều hành. Các yêu cầu mua, cài lại, gia hạn hoặc hủy VPS cần kiểm tham số và tác động trong tài liệu trước khi dùng.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chọn dòng VPS
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://taivps.net/buy-vps" rel="noopener noreferrer"&gt;VPS Việt Nam VMware cho Windows/Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://taivps.net/buy-vps-nn" rel="noopener noreferrer"&gt;VPS quốc tế, nhiều location&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://taivps.net/buy-cloud-vps-pro" rel="noopener noreferrer"&gt;Cloud VPS KVM IPv4 theo giờ hoặc tháng (IPv6 đang cập nhật)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bài này mô tả luồng từ tài liệu công khai; không chạy thử bằng token khách hàng. Giá và cấu hình nên lấy từ &lt;a href="https://taivps.net/store-vps" rel="noopener noreferrer"&gt;bảng gói hiện tại&lt;/a&gt;, vì chúng có thể thay đổi.&lt;/p&gt;

</description>
      <category>api</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>Tích hợp API Divineshop: đọc danh mục, sản phẩm và số dư bằng cURL</title>
      <dc:creator>Divineshop.net API</dc:creator>
      <pubDate>Fri, 09 Oct 2026 04:34:53 +0000</pubDate>
      <link>https://dev.to/divineshop-api/tich-hop-api-divineshop-doc-danh-muc-san-pham-va-so-du-bang-curl-19c2</link>
      <guid>https://dev.to/divineshop-api/tich-hop-api-divineshop-doc-danh-muc-san-pham-va-so-du-bang-curl-19c2</guid>
      <description>&lt;p&gt;Nếu đang xây công cụ quản lý sản phẩm số hoặc kết nối cửa hàng với Divineshop, hãy bắt đầu bằng ba request chỉ đọc. Bài này dùng API chính thức của Divineshop; tôi có liên quan đến Divineshop. Tham số và tính năng có thể thay đổi, nên &lt;a href="https://divineshop.net/document-api" rel="noopener noreferrer"&gt;tài liệu API gốc&lt;/a&gt; là nguồn đối chiếu.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chuẩn bị
&lt;/h2&gt;

&lt;p&gt;Tạo API Key và API Secret trong tài khoản được cấp quyền. Hai giá trị này gửi qua header &lt;code&gt;X-API-Key&lt;/code&gt; và &lt;code&gt;X-API-Secret&lt;/code&gt;. Giữ chúng ở môi trường chạy phía server, không đặt vào JavaScript công khai, ảnh chụp màn hình, URL hay kho Git.&lt;/p&gt;

&lt;p&gt;Đặt hai biến môi trường &lt;code&gt;DIVINESHOP_API_KEY&lt;/code&gt; và &lt;code&gt;DIVINESHOP_API_SECRET&lt;/code&gt; trong môi trường riêng của bạn. Ví dụ dưới đây dùng cú pháp shell POSIX; trên PowerShell, thay &lt;code&gt;$DIVINESHOP_API_KEY&lt;/code&gt; bằng &lt;code&gt;$env:DIVINESHOP_API_KEY&lt;/code&gt; và tương tự cho secret.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Lấy danh mục
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;--fail-with-body&lt;/span&gt; &lt;span class="nt"&gt;--silent&lt;/span&gt; &lt;span class="nt"&gt;--show-error&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: &lt;/span&gt;&lt;span class="nv"&gt;$DIVINESHOP_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Secret: &lt;/span&gt;&lt;span class="nv"&gt;$DIVINESHOP_API_SECRET&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s1"&gt;'https://divineshop.net/api/v1/categories/list'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Request này giúp lấy danh mục trước khi lọc sản phẩm. Không đoán &lt;code&gt;category_id&lt;/code&gt; từ tên hiển thị; dùng ID mà API trả về.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Lấy sản phẩm
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;--fail-with-body&lt;/span&gt; &lt;span class="nt"&gt;--silent&lt;/span&gt; &lt;span class="nt"&gt;--show-error&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: &lt;/span&gt;&lt;span class="nv"&gt;$DIVINESHOP_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Secret: &lt;/span&gt;&lt;span class="nv"&gt;$DIVINESHOP_API_SECRET&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s1"&gt;'https://divineshop.net/api/v1/products/list'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Endpoint hỗ trợ query &lt;code&gt;category_id&lt;/code&gt; để lọc theo danh mục và &lt;code&gt;search&lt;/code&gt; để tìm theo tên. Khi ghép query trong ứng dụng, hãy URL-encode giá trị tìm kiếm. Giá, gói và tình trạng sản phẩm cần đọc từ phản hồi hiện tại; đừng lưu cứng theo bài viết.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Kiểm tra số dư
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;--fail-with-body&lt;/span&gt; &lt;span class="nt"&gt;--silent&lt;/span&gt; &lt;span class="nt"&gt;--show-error&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: &lt;/span&gt;&lt;span class="nv"&gt;$DIVINESHOP_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Secret: &lt;/span&gt;&lt;span class="nv"&gt;$DIVINESHOP_API_SECRET&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s1"&gt;'https://divineshop.net/api/v1/account/balance'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Đây là dữ liệu tài khoản. Chỉ gọi từ backend có quyền, không đưa phản hồi số dư vào log công khai hoặc trang frontend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Khi request lỗi
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Kiểm tra đường dẫn bắt đầu bằng &lt;code&gt;https://divineshop.net/api/v1&lt;/code&gt; và header đúng tên.&lt;/li&gt;
&lt;li&gt;Nếu bị từ chối xác thực, kiểm tra cặp key/secret trong môi trường chạy; không dán chúng vào bình luận để nhờ sửa lỗi.&lt;/li&gt;
&lt;li&gt;Kiểm tra HTTP status và nội dung phản hồi trước khi cập nhật dữ liệu. Đừng coi response lỗi là danh sách rỗng.&lt;/li&gt;
&lt;li&gt;Với tác vụ định kỳ, giới hạn tần suất gọi và ghi log mã lỗi, thời điểm, endpoint; che khóa khỏi log.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Có thể nhập &lt;a href="https://www.postman.com/altimetry-architect-69675833-s-team/divineshop-api/collection/oiempeg/divineshop-api-yu-cu-ch-c" rel="noopener noreferrer"&gt;collection Postman công khai&lt;/a&gt; để thử ba request với biến key/secret trống. Đối chiếu các endpoint khác và điều kiện sử dụng tại &lt;a href="https://divineshop.net/document-api" rel="noopener noreferrer"&gt;tài liệu chính thức&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>api</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
