# @bpinternal/opapi 中文文档

规范地址：https://npmcn.com/package/%40bpinternal/opapi/

版本：2\.0\.0
npm 元数据更新时间：2026-09-02T19:11:39.309Z
中文译文更新时间：2026-11-08T13:22:24.102Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40bpinternal/opapi
原文对照：https://npmcn.com/package/%40bpinternal/opapi/?lang=original
项目主页：https://github.com/botpress/packages#readme
源码仓库：https://github.com/botpress/packages

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

- 包体积（解压后）：243 kB，10 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=16\.0\.0
- 运行依赖：16 个
- 首次发布：2023-04-07T14:44:26.591Z
- 最新版本发布：2026-07-22T21:37:42.220Z
- 近 30 天下载量：4217（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：87（近 12 个月 2 个）

## 中文简介

Opapi是一个高度有意见的库,使用打字符从OpenAPI规格生成服务器,客户端和文件.

## 安装

```sh
npm install @bpinternal/opapi
```

也可以使用：`pnpm add @bpinternal/opapi`、`yarn add @bpinternal/opapi`、`bun add @bpinternal/opapi`

## README

# 奥帕皮 (OpenAPI)

> Opapi是一个高度有意见的库,使用打字符从OpenAPI规格生成服务器,客户端和文件.

## 使用量

安装软件包并开始创建您的 OpenAPI 规格 。 参见以下例子:

```ts
import { OpenApi, schema } from '@bpinternal/opapi'
import { z } from 'zod'

const api = new OpenApi({
  metadata: {
    title: 'Example API', // This is the title of the API
    description: 'Description of this api', // This is the description of the API
    server: 'https://api.example.com', // This is the base URL of the API
    version: '0.1.0', // This is the version of the API
    prefix: 'v1', // This prefix will be added to all routes
  },
  // This is metadata to be used in the documentation
  section: {
    User: {
      title: 'User',
      description: 'User related endpoints',
    },
  },
  // This is where you define your schemas that will be used in the API
  // You can use the `ref` function to reference a schema
  schemas: {
    User: {
      section: 'User', // This is the section where this schema will be displayed in the documentation
      schema: schema(
        z.object({
          id: z.string(),
          name: z.string(),
        }),
        {
          description: 'User schema',
        },
      ),
    },
  },
  // This is the error definitions that will be used in the API
  errors: [
    {
      status: 403,
      type: 'Forbidden',
      description: "The requested action can't be perform by this resource.",
    },
    {
      status: 400,
      type: 'InvalidPayload',
      description: "The request payload isn't invalid.",
    },
    {
      status: 405,
      type: 'MethodNotFound',
      description: 'The requested method does not exist.',
    },
  ],
})

api.addOperation({
  name: 'listUsers',
  description: 'List all users',
  method: 'get',
  path: '/users',
  section: 'User',
  parameters: {
    name: {
      in: 'query',
      type: 'string',
      description: 'Name filter for the users',
    },
  },
  response: {
    description: 'Returns a list of User objects.',
    schema: z.object({
      users: openapi.getModelRef('User'),
    }),
  },
})

api.exportServer('./gen/server') // This will generate a server that can be used with any framework
api.exportClient('./gen/client') // This will generate a client that can be used to query the API
```

## 免责声明

此软件包将在 `@bpinternal` 组织。 这个组织的所有软件包都用于 [瓶装](https://github.com/botpress/botpress) 内部的团队 并不适合我们的社区。 由于这些软件包适合我们自己的使用情况,它们可能不稳定的API,在没有警告的情况下接受中断的更改,文件很少,缺乏以社区为重点的支持。 然而,这些软件包仍然被故意公开,其重要原因如下: 我们爱开源. 因此,如果您想要安装或叉子,这个软件包完全可以自由操作。 我们强烈建议你正确标记你的版本.

博讯工程组.

## 常见问题

### @bpinternal/opapi 是什么？

Opapi是一个高度有意见的库,使用打字符从OpenAPI规格生成服务器,客户端和文件\.

### 如何安装 @bpinternal/opapi？

在项目目录运行 npm install @bpinternal/opapi，或使用 pnpm add / yarn add / bun add。

### @bpinternal/opapi 支持 TypeScript 吗？

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

### @bpinternal/opapi 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @bpinternal/opapi 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=16\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @bpinternal/opapi 可以商用吗？

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

### @bpinternal/opapi 的下载量有多少？

根据 npm 官方下载统计，@bpinternal/opapi 在 2026/10/09 – 2026/11/07 这 30 天内被下载 4,217 次，日均约 141 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @bpinternal/opapi 还在维护吗？

最新版本 2\.0\.0 发布于 2026/07/23（3 个月前）；至今共发布 87 个版本，其中过去 12 个月发布了 2 个；首次发布于 2023/04/07。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

