Skip to content

Commit 2b72ca9

Browse files
committed
Update parameter-names.mdx based on issue #266
1 parent e177308 commit 2b72ca9

File tree

1 file changed

+59
-12
lines changed

1 file changed

+59
-12
lines changed

fern/products/openapi-def/pages/extensions/parameter-names.mdx

Lines changed: 59 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
---
2-
title: Customize parameter names
3-
description: Use `x-fern-parameter-name` to customize query parameter, header and path parameter naming.
2+
title: Customize parameter and variable names
3+
description: Use `x-fern` extensions to customize parameter and variable naming in your generated SDKs.
44
---
55

66
<Note>
7-
The `x-fern-parameter-name` extension allows you to customize the variable names of parameters in your generated SDKs.
7+
Fern provides extensions to customize how parameters and variables are named in your generated SDKs, making them more intuitive for end users.
88
</Note>
99

10-
## Headers
10+
## Parameter Names with x-fern-parameter-name
1111

12-
In the example below, the header `X-API-Version` is renamed to `version` in the
13-
generated SDK. The rename makes the SDK more human readable.
12+
The `x-fern-parameter-name` extension allows you to customize how parameters appear in your SDK.
13+
14+
### Headers
15+
16+
In the example below, the header `X-API-Version` is renamed to `version` in the generated SDK for better readability:
1417

1518
```yaml {8}
1619
paths:
@@ -26,10 +29,9 @@ paths:
2629
required: true
2730
```
2831
29-
## Query parameters
32+
### Query parameters
3033
31-
In the example below, the query parameter `q` is renamed to `search_terms` in the
32-
generated SDK. The rename makes the parameter more approachable for end users.
34+
Here, the query parameter `q` is renamed to `search_terms` to be more descriptive:
3335

3436
```yaml {8}
3537
paths:
@@ -45,10 +47,9 @@ paths:
4547
required: false
4648
```
4749

48-
## Path parameters
50+
### Path parameters
4951

50-
In the example below, the path parameter `userId` is renamed to `id` in the
51-
generated SDK. The rename makes the SDK less verbose.
52+
This example renames the path parameter `userId` to `id` for conciseness:
5253

5354
```yaml {8}
5455
paths:
@@ -63,3 +64,49 @@ paths:
6364
type: string
6465
required: false
6566
```
67+
68+
## SDK Variables with x-fern-sdk-variables
69+
70+
The `x-fern-sdk-variables` extension allows you to define variables that can be set once during SDK initialization and automatically injected into requests. This is useful for values that are common across multiple endpoints.
71+
72+
```yaml
73+
components:
74+
# Other components...
75+
76+
x-fern-sdk-variables:
77+
project_id:
78+
type: string
79+
description: "The ID of the project"
80+
pattern: "^proj_[a-zA-Z0-9]+$"
81+
```
82+
83+
To use the variable in a path:
84+
85+
```yaml
86+
paths:
87+
"/v1/connect/{project_id}/accounts":
88+
parameters:
89+
- name: project_id
90+
in: path
91+
required: true
92+
schema:
93+
type: string
94+
pattern: "^proj_[a-zA-Z0-9]+$"
95+
x-fern-sdk-variable: project_id
96+
```
97+
98+
Once defined, these variables can be set during SDK initialization:
99+
100+
```python
101+
# Python example
102+
client = Client(project_id="proj_123")
103+
```
104+
105+
```typescript
106+
// TypeScript example
107+
const client = new Client({
108+
projectId: "proj_123"
109+
});
110+
```
111+
112+
The SDK will automatically inject the variable value into the appropriate requests, eliminating the need to pass it repeatedly as a parameter.

0 commit comments

Comments
 (0)