Skip to content
This repository was archived by the owner on Jul 14, 2025. It is now read-only.

Commit b847244

Browse files
committed
Add examples for using 'form-data' in multipart requests
1 parent a1bf21b commit b847244

File tree

8 files changed

+109
-36
lines changed
  • docs/configuration
  • i18n
    • de/docusaurus-plugin-content-docs/current/configuration
    • en/docusaurus-plugin-content-docs/current/configuration
    • es/docusaurus-plugin-content-docs/current/configuration
    • fr/docusaurus-plugin-content-docs/current/configuration
    • hi/docusaurus-plugin-content-docs/current/configuration
    • ja/docusaurus-plugin-content-docs/current/configuration
    • ko/docusaurus-plugin-content-docs/current/configuration

8 files changed

+109
-36
lines changed

docs/configuration/gateways.md

Lines changed: 77 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ tools:
5353
Cookie: "{{.Config.Cookie}}" # 使用服务配置中的值
5454
args: # 参数配置
5555
- name: "username" # 参数名称
56-
position: "body" # 参数位置:header, query, path, body
56+
position: "body" # 参数位置:header, query, path, body, form-data
5757
required: true # 参数是否必填
5858
type: "string" # 参数类型
5959
description: "Username" # 参数描述
@@ -158,6 +158,32 @@ tools:
158158
"tags": {{.Response.Data.preferences.tags}}
159159
}
160160
}
161+
162+
- name: "update_user_avatar"
163+
description: "Update user avatar using a URL via multipart form"
164+
method: "POST"
165+
endpoint: "http://localhost:5236/users/{{.Args.email}}/avatar"
166+
headers:
167+
Authorization: "{{.Request.Headers.Authorization}}"
168+
Cookie: "{{.Config.Cookie}}"
169+
args:
170+
- name: "email"
171+
position: "path"
172+
required: true
173+
type: "string"
174+
description: "Email of the user"
175+
default: ""
176+
- name: "url"
177+
position: "form-data"
178+
required: true
179+
type: "string"
180+
description: "The avatar image URL"
181+
default: ""
182+
responseBody: |-
183+
{
184+
"message": "{{.Response.Data.message}}",
185+
"avatarUrl": "{{.Response.Data.avatarUrl}}"
186+
}
161187
```
162188
163189
## 配置说明
@@ -246,7 +272,7 @@ tools:
246272
Cookie: "{{.Config.Cookie}}" # 使用服务配置中的值
247273
args: # 参数配置
248274
- name: "username" # 参数名称
249-
position: "body" # 参数位置:header, query, path, body
275+
position: "body" # 参数位置:header, query, path, body, form-data
250276
required: true # 参数是否必填
251277
type: "string" # 参数类型
252278
description: "Username" # 参数描述
@@ -351,6 +377,32 @@ tools:
351377
"tags": {{.Response.Data.preferences.tags}}
352378
}
353379
}
380+
381+
- name: "update_user_avatar"
382+
description: "Update user avatar using a URL via multipart form"
383+
method: "POST"
384+
endpoint: "http://localhost:5236/users/{{.Args.email}}/avatar"
385+
headers:
386+
Authorization: "{{.Request.Headers.Authorization}}"
387+
Cookie: "{{.Config.Cookie}}"
388+
args:
389+
- name: "email"
390+
position: "path"
391+
required: true
392+
type: "string"
393+
description: "Email of the user"
394+
default: ""
395+
- name: "url"
396+
position: "form-data"
397+
required: true
398+
type: "string"
399+
description: "The avatar image URL"
400+
default: ""
401+
responseBody: |-
402+
{
403+
"message": "{{.Response.Data.message}}",
404+
"avatarUrl": "{{.Response.Data.avatarUrl}}"
405+
}
354406
```
355407

356408
#### 5.1 请求参数组装
@@ -360,7 +412,29 @@ tools:
360412
2. `.Args`: 直接从请求参数中提取值
361413
3. `.Request`: 从请求中提取的值,包括请求头`.Request.Headers`、请求体`.Request.Body`等
362414

