dotsagent.io
ภาษา:ไทย
RFC 9727

เครื่องมือสร้าง API catalog

ระบุ API สาธารณะของคุณเพียงครั้งเดียว แล้วสร้าง JSON linkset ตามที่ RFC 9727 กำหนดให้ใช้ที่ /.well-known/api-catalog พร้อมบล็อก nginx สำหรับให้บริการด้วย media type ที่ถูกต้อง

API 1
/.well-known/api-catalog
{
  "linkset": [
    {
      "anchor": "https://api.example.com/v1",
      "service-desc": [
        {
          "href": "https://api.example.com/v1/openapi.json",
          "type": "application/openapi+json"
        }
      ],
      "service-doc": [
        {
          "href": "https://example.com/docs/api",
          "type": "text/html"
        }
      ],
      "status": [
        {
          "href": "https://status.example.com"
        }
      ]
    }
  ]
}
nginx
location = /.well-known/api-catalog {
    default_type application/linkset+json;
    add_header Link '</.well-known/api-catalog>; rel="api-catalog"';
    try_files /.well-known/api-catalog =404;
}

อัปโหลดไฟล์ไปที่ /.well-known/api-catalog แล้วให้บริการโดยใช้ application/linkset+json บล็อก nginx จะกำหนด type ดังกล่าวและเพิ่ม Link header ที่มี rel="api-catalog" ตามที่ RFC 9727 กำหนดสำหรับคำขอ HEAD

เหตุผลที่ควรเผยแพร่ API catalog

ก่อนเรียกใช้ API ของคุณ agent ต้องค้นหา API นั้นให้พบก่อน RFC 9727 ซึ่งเผยแพร่ในเดือนมิถุนายน 2025 กำหนดจุดเริ่มต้นที่แน่นอนสำหรับการค้นหานี้ นั่นคือ URL ที่รู้จักกันดี /.well-known/api-catalog พร้อมกับความสัมพันธ์ลิงก์ api-catalog ที่หน้าเว็บใดก็ใช้ชี้ไปยัง catalog ได้

catalog นี้เป็น linkset ในรูปแบบ JSON โดยแต่ละรายการจะอ้างอิง URL หลักของ API และลิงก์ไปยังคำอธิบายที่เครื่องอ่านได้ (service-desc ซึ่งมักเป็นไฟล์ OpenAPI), เอกสารสำหรับผู้ใช้ (service-doc) และหน้าสถานะ ไคลเอ็นต์จึงอ่านไฟล์ขนาดเล็กเพียงไฟล์เดียว แทนการไล่ค้นเอกสารของคุณ

RFC ระบุว่าคำตอบต้องใช้ application/linkset+json และควรมี profile https://www.rfc-editor.org/info/rfc9727 เรายังไม่มีข้อมูลว่า agent ใดบ้างที่ร้องขอไฟล์นี้ แต่คุณสามารถเผยแพร่เป็นไฟล์ static เพียงไฟล์เดียวได้

คำถามเกี่ยวกับ api-catalog

/.well-known/api-catalog คืออะไร

นี่คือตำแหน่งที่ RFC 9727 กำหนดไว้สำหรับรายการ API ขององค์กรในรูปแบบที่เครื่องอ่านได้ ไฟล์นี้เป็น JSON linkset ที่เชื่อม API แต่ละรายการกับคำอธิบาย เอกสาร และสถานะ ไคลเอ็นต์ค้นหาไฟล์นี้ได้โดยตรง หรือผ่านความสัมพันธ์ลิงก์ api-catalog

api-catalog ต้องใช้ Content-Type อะไร

RFC 9727 ระบุว่าต้องใช้ application/linkset+json และควรมีพารามิเตอร์ profile https://www.rfc-editor.org/info/rfc9727 บล็อก nginx ในหน้านี้กำหนด media type และ Link header ให้แล้ว หากการตั้งค่าเซิร์ฟเวอร์รองรับ ให้เพิ่มพารามิเตอร์ profile ด้วยตนเอง

ต้องมีไฟล์ OpenAPI เพื่อเผยแพร่ catalog หรือไม่

ไม่จำเป็น ในเครื่องมือนี้ แต่ละรายการต้องมีเพียง URL หลักของ API ส่วนลิงก์คำอธิบาย เอกสาร และสถานะเป็นตัวเลือก คำอธิบาย OpenAPI ช่วยให้ไคลเอ็นต์เรียนรู้ endpoint ของคุณได้โดยไม่ต้องอ่านข้อความ ดังนั้นควรเพิ่มเมื่อมีไฟล์นี้

api-catalog ต่างจาก llms.txt อย่างไร

api-catalog เป็น RFC ของ IETF ที่แสดงรายการ API ในรูปแบบลิงก์ JSON สำหรับซอฟต์แวร์ที่เรียกใช้ API ส่วน llms.txt เป็นข้อเสนอสำหรับดัชนีหน้าเว็บในรูปแบบ Markdown ซึ่งมุ่งให้ language model ใช้อ่านเอกสาร ทั้งสองอย่างไม่ซ้ำซ้อนกัน คุณจึงเผยแพร่ได้ทั้งคู่

แหล่งข้อมูล

  1. rfc-editor.org/rfc/rfc9727
  2. rfc-editor.org/rfc/rfc9264
  3. rfc-editor.org/rfc/rfc8631