Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions fern/products/api-def/api-def.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ navigation:
path: ./openapi-pages/extensions/parameter-names.mdx
- page: Property names
path: ./openapi-pages/extensions/property-names.mdx
- page: Retry behavior
path: ./openapi-pages/extensions/retries.mdx
- page: Schema names
path: ./openapi-pages/extensions/schema-names.mdx
- page: Server names
Expand Down
1 change: 1 addition & 0 deletions fern/products/api-def/openapi-pages/extensions/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ The table below shows all available extensions and links to detailed documentati
| [`x-fern-sdk-variables`](./sdk-variables) | Set common path parameters across all requests |
| [`x-fern-parameter-name`](./parameter-names) | Customize parameter variable names |
| [`x-fern-property-name`](./property-names) | Customize object property variable names |
| [`x-fern-retries`](./retry-behavior) | Configure retry behavior for endpoints |
| [`x-fern-type-name`](./schema-names) | Override auto-generated names for inline schemas |
| [`x-fern-server-name`](./server-names) | Name your servers |

Expand Down
50 changes: 50 additions & 0 deletions fern/products/api-def/openapi-pages/extensions/retries.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
title: Retry behavior
subtitle: Configure retry behavior for endpoints using `x-fern-retries` extension
---

<Callout intent="info">
The `x-fern-retries` extension is supported in Python SDKs only.
</Callout>

The `x-fern-retries` extension configures retry behavior per endpoint in your OpenAPI specification, overriding any
retry settings configured by SDK users. Use it to disable retries for non-idempotent operations like payment
processing or order creation.

To disable retries for specific endpoints, set `disabled: true`.

```yaml title="openapi.yml" {4-5,15-16}
paths:
/plants/{plantId}:
get:
x-fern-retries:
disabled: true
operationId: get_plant
parameters:
- name: plantId
in: path
required: true
schema:
type: string
/plants:
post:
x-fern-retries:
disabled: true
operationId: create_plant
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
species:
type: string
responses:
'201':
description: Plant created successfully
```

When retries are disabled at the endpoint level, the generated SDK won't retry failed requests to that endpoint, regardless of the SDK's user custom configuration.
Loading