363-
组装在 `requestBody` 里面,比如:
415+
参数位置(position)支持以下几种:
416+
- `header`: 参数将被放置在请求头中
417+
- `query`: 参数将被放置在URL查询字符串中
418+
- `path`: 参数将被放置在URL路径中
419+
- `body`: 参数将被放置在JSON格式的请求体中
420+
- `form-data`: 参数将被放置在multipart/form-data格式的请求体中,用于文件上传等场景
421+
422+
当使用 `form-data` 作为参数位置时,不需要指定 `requestBody`,系统会自动将参数组装成 multipart/form-data 格式。例如:
423+
424+
```yaml
425+
- name: "update_user_avatar"
426+
method: "POST"
427+
endpoint: "http://localhost:5236/users/{{.Args.email}}/avatar"
428+
args:
429+
- name: "url"
430+
position: "form-data"
431+
required: true
432+
type: "string"
433+
description: "The avatar image URL"
434+
```
435+
436+
对于JSON格式的请求体,需要在 `requestBody` 中组装,比如:
437+
364438
```yaml
365439
requestBody: |-
366440
{
@@ -403,4 +477,3 @@ tools:
403477
- 每个配置单独存储为一个 YAML 文件
404478
- 类似 Nginx 的 vhost 配置方式
405479
- 文件名建议使用服务名称,如 `mock-user-svc.yaml`
406-

i18n/de/docusaurus-plugin-content-docs/current/configuration/gateways.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -173,17 +173,17 @@ Eine Konfiguration kann als Namespace betrachtet werden, empfohlen wird die Unte
173173

174174
### 2. Routing-Konfiguration
175175

176-
Die Routing-Konfiguration wird verwendet, um Anforderungsweiterleitungsregeln zu definieren:
176+
Die Routing-Konfiguration wird verwendet, um Regeln für die Weiterleitung von Anfragen zu definieren:
177177

178178
```yaml
179179
routers:
180-
- server: "mock-user-svc" # Service-Name, muss mit name in servers übereinstimmen
181-
prefix: "/mcp/user" # Routenpräfix, global eindeutig, darf nicht dupliziert werden
180+
- server: "mock-user-svc" # Dienstname, muss mit Name in servers übereinstimmen
181+
prefix: "/mcp/user" # Routenpräfix, global eindeutig, kann nicht dupliziert werden
182182
```
183183

184-
Standardmäßig werden drei Endpunkte aus dem `prefix` abgeleitet:
184+
Standardmäßig werden drei Endpunkte vom `prefix` abgeleitet:
185185
- SSE: `${prefix}/sse`, z.B. `/mcp/user/sse`
186-
- SSE: `${prefix}/message`, z.B. `/mcp/user/message`
186+
- SSE Message: `${prefix}/message`, z.B. `/mcp/user/message`
187187
- StreamableHTTP: `${prefix}/mcp`, z.B. `/mcp/user/mcp`
188188

189189
### 3. CORS-Konfiguration

i18n/en/docusaurus-plugin-content-docs/current/configuration/gateways.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ routers:
183183

184184
By default, three endpoints will be derived from the `prefix`:
185185
- SSE: `${prefix}/sse`, e.g., `/mcp/user/sse`
186-
- SSE: `${prefix}/message`, e.g., `/mcp/user/message`
186+
- SSE Message: `${prefix}/message`, e.g., `/mcp/user/message`
187187
- StreamableHTTP: `${prefix}/mcp`, e.g., `/mcp/user/mcp`
188188

189189
### 3. CORS Configuration

i18n/es/docusaurus-plugin-content-docs/current/configuration/gateways.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -173,18 +173,18 @@ Una configuración puede considerarse como un namespace, se recomienda diferenci
173173

174174
### 2. Configuración de Enrutamiento
175175

176-
La configuración de enrutamiento se usa para definir reglas de reenvío de solicitudes:
176+
La configuración de enrutamiento se utiliza para definir las reglas de reenvío de solicitudes:
177177

178178
```yaml
179179
routers:
180-
- server: "mock-user-svc" # Nombre del servicio, debe coincidir con name en servers
181-
prefix: "/mcp/user" # Prefijo de ruta, globalmente único, no debe duplicarse
180+
- server: "mock-user-svc" # Nombre del servicio, debe coincidir con el nombre en servers
181+
prefix: "/mcp/user" # Prefijo de ruta, globalmente único, no puede duplicarse
182182
```
183183

184-
Por defecto, se derivan tres endpoints del `prefix`:
185-
- SSE: `${prefix}/sse`, ej. `/mcp/user/sse`
186-
- SSE: `${prefix}/message`, ej. `/mcp/user/message`
187-
- StreamableHTTP: `${prefix}/mcp`, ej. `/mcp/user/mcp`
184+
Por defecto, se derivarán tres puntos de conexión del `prefix`:
185+
- SSE: `${prefix}/sse`, por ejemplo, `/mcp/user/sse`
186+
- SSE Message: `${prefix}/message`, por ejemplo, `/mcp/user/message`
187+
- StreamableHTTP: `${prefix}/mcp`, por ejemplo, `/mcp/user/mcp`
188188

189189
### 3. Configuración CORS
190190

i18n/fr/docusaurus-plugin-content-docs/current/configuration/gateways.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -177,14 +177,14 @@ La configuration du routage est utilisée pour définir les règles de transfert
177177

178178
```yaml
179179
routers:
180-
- server: "mock-user-svc" # Nom du service, doit correspondre à name dans servers
181-
prefix: "/mcp/user" # Préfixe de route, globalement unique, ne doit pas être dupliqué
180+
- server: "mock-user-svc" # Nom du service, doit correspondre au nom dans servers
181+
prefix: "/mcp/user" # Préfixe de route, globalement unique, ne peut pas être dupliqué
182182
```
183183

184-
Par défaut, trois points de terminaison sont dérivés du `prefix` :
185-
- SSE: `${prefix}/sse`, ex. `/mcp/user/sse`
186-
- SSE: `${prefix}/message`, ex. `/mcp/user/message`
187-
- StreamableHTTP: `${prefix}/mcp`, ex. `/mcp/user/mcp`
184+
Par défaut, trois points de terminaison seront dérivés du `prefix` :
185+
- SSE : `${prefix}/sse`, par exemple, `/mcp/user/sse`
186+
- SSE Message : `${prefix}/message`, par exemple, `/mcp/user/message`
187+
- StreamableHTTP : `${prefix}/mcp`, par exemple, `/mcp/user/mcp`
188188

189189
### 3. Configuration CORS
190190

i18n/hi/docusaurus-plugin-content-docs/current/configuration/gateways.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -178,13 +178,13 @@ tools:
178178
```yaml
179179
routers:
180180
- server: "mock-user-svc" # सेवा का नाम, servers में name से मेल खाना चाहिए
181-
prefix: "/mcp/user" # रूट प्रीफिक्स, वैश्विक रूप से अद्वितीय, डुप्लिकेट नहीं होना चाहिए
181+
prefix: "/mcp/user" # रूट प्रीफिक्स, वैश्विक रूप से अद्वितीय, प्रतिलिपि नहीं हो सकता
182182
```
183183

184-
डिफ़ॉल्ट रूप से, `prefix` से तीन एंडपॉइंट व्युत्पन्न होते हैं:
185-
- SSE: `${prefix}/sse`, उदा. `/mcp/user/sse`
186-
- SSE: `${prefix}/message`, उदा. `/mcp/user/message`
187-
- StreamableHTTP: `${prefix}/mcp`, उदा. `/mcp/user/mcp`
184+
डिफ़ॉल्ट रूप से, `prefix` से तीन एंडपॉइंट निकाले जाएंगे:
185+
- SSE: `${prefix}/sse`, उदाहरण: `/mcp/user/sse`
186+
- SSE Message: `${prefix}/message`, उदाहरण: `/mcp/user/message`
187+
- StreamableHTTP: `${prefix}/mcp`, उदाहरण: `/mcp/user/mcp`
188188

189189
### 3. CORS कॉन्फ़िगरेशन
190190

i18n/ja/docusaurus-plugin-content-docs/current/configuration/gateways.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,19 +171,19 @@ tools:
171171

172172
設定は名前空間と見なすことができ、サービスまたはドメインで区別することを推奨します。サービスには多くのAPIインターフェースが含まれ、各APIインターフェースは1つのToolに対応します
173173

174-
### 2. ルーティング設定
174+
### 2. ルーティング構成
175175

176-
ルーティング設定はリクエスト転送ルールを定義するために使用されます
176+
ルーティング構成はリクエストの転送ルールを定義するために使用されます
177177

178178
```yaml
179179
routers:
180-
- server: "mock-user-svc" # サービス名、serversのnameと一致する必要があります
181-
prefix: "/mcp/user" # ルートプレフィックス、グローバルで一意、重複不可
180+
- server: "mock-user-svc" # サービス名、serversのnameと一致する必要があります
181+
prefix: "/mcp/user" # ルートプレフィックス、グローバルに一意、重複不可
182182
```
183183

184184
デフォルトでは、`prefix`から3つのエンドポイントが派生します:
185185
- SSE: `${prefix}/sse`、例:`/mcp/user/sse`
186-
- SSE: `${prefix}/message`、例:`/mcp/user/message`
186+
- SSE Message: `${prefix}/message`、例:`/mcp/user/message`
187187
- StreamableHTTP: `${prefix}/mcp`、例:`/mcp/user/mcp`
188188

189189
### 3. CORS設定

i18n/ko/docusaurus-plugin-content-docs/current/configuration/gateways.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,12 +178,12 @@ tools:
178178
```yaml
179179
routers:
180180
- server: "mock-user-svc" # 서비스 이름, servers의 name과 일치해야 함
181-
prefix: "/mcp/user" # 라우트 접두사, 전역적으로 고유, 중복 불가
181+
prefix: "/mcp/user" # 라우트 접두사, 전역적으로 고유해야 하며 중복 불가
182182
```
183183

184-
기본적으로 `prefix`에서 세 가지 엔드포인트가 파생됩니다:
184+
기본적으로 `prefix`에서 3개의 엔드포인트가 파생됩니다:
185185
- SSE: `${prefix}/sse`, 예: `/mcp/user/sse`
186-
- SSE: `${prefix}/message`, 예: `/mcp/user/message`
186+
- SSE Message: `${prefix}/message`, 예: `/mcp/user/message`
187187
- StreamableHTTP: `${prefix}/mcp`, 예: `/mcp/user/mcp`
188188

189189
### 3. CORS 구성

0 commit comments

Comments
 (0)