Công cụ kiểm tra OpenAPI 3.1

Dán tài liệu OpenAPI 3.1 ở dạng JSON hoặc YAML để kiểm tra cấu trúc cấp cao nhất. Công cụ tìm trường openapi, đối tượng info có title và version, cùng đối tượng paths. Đây là kiểm tra cấu trúc, nên nó không xác thực các từ khóa schema của 3.1, và một số mẫu thân thiện với 3.1 có thể tạo ra cảnh báo hoặc lỗi mà bạn cần biết.

Cách kiểm tra tài liệu 3.1

  1. 1

    Dán đặc tả 3.1 của bạn

    Dán tài liệu có `openapi: 3.1.0` (hoặc giá trị 3.1.x khác) vào ô nhập, dưới dạng JSON hoặc YAML.

  2. 2

    Chạy kiểm tra

    Chuyển sang bước kết quả để xem các lỗi và cảnh báo.

  3. 3

    Đọc ghi chú về 3.1

    Kiểm tra xem mục bị đánh dấu là lỗi thật hay là một trong các mẫu 3.1 được mô tả bên dưới.

  4. 4

    Tiếp tục bằng linter đầy đủ

    Khi cấu trúc đã đúng, hãy dùng bộ xác thực đầy đủ cho các quy tắc JSON Schema 2020-12.

Công cụ xử lý các tệp 3.1 như thế nào

Phiên bản 3.1 đồng bộ các schema với JSON Schema 2020-12. Bộ xác thực này hoàn toàn không đọc bên trong schema. Nó chỉ kiểm tra cấp cao nhất và các mục đường dẫn, nên các tính năng schema của 3.1 như mảng kiểu hay const ở đây không được xem là đạt hay không đạt. Giá trị phiên bản cũng không được kiểm tra: mọi trường openapi đều được coi là có mặt.

Hai mẫu 3.1 cần lưu ý

Mẫu trong tệp 3.1 của bạn Công cụ báo cáo
Đối tượng webhooks và không có đối tượng paths Lỗi: Missing ‘paths’ object.
Thao tác trace nằm dưới một đường dẫn Cảnh báo: Unknown method ‘trace’ on the path
$ref làm khóa của một mục đường dẫn Cảnh báo: Unknown method ‘$ref’ on the path

OpenAPI 3.1 cho phép tài liệu chỉ mô tả webhooks và bỏ qua paths. Công cụ này bắt buộc có paths, nên một tệp như vậy bị báo lỗi dù đặc tả cho phép. Thêm một đối tượng paths: {} rỗng sẽ đáp ứng kiểm tra.

Danh sách phương thức được dùng ở đây gồm get, post, put, patch, delete, head, options, cộng với parameters, summary, description và servers. Phương thức trace có trong đặc tả nhưng không có trong danh sách này, nên nó tạo ra cảnh báo mà bạn có thể bỏ qua nếu đó là chủ đích. Cảnh báo không làm tài liệu trở nên không hợp lệ.

Ví dụ minh họa

openapi: 3.1.0
info:
  title: Events API
  version: 2.0.0
webhooks:
  newEvent:
    post:
      summary: Event delivered

Kết quả: một lỗi, “Missing ‘paths’ object.” Thêm paths: {} và cấu trúc sẽ đạt.

Khi nào nên dùng công cụ này và khi nào cần làm thêm

Dùng trang này để xác nhận tệp 3.1 có đúng cấu trúc trước khi bạn mở pull request hoặc chia sẻ với đối tác. Các kiểm tra diễn ra nhanh và thông báo rõ ràng. Khi cấu trúc đã đúng, các quy tắc schema 3.1 vẫn cần một linter đầy đủ, vì phần lớn lỗi thực tế nằm ở đó: khai báo kiểu không hợp lệ, tham chiếu bị hỏng và thiếu định nghĩa phản hồi. Hãy coi hai bước này là bổ trợ cho nhau, không phải lựa chọn thay thế.

Nếu một cảnh báo được đánh dấu là chủ đích, chẳng hạn trace, hãy ghi chú trong pull request để người review không phải thắc mắc. Cảnh báo không bao giờ thay đổi kết quả hợp lệ, nên có thể giữ nguyên. Lỗi mới là những mục cần xử lý trước khi chia sẻ tệp.

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

Không. Nó không xem bên trong các đối tượng schema, nên các từ khóa JSON Schema 2020-12 không được kiểm tra. Nó chỉ bao phủ cấu trúc cấp cao nhất và các mục đường dẫn.

Kiểm tra yêu cầu một đối tượng paths. Tệp 3.1 chỉ có webhooks không có đối tượng này, nên công cụ báo lỗi thiếu paths. Thêm paths: {} rỗng để vượt qua.

Không. Công cụ chỉ kiểm tra trường openapi hoặc swagger có tồn tại hay không, không kiểm tra giá trị của nó.

Không nhất thiết. trace là một thao tác hợp lệ trong đặc tả. Công cụ chỉ không đưa nó vào danh sách phương thức đã biết.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác

Hướng dẫn và trường hợp sử dụng