Dành cho nhà phát triển

Dịch vụ lưu trữ bạn có thể điều khiển từ mã

Zinn Digital® là một nền tảng ưu tiên API. API động cơ tương tự như loại vận hành bảng điều khiển của chúng tôi chính là thứ quý vị nhận được — có phiên bản, ưu tiên đặc tả và được ghi chép tài liệu 100% tại thời điểm xây dựng, cùng với các SDK được khởi tạo, một CLI, một nhà cung cấp Terraform, các webhook đã ký và một máy chủ MCP bên trên. Bất kể quý vị sử dụng công cụ gì để làm việc — thiết bị đầu cuối, quy trình tự động, tệp trạng thái hay tác nhân AI — nền tảng đều đáp ứng công cụ đó.

Một điểm cuối API phân phối các sự kiện đã ký tới một số trình lắng nghe đã đăng ký.
  • 700.000+các trang web được lưu trữ trên toàn thế giới
  • 1Đặc tả OpenAPI dùng để tạo từng công cụ
  • 4SDK máy khách — TypeScript, Python, PHP, Go
  • OAuth 2.1quyền truy cập tác nhân AI có phạm vi và có thể thu hồi

Một API duy nhất. Mọi giao diện đều vận hành trên đó.

Hầu hết các nhà cung cấp dịch vụ lưu trữ đều gắn thêm API vào bảng điều khiển sau khi đã hoàn thiện, và điều đó thể hiện rất rõ — một nửa số tính năng của bảng điều khiển không bao giờ được đưa ra ngoài. Chúng tôi đã xây dựng theo hướng hoàn toàn ngược lại. Bảng thông tin, bảng điều khiển quản trị, CLI, nhà cung cấp Terraform, máy chủ MCP và các tích hợp của riêng quý vị đều sử dụng chung một engine API. Nếu quý vị có thể thực hiện được trong bảng điều khiển, quý vị hoàn toàn có thể thực hiện được bằng mã lệnh.

Đặc tả trước, không phải lập tài liệu sau

Đặc tả OpenAPI là nguồn chân lý duy nhất và không có điểm cuối nào được phát hành trừ khi nó nằm trong đặc tả. Quy tắc duy nhất đó giúp API công khai được lập tài liệu đầy đủ ngay tại thời điểm xây dựng thay vì về sau — không có ngóc ngách nào không được ghi lại, bởi vì một điểm cuối không có tài liệu không thể tồn tại.

Được tạo tự động, không bao giờ duy trì thủ công

Tài liệu tham khảo tương tác, bốn SDK máy khách, phần lớn CLI và khung scaffold của nhà cung cấp Terraform đều được tạo từ một thông số kỹ thuật duy nhất đó. Một nguồn, nhiều thành phẩm, luôn đồng bộ — bạn không bao giờ phải đuổi theo tài liệu đã bị lệch khỏi quá trình triển khai thực tế.

Được đánh số phiên bản kèm theo chính sách ngừng hỗ trợ

Các điểm cuối nằm dưới /v1 cùng với chính sách ngừng hỗ trợ đã công bố và nhật ký thay đổi. Quý khách sẽ được thông báo bằng văn bản trước khi có thay đổi, thay vì phát hiện ra điều đó từ một bản dựng bị lỗi.

Đã kiểm thử theo hợp đồng trong CI

Các thử nghiệm hợp đồng giữa triển khai và đặc tả kỹ thuật cùng quá trình phân tích OpenAPI được chạy trên mỗi thay đổi. Sự sai lệch giữa mã nguồn và hợp đồng sẽ khiến quá trình biên dịch thất bại — vì vậy đặc tả mà quý vị dùng để tạo client chính là đặc tả mà máy chủ thực sự tuân thủ.

Xác thực, xác định phạm vi và những cạm bẫy khi mở rộng quy mô

Hai cách truy cập, một nguyên tắc đồng nhất phía sau. Dù quý vị sử dụng cách nào, các bước kiểm tra quyền và mức độ cô lập ở cấp cơ sở dữ liệu đều được áp dụng như nhau.

Khóa API, theo tổ chức

