添加自定义代码

以 Markdown 格式查看

本页面介绍如何为你的 Go SDK 添加自定义逻辑和方法。

添加自定义逻辑

开始添加自定义代码:

1

创建新文件并添加自定义逻辑

helper.go
1func MyHelper() {
2 fmt.Println("Hello World!")
3}
2

将文件添加到 .fernignore

.fernignore
1# Specify files that shouldn't be modified by Fern
2
3helper.go
3

使用辅助函数

Now your users can consume the helper function by importing it from the SDK.

1import "github.com/package/example"
2
3example.MyHelper();

添加自定义 SDK 方法

Fern also allows you to add custom methods to the SDK itself (e.g. client.my_method() ) by inheriting the Fern generated client and then extending it.

1

更新 generators.yml 配置

将你的 Fern 生成的客户端命名为 BaseClient 之类的名称,以反映该客户端将被扩展。

generators.yml
1- name: fernapi/fern-go-sdk
2 version: "..."
3 config:
4 clientName: BaseClient
2

导入并扩展生成的客户端

首先,导入 Fern 生成的基础客户端并对其进行扩展。然后,添加你想要的任何方法。

client/my_client.go
1type MyClient struct {
2 *Client // Embed the Fern generated client.
3}
4
5func NewMyClient(opts ...option.RequestOption) *MyClient {
6 return &MyClient{
7 Client: NewClient(opts...),
8 }
9}
10
11func (m *MyClient) MyHelper() {
12 fmt.Println("Hello World!")
13}
3

更新 .fernignore

client/my_client.go 添加到 .fernignore

.fernignore
1+ client/my_client.go
4

使用方法

你的用户不需要构造生成的客户端,而是构造扩展的客户端。

main.go
1import exampleclient "github.com/package/example/client"
2
3client := exampleclient.NewMyClient():

Now your users can consume the helper function by importing it from the SDK.

1client.MyHelper()