From 1b01cbf64cc33a72c99f2bd9719321749908a9ef Mon Sep 17 00:00:00 2001 From: Devin Logan Date: Fri, 3 Oct 2025 17:00:24 -0400 Subject: [PATCH 1/4] add new page on sdk user features --- fern/products/sdks/guides/generated-sdk.mdx | 28 +++++++++++++++++++++ fern/products/sdks/sdks.yml | 2 ++ 2 files changed, 30 insertions(+) create mode 100644 fern/products/sdks/guides/generated-sdk.mdx diff --git a/fern/products/sdks/guides/generated-sdk.mdx b/fern/products/sdks/guides/generated-sdk.mdx new file mode 100644 index 000000000..7478d748c --- /dev/null +++ b/fern/products/sdks/guides/generated-sdk.mdx @@ -0,0 +1,28 @@ +--- +title: SDK user features +description: How your customers can use your SDK +--- + +Fern-generated SDKs provide a consistent set of features across all languages to help developers interact with your API. Usage information is auto-generated in your SDK's README, [which you can customize](./readme). + +## Installation and basic usage + +Users install SDKs using standard package managers from language-specific registries (npm for TypeScript, PyPI for Python, etc.). + +Users initialize the client with your API's base URL and any required authentication, then call methods on the client to interact with your API. Generated SDKs support modern runtimes across languages. + +## Error handling + +When the API returns a 4xx or 5xx status code, the SDK throws an error that includes the status code, error message, response body, and raw response object. + +## Customization options + +| Option | Description | Availability | +|--------|-------------|--------------| +| Timeouts | Configure request timeouts (default: 60 seconds for most languages, 30 seconds for C# and PHP) | All languages | +| Retries | Configure maximum retries (default: 2 with exponential backoff for 408, 429, and 5xx responses) | All languages except Ruby and Swift | +| Custom HTTP client | Override the default HTTP client for unsupported environments or custom requirements | TypeScript, Python, Java, PHP, and Swift | +| Custom headers | Send additional headers with any request | TypeScript, Java, and Swift | +| Raw response data | Access response headers alongside parsed data | TypeScript, Python, and Go | +| Query parameters | Add extra query string parameters | TypeScript and Swift | +| Abort signals | Cancel in-flight requests | TypeScript only | \ No newline at end of file diff --git a/fern/products/sdks/sdks.yml b/fern/products/sdks/sdks.yml index a023942f4..4020423c7 100644 --- a/fern/products/sdks/sdks.yml +++ b/fern/products/sdks/sdks.yml @@ -208,6 +208,8 @@ navigation: slug: mcp-server - section: Deep dives contents: + - page: SDK user features + path: ./guides/generated-sdk.mdx - page: Customize method names path: ./guides/customize-method-names.mdx slug: customize-method-names From 132d47311afa2025f8fb378f5d47360c2a79fc67 Mon Sep 17 00:00:00 2001 From: Devin Logan Date: Mon, 6 Oct 2025 11:51:54 -0400 Subject: [PATCH 2/4] add links --- fern/products/sdks/guides/configure-readme.mdx | 2 +- fern/products/sdks/guides/generated-sdk.mdx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fern/products/sdks/guides/configure-readme.mdx b/fern/products/sdks/guides/configure-readme.mdx index 14e5f9d69..9e652808b 100644 --- a/fern/products/sdks/guides/configure-readme.mdx +++ b/fern/products/sdks/guides/configure-readme.mdx @@ -3,7 +3,7 @@ title: Customize README description: Guide to configuring the README in your SDK --- -By default, the README for your SDKs is generated programmatically. You can customize the content and structure of these README files across all of your SDKs by configuring the `readme` section in `generators.yml`. +By default, the README for your SDKs is [generated programmatically](./sdk-user-features) and contains information about how your users can interact with your API. You can customize the content and structure of these README files across all of your SDKs by configuring the `readme` section in `generators.yml`. ## Configuration options diff --git a/fern/products/sdks/guides/generated-sdk.mdx b/fern/products/sdks/guides/generated-sdk.mdx index 7478d748c..e048370c5 100644 --- a/fern/products/sdks/guides/generated-sdk.mdx +++ b/fern/products/sdks/guides/generated-sdk.mdx @@ -7,7 +7,7 @@ Fern-generated SDKs provide a consistent set of features across all languages to ## Installation and basic usage -Users install SDKs using standard package managers from language-specific registries (npm for TypeScript, PyPI for Python, etc.). +Users install SDKs using standard package managers (npm for TypeScript, pip for Python, Maven/Gradle for Java, etc.) from language-specific registries. Users initialize the client with your API's base URL and any required authentication, then call methods on the client to interact with your API. Generated SDKs support modern runtimes across languages. @@ -20,7 +20,7 @@ When the API returns a 4xx or 5xx status code, the SDK throws an error that incl | Option | Description | Availability | |--------|-------------|--------------| | Timeouts | Configure request timeouts (default: 60 seconds for most languages, 30 seconds for C# and PHP) | All languages | -| Retries | Configure maximum retries (default: 2 with exponential backoff for 408, 429, and 5xx responses) | All languages except Ruby and Swift | +| [Retries](/sdks/deep-dives/retries-with-backoff) | Configure maximum retries (default: 2 with exponential backoff for 408, 429, and 5xx responses) | All languages except Ruby and Swift | | Custom HTTP client | Override the default HTTP client for unsupported environments or custom requirements | TypeScript, Python, Java, PHP, and Swift | | Custom headers | Send additional headers with any request | TypeScript, Java, and Swift | | Raw response data | Access response headers alongside parsed data | TypeScript, Python, and Go | From 6d550091113587fa13d89d9f600a7504ea2107ce Mon Sep 17 00:00:00 2001 From: Devin Logan Date: Mon, 6 Oct 2025 11:56:00 -0400 Subject: [PATCH 3/4] adjust wording --- fern/products/sdks/guides/generated-sdk.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fern/products/sdks/guides/generated-sdk.mdx b/fern/products/sdks/guides/generated-sdk.mdx index e048370c5..18f749da9 100644 --- a/fern/products/sdks/guides/generated-sdk.mdx +++ b/fern/products/sdks/guides/generated-sdk.mdx @@ -17,6 +17,8 @@ When the API returns a 4xx or 5xx status code, the SDK throws an error that incl ## Customization options +Your SDK users can configure individual requests using language-specific options: + | Option | Description | Availability | |--------|-------------|--------------| | Timeouts | Configure request timeouts (default: 60 seconds for most languages, 30 seconds for C# and PHP) | All languages | From 71395ce78674ffa5f4b76a6a9e0f97413f27221e Mon Sep 17 00:00:00 2001 From: Devin Logan Date: Tue, 7 Oct 2025 12:04:02 -0400 Subject: [PATCH 4/4] wording update --- fern/products/sdks/guides/generated-sdk.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fern/products/sdks/guides/generated-sdk.mdx b/fern/products/sdks/guides/generated-sdk.mdx index 18f749da9..0f94e96b2 100644 --- a/fern/products/sdks/guides/generated-sdk.mdx +++ b/fern/products/sdks/guides/generated-sdk.mdx @@ -21,7 +21,7 @@ Your SDK users can configure individual requests using language-specific options | Option | Description | Availability | |--------|-------------|--------------| -| Timeouts | Configure request timeouts (default: 60 seconds for most languages, 30 seconds for C# and PHP) | All languages | +| Timeouts | Configure request timeouts (default: 30 seconds for C# and PHP, 60 seconds for all other languages) | All languages | | [Retries](/sdks/deep-dives/retries-with-backoff) | Configure maximum retries (default: 2 with exponential backoff for 408, 429, and 5xx responses) | All languages except Ruby and Swift | | Custom HTTP client | Override the default HTTP client for unsupported environments or custom requirements | TypeScript, Python, Java, PHP, and Swift | | Custom headers | Send additional headers with any request | TypeScript, Java, and Swift |