ตัวตรวจสอบ OpenAPI JSON

วางเนื้อหาของไฟล์ openapi.json หรือ swagger.json แล้วรับผลการตรวจโครงสร้างภายในไม่กี่วินาที ตัวตรวจสอบยืนยันว่า JSON อ่านได้ มีฟิลด์ version, info มี title และ version, และมี paths จากนั้นจะเตือนชื่อพาธที่ผิดปกติและคีย์การดำเนินการที่ไม่รู้จัก

วิธีตรวจไฟล์ OpenAPI JSON

  1. 1

    คัดลอกไฟล์

    เปิด `openapi.json` แล้วคัดลอกเอกสารทั้งหมด ตั้งแต่วงเล็บปีกกาเปิดจนถึงวงเล็บปีกกาปิด

  2. 2

    วางลงในช่องกรอก

    วางลงในช่องเอกสาร OpenAPI / Swagger ไม่จำเป็นต้องลบช่องว่างหรือจัดรูปแบบใหม่

  3. 3

    เริ่มการตรวจ

    ไปยังขั้นตอนผลลัพธ์เพื่อเรียกใช้การตรวจสอบ

  4. 4

    แก้ไขและทำซ้ำ

    แก้ไขไฟล์ตามข้อผิดพลาดแต่ละรายการ วางใหม่ แล้วเรียกการตรวจอีกครั้งจนรายงานไม่แสดงข้อผิดพลาด

ข้อผิดพลาด JSON ที่พบบ่อยซึ่งทำให้การตรวจล้มเหลว

JSON เข้มงวดกว่า YAML ดังนั้นความล้มเหลวส่วนใหญ่ในไฟล์ที่แก้ด้วยมือมาจากไวยากรณ์ ไม่ใช่จากการออกแบบ API สาเหตุที่พบบ่อยได้แก่ เครื่องหมายจุลภาคท้ายสุดหลังพร็อพเพอร์ตี้สุดท้าย, การใช้เครื่องหมายคำพูดเดี่ยวแทนคู่, คอมเมนต์ (JSON ไม่อนุญาต) หรือการลืมปิดวงเล็บปีกกาหลังอ็อบเจกต์ paths ที่ยาว ไฟล์ที่เสียมักจบด้วยข้อความ “Could not parse as JSON or YAML” หรือมีข้อผิดพลาดของฟิลด์ที่หายไป เพราะไม่มีเนื้อหาที่ใช้ได้ถูกอ่านเข้ามา

หากเห็นเพียงข้อผิดพลาดการแยกวิเคราะห์ ให้หาความผิดพลาดของไวยากรณ์ก่อน การตรวจโครงสร้างจะทำงานเมื่อเอกสารถูกอ่านเป็นอ็อบเจกต์ได้แล้วเท่านั้น

ตัวอย่างการทำงาน

ลองดูเอกสารขนาดเล็กนี้

{
  "openapi": "3.0.3",
  "info": { "title": "Orders API" },
  "paths": {
    "orders": { "get": { "summary": "List orders" } }
  }
}

เอกสารนี้แยกวิเคราะห์ได้ และมีฟิลด์ openapi กับอ็อบเจกต์ paths อยู่ครบ แต่รายงานยังคงแสดง:

สิ่งที่พบ ชนิด เหตุผล
info.version is required. ข้อผิดพลาด info มี title แต่ไม่มี version
Path ‘orders’ should start with ‘/’. คำเตือน คีย์ของพาธไม่ได้ขึ้นต้นด้วยเครื่องหมายทับ

เนื่องจากมีข้อผิดพลาดหนึ่งรายการ เอกสารนี้จึงไม่ถูกระบุว่าถูกต้อง ให้เพิ่ม "version": "1.0.0" ใน info และเปลี่ยนคีย์เป็น /orders การรันครั้งที่สองจะล้างทั้งสองรายการ

การผ่านการตรวจหมายความว่าอะไร และไม่ได้หมายความว่าอะไร

