使用受众筛选您的 API

使用 x-fern-audiences 筛选相关的操作、通道和消息模式

以 Markdown 格式查看
团队版、专业版和企业版功能

此功能仅适用于团队版(文档)、专业版(SDK)和企业版计划。要开始使用,请联系 support@buildwithfern.com

受众是对事件驱动 API 进行分段以服务不同消费者的有用工具。常见的受众示例包括 publicbeta

记住在指定受众后要筛选您的 SDK 和文档。如果未指定受众,将不会进行任何筛选。

以下示例配置 SDK 筛选到 public 受众:

generators.yml
1groups:
2 sdks:
3 audiences:
4 - public
5 generators:
6 - name: fernapi/fern-typescript-sdk
7 version: 0.8.8

以下示例配置文档筛选到 public 受众:

docs.yml
1navigation:
2 - api: API Reference
3 audiences:
4 - public

筛选操作

在操作中添加 x-fern-audiences 来控制特定受众包含哪些操作:

asyncapi.yml
1operations:
2 sendPublicNotification:
3 action: send
4 channel:
5 $ref: '#/channels/public~1notifications'
6 x-fern-audiences:
7 - public
8 sendBetaAlert:
9 action: send
10 channel:
11 $ref: '#/channels/beta~1alerts'
12 x-fern-audiences:
13 - beta

筛选通道

您还可以按受众筛选整个通道:

asyncapi.yml
1channels:
2 public/events:
3 address: public/events
4 messages:
5 PublicEvent:
6 $ref: '#/components/messages/PublicEvent'
7 x-fern-audiences:
8 - public
9 internal/events:
10 address: internal/events
11 messages:
12 InternalEvent:
13 $ref: '#/components/messages/InternalEvent'
14 x-fern-audiences:
15 - internal

筛选消息模式

将特定消息模式筛选到不同受众:

asyncapi.yml
1components:
2 messages:
3 PublicUserEvent:
4 contentType: application/json
5 payload:
6 $ref: '#/components/schemas/PublicUser'
7 x-fern-audiences:
8 - public
9 AdminUserEvent:
10 contentType: application/json
11 payload:
12 $ref: '#/components/schemas/AdminUser'
13 x-fern-audiences:
14 - admin
15 schemas:
16 PublicUser:
17 type: object
18 properties:
19 id:
20 type: string
21 name:
22 type: string
23 email:
24 type: string
25 x-fern-audiences:
26 - public
27 AdminUser:
28 allOf:
29 - $ref: '#/components/schemas/PublicUser'
30 - type: object
31 properties:
32 role:
33 type: string
34 permissions:
35 type: array
36 items:
37 type: string
38 x-fern-audiences:
39 - admin

筛选模式属性

您可以筛选模式内的单个属性:

asyncapi.yml
1components:
2 schemas:
3 UserEvent:
4 type: object
5 properties:
6 id:
7 type: string
8 email:
9 type: string
10 x-fern-audiences:
11 - internal
12 publicName:
13 type: string
14 x-fern-audiences:
15 - public
16 internalNotes:
17 type: string
18 x-fern-audiences:
19 - internal

这使您能够为不同受众提供相同事件模式的不同视图,向每个消费者只显示相关信息。