Khoá có định dạng như zdk_<mode>_<prefix>_<secret>. Chỉ có mã băm SHA-256 của phần bí mật được lưu trữ — chúng tôi không thể hiển thị lại khoá cho quý vị sau khi đã phát hành, và bất kỳ ai truy cập vào cơ sở dữ liệu của chúng tôi cũng không thể làm điều đó. Khoá có phạm vi áp dụng, có thể bị thu hồi và được cấp theo từng tổ chức thay vì từng cá nhân.

Chế độ thực tế và thử nghiệm, được tách biệt

Các khóa sandbox tách biệt với các khóa production và hoạt động ở chế độ sandbox: không lập hóa đơn thực tế, không cấp phát tài nguyên thực tế. Các thử nghiệm tích hợp của quý khách có thể gửi lượng lớn yêu cầu đến API mà không tốn chi phí hay phải thiết lập máy chủ.

OIDC cho con người

Phiên người dùng xác thực bằng các JWT do Keycloak cấp, được xác minh dựa trên khóa công khai của realm và phân giải thành cùng một đối tượng Principal như khóa API. Các điểm cuối được kiểm soát bằng các khóa quyền chi tiết như sites.create hoặc apikeys.manage, được kiểm tra theo từng tổ chức — quyền trong một tổ chức không cấp bất kỳ quyền truy cập nào trong một tổ chức riêng biệt, không liên quan, mặc dù quyền đó áp dụng cho các tổ chức được lồng bên dưới tổ chức đó.

Bảo mật cấp hàng bên dưới

Mỗi yêu cầu của đối tượng thuê chạy trong một giao dịch với phạm vi tổ chức Postgres được đặt từ đối tượng chính, do đó việc cô lập được thực thi bởi cơ sở dữ liệu chứ không phải bởi bộ lọc ORM mà ai đó có thể quên. Bộ lọc queryset vẫn ở đó như một biện pháp phòng thủ chuyên sâu.

Được xây dựng cho máy móc, không chỉ để minh họa

Thật dễ dàng để làm cho một API trông có vẻ hoàn hảo trong tệp README, nhưng rất khó để làm cho nó hoạt động ổn định dưới lưu lượng truy cập thực tế. Đây chính là những phần mà chúng tôi đã dồn nhiều công sức nhất, bởi vì chúng là những phần làm gián đoạn tích hợp vào lúc ba giờ sáng.

Một chi tiết đáng lưu ý vì nó định hình cách thức hoạt động hàng loạt: lỗi 409 đối với tên miền trùng lặp trả lời câu hỏi "tên máy chủ này có được lưu trữ ở đây không?" cho bất kỳ đối tượng thuê nào, vốn là một cơ chế suy đoán liệt kê (enumeration oracle) và là nguy cơ hủy ẩn danh thực sự đối với Footprint-Free. Việc điều tiết tốc độ tạo trang web sẽ là một giải pháp lười biếng và sẽ phá hỏng hoàn toàn sản phẩm khởi tạo hàng loạt. Thay vào đó, chỉ những lần thử tên miền trùng lặp bị từ chối mới bị tính vào hạn ngạch, áp dụng cho mỗi bên ủy quyền. Các lần tạo thành công không bao giờ bị trừ vào hạn ngạch này — vì vậy quý khách có thể khởi tạo hàng loạt cả ngày, và hành vi thăm dò sẽ bị chặn lại gần như ngay lập tức.

  • Cấu trúc phản hồi lỗi đồng nhất cho mọi sự cố: một mã, một thông báo dễ hiểu, các chi tiết cấp trường tùy chọn và request_id mà quý khách có thể gửi cho bộ phận hỗ trợ. Lỗi xác thực sẽ trả về 422 cùng với tên của các trường vi phạm.
  • Khóa lũy đẳng (idempotency key) trên POST, với bản ghi phát lại được ghi khi xác nhận (commit) thay vì nội dòng — do đó, việc thử lại không bao giờ có thể phát lại mã 201 đã lưu vào bộ nhớ đệm vốn chỉ đến một hàng chưa từng được xác nhận. Một yêu cầu không thành công sẽ giải phóng khóa đang xử lý ngay lập tức, vì vậy mã 422 không khóa lần thử lại đã sửa của bạn.
  • Phân trang bằng con trỏ dưới dạng keyset trên UUIDv7 — ổn định khi ghi đồng thời, không bị trôi trang khi các hàng được chèn vào giữa quá trình quét.
  • RateLimit-Remaining trên các phản hồi, để client được tạo có thể giảm tần suất gửi yêu cầu một cách thông minh thay vì phải đoán.
  • Các tài nguyên nằm ngoài phạm vi sẽ trả về lỗi 404 thay vì 403 — lỗi 403 sẽ xác nhận rằng tài nguyên đó tồn tại. Việc lọc theo một tổ chức nằm ngoài phạm vi của quý vị cũng trả về một trang trống vì lý do tương tự.
  • Việc tạo trang web là đăng ký, không phải cung cấp tài nguyên: POST /v1/sites trả về 201 với status pending và không bao giờ chặn quá trình xây dựng. Sự kiện được ghi vào hộp thư đi giao dịch trong cùng một giao dịch với hàng, vì vậy trang web chỉ tồn tại khi và chỉ khi việc cung cấp tài nguyên cho trang web đó được đảm bảo sẽ được yêu cầu.

