diff --git a/fern/products/api-def/api-def.yml b/fern/products/api-def/api-def.yml index 846bc659c..01ce952c9 100644 --- a/fern/products/api-def/api-def.yml +++ b/fern/products/api-def/api-def.yml @@ -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 diff --git a/fern/products/api-def/openapi-pages/extensions/overview.md b/fern/products/api-def/openapi-pages/extensions/overview.md index f2a56516a..5c8490506 100644 --- a/fern/products/api-def/openapi-pages/extensions/overview.md +++ b/fern/products/api-def/openapi-pages/extensions/overview.md @@ -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 | diff --git a/fern/products/api-def/openapi-pages/extensions/retries.mdx b/fern/products/api-def/openapi-pages/extensions/retries.mdx new file mode 100644 index 000000000..1a7dbedb5 --- /dev/null +++ b/fern/products/api-def/openapi-pages/extensions/retries.mdx @@ -0,0 +1,50 @@ +--- +title: Retry behavior +subtitle: Configure retry behavior for endpoints using `x-fern-retries` extension +--- + + + The `x-fern-retries` extension is supported in Python SDKs only. + + +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.