API Catalog — /.well-known/api-catalog (RFC 9727) và Link header
Tóm tắt
API catalog là một tệp tại /.well-known/api-catalog, liệt kê các API công khai của website dưới dạng linkset (RFC 9264): với mỗi API, bản mô tả máy đọc được (service-desc), tài liệu (service-doc) và trang trạng thái nằm ở đâu. RFC 9727 (chuẩn IETF, tháng 6/2025) quy định đường dẫn, định dạng và media type application/linkset+json. Một Link header có rel="api-catalog" chỉ cho agent tới tệp này từ bất kỳ trang nào.
Giải thích đơn giản
Tòa nhà văn phòng lớn có bảng chỉ dẫn ở sảnh: công ty nào ở tầng nào. API catalog là tấm bảng đó cho các API của website, luôn treo ở cùng một chỗ (/.well-known/api-catalog), để robot đến thăm không phải dò từng hành lang.
Tệp (RFC 9727 §4, Phụ lục A):
GET /.well-known/api-catalog
Content-Type: application/linkset+json; profile="https://www.rfc-editor.org/info/rfc9727"
{"linkset": [
{"anchor": "https://example.com/api",
"service-desc": [{"href": "https://example.com/openapi.json", "type": "application/json"}],
"service-doc": [{"href": "https://example.com/docs/api", "type": "text/html"}],
"status": [{"href": "https://example.com/api/health"}]}
]}
Những quy tắc quan trọng:
- linkset là thành phần duy nhất ở cấp cao nhất và là một mảng; giá trị của mỗi quan hệ là một mảng các đối tượng có href (RFC 9264 §4.2).
- Các quan hệ lấy từ RFC 8631: service-desc (OpenAPI hoặc bản mô tả máy đọc được khác), service-doc (tài liệu cho người đọc), service-meta (chính sách, điều khoản), status (tình trạng hoạt động). Catalog ngắn có thể liệt kê API bằng liên kết item; catalog lớn có thể trỏ tới các catalog con bằng api-catalog.
- Media type BẮT BUỘC là application/linkset+json. Định dạng khác (APIs.json, một tệp OpenAPI trần, JSON tự đặt) chỉ được phục vụ thêm qua content negotiation — không bao giờ thay cho linkset.
- Yêu cầu HEAD tới đường dẫn này trả về Link header có rel="api-catalog" (§2).
Link header (RFC 8288) mang cùng con trỏ đó trên mọi trang: Link: </.well-known/api-catalog>; rel="api-catalog". Chỉ các quan hệ đã đăng ký mới có nghĩa với agent — api-catalog, service-desc, service-doc, describedby, hoặc alternate dạng text/markdown. preconnect, preload và shortlink là gợi ý cho trình duyệt và CMS; các tên tự đặt như mcp-server hay agent-skills không có trong danh mục IANA.
⚡Tại sao quan trọng
Một AI agent cần gọi API của bạn (đặt chỗ, kiểm tra tồn kho, chạy một lượt quét) phải tìm được bản mô tả trước. Không có catalog, nó phải đoán URL hoặc đọc tài liệu HTML. Catalog chỉ là một tệp nhỏ, là chuẩn IETF chứ không phải định dạng riêng của một hãng, và ít tốn công cập nhật. Website không có API công khai thì không cần — vì vậy kiểm tra này chỉ ở mức thấp.
🔍CiteStat kiểm tra thế nào
CiteStat kiểm tra hai việc. Link header: đạt khi Link header của trang có ít nhất một quan hệ đã đăng ký dành cho agent (api-catalog, service-desc, service-doc, service-meta, describedby, hoặc alternate dạng text/markdown); header chỉ có gợi ý trình duyệt hoặc tên chưa đăng ký là lỗi mức thấp. API catalog: tải /.well-known/api-catalog (hoặc đích của Link rel="api-catalog"); đạt khi đó là linkset hợp lệ, phục vụ với application/linkset+json, liệt kê ít nhất một API. JSON tự đặt, linkset không có liên kết API, hoặc không phải JSON là lỗi mức trung bình; linkset hợp lệ nhưng sai media type là mức thấp. Một trang HTML tại đường dẫn này được tính là không có catalog.
Điểm CiteStat
Hai trong 9 check chính của thẻ Agent Readiness (điểm = số check chính đạt / 9 × 10). Không làm thay đổi điểm SEO tổng.
Độ khó sửa
Biên tập viên: Khó | Lập trình viên: Dễ | AI Agent: Trung bình