@fern-api/sdk

中文文档
0.13.0发布于 2024/10/18MITTypeScriptCommonJS近 30 天下载 3033

npm shield fern shield

此软件包已被标记为弃用

Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

中文使用文档
文档目录11 节
  1. 文档
  2. 安装
  3. 使用量
  4. 客户端执行
  5. 动态代码示例
  6. 默认或静态代码示例
  7. 处理出错
  8. 请求选项
  9. 运行时间兼容性
  10. Beta 状态
  11. 捐款

费尔恩打字库

npm shield fern shield

Fern Typescript 库提供从 JavaScript / TypeScript 访问 Fern的公开 API , 以及您选择的 JavaScript 运行时间( ) 节点,浏览器, Deno, Bun 等) (中文(简体) ).

文档

API 备有参考文件 这里。 。 。 .

这个SDK主要用来进入Fern's 动态片段 API (英语). Fern的动态片段API的用意是允许用户为其带有动态有效载荷的Fern-generate SDK创建代码片段.

常用案例包括:

  1. 应用代码示例
  2. 文档中针对用户的代码示例
  3. 这么多!

显著特征 :

  1. 客户端执行,对于经常变化的代码实例来说,理想,可能是因为用户输入浏览器.
  2. 动态代码示例
  3. 显示默认和自动生成的例子

安装

npm install --save @fern-api/sdk

# or

yarn add @fern-api/sdk

使用量

客户端执行

import { FernClient } from "@fern-api/sdk";

const fern = new FernClient({
    token: "YOUR_API_KEY",
});

// Get the snippet template from the Fern API
const template = await fern.templates.get({
  endpoint: {
    method: "POST",
    path: "/api/users/search/{someFilter}",
  },
});

// Build a snippet with a payload, this happens on the client side,
// without need for another API call, improving latency dramatically.
const snippet1 = await template.resolve({
    pathParameters: [{
      name: "someFilter",
      value: "test1"
    }]
    requestBody: {
      name: "Joey",
    }
  })

// You can build as many snippets as you'd like!
const snippet2 = await template.resolve({
  pathParameters: [{
    name: "someFilter",
    value: "anotherTest"
  }]
  requestBody: {
    name: "Samantha",
  }
})

动态代码示例

import { FernClient } from "@fern-api/sdk";

const fern = new FernClient({
    token: "YOUR_API_KEY",
});

const snippets = await fern.snippets.get({
  endpoint: {
    method: "POST",
    path: "/api/users/search/{someFilter}",
  },
  // The payload parameter allows you to pass in the same data you would to the API,
  // the only distinction is that the payload is structure to distinguish path and query parameters,
  // headers and request bodies.
  payload: {
    pathParameters: [{
      name: "someFilter",
      value: "test1"
    }]
    requestBody: {
      name: "Joey",
    }
  }
});

默认或静态代码示例

import { FernClient } from "@fern-api/sdk";

const fern = new FernClient({
    token: "YOUR_API_KEY",
});

// Without any payload specified, the SDK returns a snippet with the examples provided within your API spec
// If there are no examples in your spec, a basic example is autogenerated for you.
const snippets = await fern.snippets.get({
    endpoint: {
        method: "GET",
        path: "/api/users",
    },
    // The name of your organization, found in your `fern.config.json`
    orgId: "my_organization",
    // The name of the API you'd like to generate snippets for,
    apiId: "api",
    sdks: [{ type: "python", package: "my_package", version: "0.0.3" }],
});

处理出错

API 返回非成功状态代码( 4xx 或 5xx 回复) 时, 子类 费尔恩厄尔 将扔出 :

import { FernError } from "@fern-api/sdk";

try {
  await fern.snippets.get(...);
} catch (err) {
  if (err instanceof FernError) {
    console.log(err.statusCode);
    console.log(err.message);
    console.log(err.body);
  }
}

请求选项

HTTP 客户端接受一个 RequestOptions 分类 定制超时.

const snippets = await fern.snippets.get(
    {
        endpoint: {
            method: "GET",
            path: "/api/users",
        },
    },
    {
        timeoutInSeconds: 60, // increase timeout in second
    }
);

运行时间兼容性

SDK 默认为 node-fetch 但是如果存在, 将会使用全局获取客户端 。 SDK这个 工作时间如下:

支持以下运行时间:

  • 节点.js 15+
  • 维塞尔
  • 云花岗工人
  • 德诺v1.25+
  • 1.0+号舱

Beta 状态

这个SDK是在β中,在版本之间可能会有断裂的更改,而没有主要的版本更新. 因此,我们 建议将软件包版本刻入您的软件包.json文件中的特定版本。 这样,你可以安装 除非您有意寻找最新版本,否则每次不中断更改.

捐款

虽然我们重视对SDK的开源贡献,但这个库是程序生成的. 直接加进这个图书馆 就得转到我们这代的密码上 否则 他们将被覆盖 在下一个生成的释放。 随便开个公关作为概念的证明, 但要知道,我们无法把它合并起来。 我们建议先讨论一个问题!

另一方面,对 " README " 的贡献总是非常受欢迎的!


drawing

版本与发布记录

@fern-api/sdk 共发布 19 个版本,首次发布于 2024/05/24;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.13.0latest2024/10/182 年前
0.13.0-beta1beta2024/10/182 年前
0.13.0-beta02024/10/172 年前
0.12.32024/09/132 年前
0.12.22024/07/162 年前
0.12.12024/07/162 年前

关于 @fern-api/sdk 的常见问题

如何安装 @fern-api/sdk?

在项目目录运行 npm install @fern-api/sdk,或使用 pnpm add / yarn add / bun add。

@fern-api/sdk 支持 TypeScript 吗?

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

@fern-api/sdk 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@fern-api/sdk 可以商用吗?

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

@fern-api/sdk 的下载量有多少?

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

@fern-api/sdk 还在维护吗?

最新版本 0.13.0 发布于 2024/10/18(2 年前);至今共发布 19 个版本,其中过去 12 个月发布了 0 个;首次发布于 2024/05/24。作者已将其标记为弃用,新项目建议寻找替代方案。