รายงานที่ไม่มีข้อผิดพลาดหมายความว่าโครงร่างถูกต้อง แต่ไม่ได้ตามลิงก์ $ref ไม่ได้ตรวจสคีมา และไม่ได้ยืนยันว่าทุกการดำเนินการมีการตอบกลับ ให้มองว่าเป็นด่านตรวจอย่างรวดเร็วก่อนบันทึกไฟล์ แล้วจึงใช้ลินเตอร์ฉบับเต็มสำหรับกฎที่ลึกกว่า

ขั้นตอนการทำงานที่ใช้ได้จริงสำหรับสเปค JSON

เก็บสเปคไว้ในระบบควบคุมเวอร์ชัน และวางที่นี่ก่อนทุก commit ที่แตะ paths เนื่องจากการตรวจทำได้รวดเร็ว จึงเป็นขั้นตอนตรวจความสมบูรณ์หลังการรวมการเปลี่ยนแปลงจากหลายคน ซึ่งเป็นช่วงที่มีแนวโน้มเกิดคีย์ซ้ำหรือวงเล็บที่อยู่ผิดที่มากที่สุด หาก JSON ของคุณถูกสร้างโดยสคริปต์บิลด์ ให้วางผลลัพธ์ที่สร้างแล้วแทนเทมเพลต เพื่อทดสอบสิ่งที่ผู้อ่านจะได้รับจริง เมื่อรายงานไม่มีข้อผิดพลาด คุณก็สามารถแชร์ไฟล์หรือส่งให้เครื่องมือสร้างเอกสารได้อย่างมั่นใจมากขึ้นว่าโครงสร้างระดับบนสุดมั่นคง

คำถามที่พบบ่อย

ไม่จำเป็น ช่องว่างและการย่อหน้าไม่มีผลต่อผลลัพธ์ วางไฟล์ตามที่เป็นอยู่ได้เลย

JSON มาตรฐานไม่อนุญาตให้มีเครื่องหมายจุลภาคหลังรายการสุดท้ายของอ็อบเจกต์หรืออาร์เรย์ เอกสารจึงอ่านเป็น JSON ไม่ได้ ให้ลบเครื่องหมายจุลภาคออกแล้วตรวจใหม่

ได้ การตรวจเวอร์ชันยอมรับได้ทั้งฟิลด์ openapi และฟิลด์ swagger ดังนั้นไฟล์ JSON ของ Swagger 2.0 และ OpenAPI 3.x จะผ่านการตรวจโครงสร้างแบบเดียวกัน

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

เครื่องมือที่เกี่ยวข้อง

ตัวสร้างการตั้งค่า Webpack

สร้าง webpack.config.js สำหรับ webpack 5 ทั้งแบบ JavaScript ล้วน React หรือ Vue พร้อม TypeScript, Babel, CSS หรือ Sass, รูปภาพ, HtmlWebpackPlugin, เซิร์ฟเวอร์สำหรับพัฒนา และคำสั่ง npm install

เครื่องแปลงฐานตัวเลข

แปลงตัวเลขระหว่างฐานสอง ฐานแปด ฐานสิบ ฐานสิบหก และฐานกำหนดเองตั้งแต่ 2 ถึง 36 พร้อมการแยกค่าประจำหลัก

ตัวแปลง Timestamp

แปลง timestamp ของ Unix ในหน่วยวินาทีหรือมิลลิวินาทีเป็นวันที่ที่อ่านง่ายในเขตเวลา UTC และเขตเวลาหลัก และแปลงวันที่กลับเป็นค่า epoch

อ้างอิงตัวอักษร HTML

รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ

ตารางอ้างอิง ASCII

ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL

เครื่องสุ่มที่อยู่

สร้างระเบียนคล้ายที่อยู่ 1–20 รายการสำหรับแบบจำลองและการทดสอบ ด้วยรูปแบบประเทศแบบย่อ

เครื่องมือนี้มีให้บริการในภาษาอื่น

คู่มือและกรณีการใช้งาน