Các SDK, một CLI và một nhà cung cấp Terraform

Ba đối tượng sử dụng cùng một thông số kỹ thuật, cho ba cách làm việc khác nhau.

SDK máy khách

Được tạo cho TypeScript, Python, PHP và Go, theo dõi đặc tả để một điểm cuối mới xuất hiện trong ngôn ngữ của bạn mà không cần đợi một wrapper viết thủ công.

Zinnector®, CLI

Tạo khung cho một trang web WordPress, chạy cục bộ mà không cần cài đặt gì ngoài Node, và triển khai trang web đó. Zinnector® kiểm tra trước dự án của bạn đối với vị trí mà bạn sắp triển khai — phiên bản PHP, dung lượng ổ đĩa, số lượng tệp — và đưa ra cảnh báo trước khi bạn đẩy lên thay vì sau đó. Công cụ này cũng thực hiện đăng nhập, liệt kê các trang web, triển khai, quản lý miền và DNS, đọc các dịch vụ thư, sao lưu, chạy các lệnh WP-CLI trong danh sách cho phép, theo dõi nhật ký theo thời gian thực và kích hoạt các thao tác hàng loạt. Miễn phí, được cấp phép MIT và được xây dựng trên cùng một API công khai này.

Nhà cung cấp Terraform

Quản lý các trang web, tên miền, bản ghi DNS, hộp thư và các gói dịch vụ dưới dạng cơ sở hạ tầng dưới dạng mã (infrastructure as code). Lệnh terraform apply sẽ cung cấp dịch vụ lưu trữ, và môi trường của quý khách sẽ có thể tái tạo cũng như xem xét lại thay vì là một chuỗi các lần nhấp chuột không ai ghi chép lại.

Tài liệu tham khảo tương tác

Tài liệu được tạo mà bạn có thể đọc và gọi từ trình duyệt, mô tả chính xác các điểm cuối mà máy chủ triển khai — vì cả hai đều xuất phát từ cùng một đặc tả.

Webhook vẫn duy trì ngay cả khi điểm cuối của quý vị ngừng hoạt động

Đằng sau nền tảng là một xương sống sự kiện bền vững: mỗi thay đổi trạng thái sẽ ghi một sự kiện vào outbox giao dịch trong Postgres, mang tính nguyên tử cùng với thay đổi cơ sở dữ liệu, và một bộ chuyển tiếp sẽ xuất bản sự kiện đó tới NATS JetStream. Các sự kiện được định kiểu và tạo phiên bản — site.deployed, order.paid, invoice.overdue, backup.completed, abuse.flagged, trial.ending và các sự kiện khác.

Đăng ký theo dõi những nội dung bạn quan tâm

Đăng ký điểm cuối dưới dạng WebhookSubscription và chọn các loại sự kiện mà điểm cuối đó nhận được. Một luồng duy nhất cung cấp cho thông báo, phân tích, tự động hóa cũng như tích hợp của bạn — bạn đang sử dụng cùng các sự kiện mà chúng tôi sử dụng.

Đã ký bằng HMAC

Mỗi lần gửi đều được ký HMAC để quý khách có thể xác minh rằng dữ liệu đến từ chúng tôi trước khi thực hiện hành động.

Đã thử lại với thời gian chờ lùi và đã ghi nhật ký

