FresherKỹ thuậtThiết kế API
OpenAPI là gì và một file mô tả API gồm những gì?
Thử trả lời trước
Đáp án mẫu
OpenAPI là chuẩn định dạng (YAML hoặc JSON), không phụ thuộc ngôn ngữ, để mô tả một HTTP API: endpoint, input, output và cơ chế bảo mật. Đây là hợp đồng máy đọc được giữa bên cung cấp và bên dùng API.
Một file gồm vài phần chính:
openapi: 3.1.0
info: { title: Orders API, version: 1.0.0 }
paths:
/orders/{id}:
get:
parameters:
- { name: id, in: path, required: true, schema: { type: string } }
responses:
"200":
description: The order
content:
application/json:
schema: { $ref: "#/components/schemas/Order" }
components:
schemas:
Order:
type: object
properties: { id: { type: string }, total: { type: number } }
paths liệt kê các operation cùng parameter, request body và response. components chứa schema và security scheme dùng lại được. OpenAPI 3.1 dùng JSON Schema 2020-12 cho schema.
Từ một file, tool sinh ra tài liệu tương tác, client SDK, mock server và bộ validate request, còn linter kiểm tra style. Hãy coi nó là nguồn sự thật, đừng viết sau cùng.
Ý chính
- Hợp đồng máy đọc được cho HTTP API, viết bằng YAML hoặc JSON
- paths mô tả operation, components chứa schema dùng lại
- Bản 3.1 đồng bộ schema với JSON Schema 2020-12
- Tool sinh tài liệu, SDK, mock và validator từ file này
Câu hỏi nối tiếp thường gặp
- Design-first và code-first khác nhau thế nào?
- Làm sao giữ spec và code luôn khớp nhau?
Lỗi thường gặp
- Viết spec một lần rồi không bao giờ cập nhật
- Nhầm OpenAPI với Swagger UI, vốn chỉ là một công cụ