# @mittwald/api-code-generator 中文文档

规范地址：https://npmcn.com/package/%40mittwald/api-code-generator/

版本：4\.509\.0
npm 元数据更新时间：2026-11-01T19:09:17.192Z
中文译文更新时间：2026-11-01T22:08:58.504Z
软件包许可：MIT

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40mittwald/api-code-generator
原文对照：https://npmcn.com/package/%40mittwald/api-code-generator/?lang=original
项目主页：https://github.com/mittwald/api-client-js#readme
源码仓库：https://github.com/mittwald/api-client-js

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：163 kB，158 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：26 个
- 首次发布：2024-03-08T12:44:46.327Z
- 最新版本发布：2026-11-01T19:09:16.887Z
- 已发布版本数：439（近 12 个月 374 个）

## 中文简介

使用的公共代码库 `@mittwald/api-client-*` 包中。

## 安装

```sh
npm install @mittwald/api-code-generator
```

也可以使用：`pnpm add @mittwald/api-code-generator`、`yarn add @mittwald/api-code-generator`、`bun add @mittwald/api-code-generator`

## README

使用的公共代码库 `@mittwald/api-client-*` 包中。

## 命令行界面

使用这个包提供的CLI命令来构建您的API客户端 验证openapi规范：

```shell
acg validate spec/openapi.json
acg generate --name MittwaldAPIV2 spec/openapi.json src/generated --optionalHeader x-access-token
```

## 打印稿API

如果你需要在代码中生成客户端，你可以使用TypeScript API 在这个模板中演示：

```typescript
import * as path from "path";
import { UniversalContentLoader } from "@mittwald/api-code-generator/js";
import { UniversalFileLoader } from "@mittwald/api-code-generator/js";
import { OpenApiSpec } from "@mittwald/api-code-generator/js";
import { CodeGenerationModel } from "@mittwald/api-code-generator/js";
import { prepareTypeScriptOutput } from "@mittwald/api-code-generator/js";
import { writeIfChangedAsync } from "@mittwald/api-code-generator/js";

const name = "MittwaldAPIV2";
const inout = `${process.cwd()}/spec/openapi.json`;
const output = `${process.cwd()}/src/generated`;

// Loading OpenAPI spec
const loader = new UniversalContentLoader(new UniversalFileLoader(input));
const openApiDoc = await loader.load();

// Parsing OpenAPI spec
const spec = await OpenApiSpec.parse(openApiDoc, {
  skipValidation: flags.skipValidation,
});

// Building transformation model
const model = CodeGenerationModel.fromDoc(name, spec.document);

// Generating descriptors
const descriptorsFileContent = model.paths.compileDescriptors();
await writeIfChangedAsync(
  path.join(output, "descriptors.ts"),
  await prepareTypeScriptOutput(descriptorsFileContent),
);

// Generating types
const typesFileContent = await model.compileTypes({
  rootNamespace: flags.name,
  optionalHeaders: ["x-access-token"],
});
await writeIfChangedAsync(
  path.join(output, "types.ts"),
  await prepareTypeScriptOutput(typesFileContent),
);

// Generating client
const clientFileContent = model.paths.compileClient();
await writeIfChangedAsync(
  path.join(output, "client.ts"),
  await prepareTypeScriptOutput(clientFileContent),
);

// if needed: Generating React client
const reactClientFileContent = model.paths.compileReactClient();
await writeIfChangedAsync(
  path.join(output, "client-react.ts"),
  await prepareTypeScriptOutput(reactClientFileContent),
);
```

## 常见问题

### @mittwald/api-code-generator 是什么？

使用的公共代码库 @mittwald/api-client-\* 包中。

### 如何安装 @mittwald/api-code-generator？

在项目目录运行 npm install @mittwald/api-code-generator，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 acg，可以用 npx acg 直接运行。

### @mittwald/api-code-generator 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @mittwald/api-code-generator 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @mittwald/api-code-generator 可以商用吗？

@mittwald/api-code-generator 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @mittwald/api-code-generator 还在维护吗？

最新版本 4\.509\.0 发布于 2026/11/02（1 天前）；至今共发布 439 个版本，其中过去 12 个月发布了 374 个；首次发布于 2024/03/08。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