Các lượt gửi không thành công sẽ được thử lại với khoảng thời gian lùi dần và mỗi lần thử được ghi lại dưới dạng một WebhookDelivery. Quý khách có thể kiểm tra và phát lại các lượt gửi từ bảng điều khiển thay vì gửi email cho bộ phận hỗ trợ để hỏi chúng tôi đã gửi những gì.

Ít nhất một lần, vì vậy hãy loại bỏ trùng lặp theo id

Đường ống được chủ ý thiết kế theo dạng ít nhất một lần (at-least-once) thay vì giả vờ là đúng một lần (exactly-once). Một relay bị dừng giữa lúc phát hành sẽ bị hết hạn hợp đồng giữ chỗ và các sự kiện của nó sẽ được phát hành lại. Hãy khử trùng lặp theo envelope id và consumer của bạn sẽ chính xác theo thiết kế.

Đưa mã lên trang web

API chỉ là một nửa câu chuyện của nhà phát triển. Nửa còn lại là phát hành sản phẩm.

  • Kết nối GitHub, GitLab hoặc Bitbucket qua OAuth, với các khóa triển khai được lưu giữ trong kho lưu trữ thông tin xác thực — chứ không phải trong tệp cấu hình.
  • Thao tác push sẽ kích hoạt quy trình xây dựng và triển khai, với việc ánh xạ nhánh tới môi trường (main sang production, staging sang staging) cùng các bước xây dựng theo từng ngăn xếp dành cho composer và npm.
  • Quay lại bản phát hành trước khi quá trình triển khai gặp sự cố.
  • Nhân bản thử nghiệm và đưa lên trực tiếp, giúp thay đổi được kiểm chứng trong môi trường thực tế trước khi đến với khách truy cập.
  • SFTP cho mỗi trang web dưới sự cô lập của CageFS, nhờ đó mỗi người thuê chỉ nhìn thấy các tệp của riêng họ, cùng với shell SSH bị giới hạn (jailed) trên nền tảng dùng chung.
  • wp-cli từ terminal của bảng điều khiển và qua SSH.
  • VS Code trong trình duyệt thông qua code-server — một trình soạn thảo hoàn chỉnh có git, chỉnh sửa trực tiếp các tệp của trang web.
  • Phiên bản PHP cho từng trang, cài đặt PHP có thể chỉnh sửa, tiện ích mở rộng cho từng trang, biến môi trường và cron thực tế song song với WP-cron.

Bốn cách để làm việc trên một trang web

API là một cánh cửa. Đây là bốn cánh cửa còn lại, và mỗi cánh cửa đều được bao gồm trong gói dịch vụ thay vì bán dưới dạng cấp độ dành cho nhà phát triển.

Trình chỉnh sửa web

VS Code trong trình duyệt, được mở từ trang web trong bảng điều khiển, chỉnh sửa các tệp thực của trang web đó với git tích hợp sẵn và toàn bộ trình chỉnh sửa bên trong cùng một môi trường cô lập CageFS như quyền truy cập SFTP của quý khách. Nó chỉnh sửa trang web TRỰC TIẾP — không có bản sao thử nghiệm ở giữa, vì vậy tệp quý khách lưu sẽ được công khai ngay khi được ghi, mặc dù tệp tĩnh có thể tiếp tục phân phối từ bộ nhớ đệm CDN tối đa bốn giờ.

Zinnector®, CLI

Miễn phí, được cấp phép theo MIT và được xây dựng trên cùng một API công khai này. Khởi tạo cấu trúc trang web WordPress, chạy trang đó trên máy của quý vị, kiểm tra trước khi triển khai với vị trí quý vị sắp triển khai — phiên bản PHP, dung lượng ổ đĩa, số lượng tệp — và tiến hành triển khai. Yêu cầu Node 24 hoặc mới hơn.

Máy chủ MCP

Một danh mục công cụ duy nhất, để ứng dụng AI bạn đang dùng có thể hoạt động trên các trang web của bạn thông qua cùng API và các quyền hạn giống như bảng điều khiển sử dụng. Cùng một máy chủ mà ứng dụng của bạn kết nối đến cũng chính là máy chủ được kết nối vào trình biên tập web. Chỉ đọc cho đến khi bạn có chỉ định khác.

Quyền truy cập của nhà phát triển theo từng trang web

