Cài đặt
Yêu cầu
- Để dùng trong Node.js, cần Node.js
>= 22.12.0(được khai báo trong trườngenginescủa gói). - Tài liệu OpenAPI đã phân tích thành đối tượng JavaScript, không phải chuỗi JSON/YAML thô.
- Trình duyệt hiện đại có Fetch API để sử dụng trong trình duyệt.
Gói cung cấp bản dựng ESM (dist/index.js) và CommonJS (dist/index.cjs) kèm khai báo TypeScript. Gói không có phụ thuộc lúc chạy.
npm
npm install @powerduck/openapi-codegen
pnpm
pnpm add @powerduck/openapi-codegen
Yarn
yarn add @powerduck/openapi-codegen
Dùng trong Node.js
import { generate } from "@powerduck/openapi-codegen";
CommonJS:
const { generate } = require("@powerduck/openapi-codegen");
Các bộ sinh mã tích hợp được đăng ký tự động khi nhập mô-đun, nên generate dùng được ngay mà không cần thiết lập thêm.
Dùng trong trình duyệt
Thư viện hoàn toàn tương thích với trình duyệt và không dùng mô-đun tích hợp của Node.js. Tải từ CDN ESM rồi gọi trực tiếp:
<script type="module">
import { generate, list } from "https://esm.sh/@powerduck/openapi-codegen";
const document = {
openapi: "3.1.0",
info: { title: "Example API", version: "1.0.0" },
servers: [{ url: "https://api.example.com" }],
paths: {
"/hello": { get: { responses: { "200": { description: "OK" } } } },
},
};
const code = generate({
document,
path: "/hello",
method: "get",
language: "javascript",
client: "fetch",
});
console.log(code);
</script>
Vite, esbuild và webpack cũng dùng được ngay; bản dựng ESM hỗ trợ tree shaking để loại bỏ mã không sử dụng.
Truyền tài liệu
Truyền một đối tượng đã phân tích. Với JSON:
import { readFile } from "node:fs/promises";
const document = JSON.parse(await readFile("./openapi.json", "utf8"));
Với YAML, trước tiên hãy phân tích bằng một gói YAML riêng:
import YAML from "yaml";
const document = YAML.parse(await readFile("./openapi.yaml", "utf8"));
Cấu trúc gói
| Điểm vào | Đường dẫn |
|---|---|
| Điểm vào ESM | dist/index.js |
| Điểm vào CommonJS | dist/index.cjs |
| Định nghĩa kiểu | dist/index.d.ts |
Không có chương trình CLI; thư viện chỉ được sử dụng từ mã.
Bước tiếp theo
- Bắt đầu nhanh — tạo đoạn mã đầu tiên.
- Cấu hình — tất cả tùy chọn sinh mã.