跳到导航

环境

以 Markdown 格式查看

您可以指定部署服务器的环境。

单URL环境

api.yml
name: api
environments:
Production: https://www.yoursite.com
Staging:
docs: This staging environment is helpful for testing!
url: https://www.staging.yoursite.com

每个环境多个URL

您可以为每个环境指定多个URL。如果您有微服务架构,并希望单个SDK与多个服务器交互,这将很有帮助。

api.yml
environments:
Production:
urls:
Auth: https://auth.yoursite.com
Plants: https://plants.yoursite.com
Staging:
urls:
Auth: https://auth.staging.yoursite.com
Plants: https://plants.staging.yoursite.com

如果您选择使用此功能,必须为定义的每个服务指定一个url

auth.yml
service:
url: Auth
base-path: /auth
...

默认环境

您还可以提供默认环境:

api.yml
name: api
environments:
Production: https://www.yoursite.com
Staging:
docs: This staging environment is helpful for testing!
url: https://www.staging.yoursite.com
default-environment: Production
通过提供默认环境,生成的SDK将设置为开箱即用地访问该URL。

URL模板

URL模板目前仅支持Python和Java SDK生成。

对于跨多个区域或环境部署的API,您可以定义带有变量占位符的URL模板,SDK用户可以在运行时自定义。设置方法:

  1. urls下定义静态基础URL——这些将出现在生成的环境枚举中。
  2. 为每个服务添加带有{variable}占位符的url-templates(例如,https://api.{region}.example.com/v1)。Fern将这些作为SDK中的可配置参数公开。
  3. 提供default-urls作为具体的后备方案,以便SDK用户无需提供变量即可获得开箱即用的客户端。
  4. 列出每个服务的可用variables,每个变量具有iddefault值和可选的values列表来约束允许的选项。
api.yml
environments:
RegionalApiServer:
urls:
Base: https://api.example.com/v1
Auth: https://auth.example.com
url-templates:
Base: https://api.{region}.{environment}.example.com/v1
Auth: https://auth.{region}.example.com
default-urls:
Base: https://api.example.com/v1
Auth: https://auth.example.com
variables:
Base:
- id: region
default: us-east-1
values:
- us-east-1
- us-west-2
- eu-west-1
- id: environment
default: prod
values:
- prod
- staging
- dev
Auth:
- id: region
default: us-east-1
values:
- us-east-1
- us-west-2
- eu-west-1
default-environment: RegionalApiServer

基础路径

如果您希望所有端点都带有路径前缀,请使用base-path

在下面的示例中,每个端点都带有/v1前缀:

api.yml
name: api
base-path: /v1

受众

如果您有想要筛选的已列出环境,可以利用受众功能。

api.yml
audiences:
- public
environments:
Dev:
url: https://api.dev.buildwithfern.com
Prod:
url: https://api.buildwithfern.com
audiences:
- external