Công việc của khách hàng không cần mật khẩu của quý vị. Hãy mời ai đó qua địa chỉ email và họ sẽ chỉ nhận được đúng một trang web: họ đăng nhập với tư cách cá nhân, có vai trò người xem, người chỉnh sửa hoặc người quản lý, và mọi trang web khác đều trả về lỗi 404 trước khi bất kỳ trình xử lý nào chạy — một chính sách bảo mật cấp hàng của Postgres và một hàng rào cấp yêu cầu, không phải một lần kiểm tra duy nhất. Chủ tài khoản cấp và thu hồi quyền đó chỉ bằng một cú nhấp chuột, có hiệu lực ngay trong yêu cầu tiếp theo của họ.

Và cùng một API mà tác nhân AI của quý vị có thể sử dụng

Chúng tôi cung cấp nền tảng dưới dạng một máy chủ MCP được lưu trữ: một bộ điều hợp giao thức tinh gọn trên API của công cụ nhằm tái sử dụng cùng một danh mục hành động, RBAC và nhật ký kiểm toán. Hãy kết nối Claude Code, Cursor, ChatGPT, Claude Desktop hoặc bất kỳ máy khách nào hỗ trợ MCP một lần, và mọi tính năng chúng tôi thêm vào API sẽ tự động khả dụng cho ứng dụng đó.

Tác nhân nhận được ba điều: Công cụ (cùng các điểm cuối API, không có logic song song bị sai lệch), Tài nguyên (tình trạng trang web chỉ đọc, cấu hình, nhật ký gần đây, chỉ số, thời gian hoạt động và các bài viết KB, để nó chẩn đoán bằng dữ liệu thực trước khi hành động) và Lời nhắc (các mẫu quy trình làm việc đã xuất bản chẳng hạn như "chẩn đoán trang web này" hoặc "chuẩn bị di chuyển").

Vấn đề an toàn cũng tương tự như xác thực: OAuth 2.1, các mã thông báo được liên kết với tổ chức của quý vị và quyền RBAC có áp dụng bảo mật cấp hàng, được giới hạn phạm vi và có thể thu hồi theo từng công cụ, cùng môi trường thử nghiệm (sandbox) tách biệt khỏi môi trường sản xuất. Các tác vụ có tính phá hủy — xóa, tạm ngưng, thanh toán, chi tiêu lớn — yêu cầu xác nhận rõ ràng hoặc chính sách phê duyệt từ con người. Giới hạn tần suất và hạn mức chi tiêu kiểm soát các tác vụ trả phí do AI kích hoạt, và mọi lệnh gọi MCP đều được ghi nhật ký kiểm toán cùng với danh tính, công cụ, đối số và kết quả.

Chúng tôi hỗ trợ giao thức thay vì tích hợp từng ứng dụng một, điều này có nghĩa là lựa chọn công cụ AI của quý vị có thể thay đổi mà không làm thay đổi tích hợp lưu trữ kèm theo.

Câu hỏi thường gặp

API công khai có giống với API mà bảng điều khiển sử dụng không?

Vâng — đó là cùng một API công cụ, đã được phát hành và tăng cường bảo mật. Bảng điều khiển, bảng điều khiển quản trị, CLI, nhà cung cấp Terraform, máy chủ MCP và webhook đều là những thành phần sử dụng chung một giao diện, đó là lý do tại sao API không bị tụt lại phía sau bảng điều khiển.

Tôi có thể thử nghiệm tích hợp mà không tốn tiền hoặc không cần xây dựng máy chủ thực tế không?

Có. Các khóa sandbox được cấp riêng biệt với các khóa production và hoạt động ở chế độ thử nghiệm: không tính phí thực tế và không cung cấp dịch vụ thực tế. Hãy trỏ CI của quý vị tới các thông tin xác thực sandbox và thử nghiệm toàn bộ chu trình yêu cầu và phản hồi một cách an toàn.

Làm cách nào để ngăn một lần thử lại tạo ra hai bản sao của một thứ gì đó?

Hãy gửi Idempotency-Key trên yêu cầu POST của quý vị. Bản ghi phát lại được ghi khi commit thay vì inline, vì vậy việc thử lại không bao giờ có thể phát lại thành công đã lưu trong bộ nhớ đệm cho một hàng chưa thực sự được commit, và một yêu cầu thất bại sẽ giải phóng khóa ngay lập tức để lần thử lại đã sửa của quý vị không bị trì hoãn. Việc phân phối Webhook được thiết kế theo cơ chế ít nhất một lần (at-least-once) — vui lòng khử trùng lặp theo envelope id ở phía quý vị.

Tôi có thể cấp quyền truy cập cho một khóa API vào tất cả các tổ chức khách hàng của mình không?

Hôm nay thì không. Khóa API được cấp theo từng tổ chức, vì vậy việc tích hợp trải rộng trên nhiều tổ chức khách hàng sẽ giữ một khóa cho mỗi tổ chức. Quyền cũng được kiểm tra theo từng tổ chức đối với người dùng chính: việc sở hữu sites.create trong một tổ chức không cấp quyền truy cập trong một tổ chức riêng biệt, không liên quan, mặc dù quyền này áp dụng cho các tổ chức lồng nhau bên dưới tổ chức đó. Điều này là có chủ đích — nó giới hạn khóa bị xâm phạm trong phạm vi tổ chức của chính nó và các tổ chức con bên dưới nó, chứ không phải toàn bộ nền tảng.

Vai trò Nhà phát triển tích hợp sẵn thực sự cho phép những gì?

Vai trò dev bao gồm xem thông tin tổ chức, quản lý khóa API, xem và tạo trang web, khởi động lại trang, xóa bộ nhớ cache, cũng như xem và phản hồi yêu cầu hỗ trợ. Vai trò này chủ ý loại trừ quyền kiểm soát thanh toán. Xin lưu ý rằng các quyền triển khai (deploy) và đẩy lên môi trường trực tiếp (push-to-live) không thuộc vai trò này — nếu một thành viên trong nhóm cần những quyền đó, hãy chỉ định một vai trò có chứa chúng thay vì cho rằng Developer là vai trò kỹ thuật rộng nhất.

Điều gì sẽ xảy ra với webhook của tôi nếu điểm cuối của tôi ngừng hoạt động trong một giờ?

Các lượt gửi sẽ được thử lại với độ trễ tăng dần và mỗi lần thử đều được ghi lại dưới dạng một WebhookDelivery mà quý vị có thể kiểm tra. Ở thượng nguồn, các sự kiện được ghi vào hộp thư đi giao dịch (transactional outbox) trong cùng một giao dịch cơ sở dữ liệu với chính thay đổi đó, do đó không có gì bị mất trong khi người tiêu thụ không khả dụng — người tiêu thụ bị ngừng hoạt động sẽ chỉ bị chậm lại, nó không bao giờ làm gián đoạn nhà sản xuất, và quý vị có thể phát lại các lượt gửi từ bảng điều khiển sau khi đã hoạt động trở lại.

Chi phí để bắt đầu xây dựng dựa trên nó là bao nhiêu?

Bắt đầu dùng thử Footprint-Free Hosting 14 ngày không cần thẻ — không cần thông tin thanh toán, hỗ trợ tối đa 5 trang web. Các gói Footprint-Free trả phí bắt đầu từ $6/tháng cho PBN 5. Mọi gói cước đều có chính sách hoàn tiền trong 30 ngày, di chuyển trang web miễn phí và không bị ràng buộc nhà cung cấp.

Đọc thông số kỹ thuật, sau đó xây dựng dựa trên thông số đó

API ưu tiên đặc tả, các SDK được tạo tự động, CLI, nhà cung cấp Terraform, webhook có chữ ký và máy chủ MCP — trên nền tảng lưu trữ mà chúng tôi đã xây dựng cho hơn 700.000 trang web trên toàn thế giới. Bắt đầu với bản dùng thử 14 ngày không cần thẻ, không cần thông tin thanh toán.

Bắt đầu miễn phí

Các plugin WordPress mà tác giả trí tuệ nhân tạo của bạn có thể làm việc cùng

Mỗi plugin này biến trang web WordPress của bạn thành một MCP server, nhờ đó Claude, Cursor, VS Code và các trợ lý AI khác có thể thực hiện công việc thực tế trên đó, đăng nhập bằng tài khoản của bạn và bị giới hạn ở những gì bạn được phép làm.

Tất cả tài liệu MCP và API dành cho nhà phát triển →