Schéma YAML du bloc API
Référence de configuration YAML pour les blocs API
Définition du schéma
type: object
required:
- type
- name
- inputs
properties:
type:
type: string
enum: [api]
description: Block type identifier
name:
type: string
description: Display name for this API block
inputs:
type: object
required:
- url
- method
properties:
url:
type: string
description: The endpoint URL to send the request to
method:
type: string
enum: [GET, POST, PUT, DELETE, PATCH]
description: HTTP method for the request
default: GET
params:
type: array
description: Query parameters as table entries
items:
type: object
required:
- id
- cells
properties:
id:
type: string
description: Unique identifier for the parameter entry
cells:
type: object
required:
- Key
- Value
properties:
Key:
type: string
description: Parameter name
Value:
type: string
description: Parameter value
headers:
type: array
description: HTTP headers as table entries
items:
type: object
required:
- id
- cells
properties:
id:
type: string
description: Unique identifier for the header entry
cells:
type: object
required:
- Key
- Value
properties:
Key:
type: string
description: Header name
Value:
type: string
description: Header value
body:
type: string
description: Request body for POST/PUT/PATCH methods
timeout:
type: number
description: Request timeout in milliseconds
default: 30000
minimum: 1000
maximum: 300000
connections:
type: object
properties:
success:
type: string
description: Target block ID for successful requests
error:
type: string
description: Target block ID for error handling
Configuration de connexion
Les connexions dĂ©finissent oĂč le flux de travail se dirige en fonction des rĂ©sultats de la requĂȘte :
connections:
success: <string> # Target block ID for successful requests
error: <string> # Target block ID for error handling (optional)
Exemples
RequĂȘte GET simple
user-api:
type: api
name: "Fetch User Data"
inputs:
url: "https://api.example.com/users/123"
method: GET
headers:
- id: header-1-uuid-here
cells:
Key: "Authorization"
Value: "Bearer {{API_TOKEN}}"
- id: header-2-uuid-here
cells:
Key: "Content-Type"
Value: "application/json"
connections:
success: process-user-data
error: handle-api-error
RequĂȘte POST avec corps
create-ticket:
type: api
name: "Create Support Ticket"
inputs:
url: "https://api.support.com/tickets"
method: POST
headers:
- id: auth-header-uuid
cells:
Key: "Authorization"
Value: "Bearer {{SUPPORT_API_KEY}}"
- id: content-type-uuid
cells:
Key: "Content-Type"
Value: "application/json"
body: |
{
"title": "<agent.title>",
"description": "<agent.description>",
"priority": "high"
}
connections:
success: ticket-created
error: ticket-error
URL dynamique avec paramĂštres de requĂȘte
search-api:
type: api
name: "Search Products"
inputs:
url: "https://api.store.com/products"
method: GET
params:
- id: search-param-uuid
cells:
Key: "q"
Value: <start.searchTerm>
- id: limit-param-uuid
cells:
Key: "limit"
Value: "10"
- id: category-param-uuid
cells:
Key: "category"
Value: <filter.category>
headers:
- id: auth-header-uuid
cells:
Key: "Authorization"
Value: "Bearer {{STORE_API_KEY}}"
connections:
success: display-results
Format des paramĂštres
Les en-tĂȘtes et les paramĂštres (paramĂštres de requĂȘte) utilisent le format de tableau avec la structure suivante :
headers:
- id: unique-identifier-here
cells:
Key: "Content-Type"
Value: "application/json"
- id: another-unique-identifier
cells:
Key: "Authorization"
Value: "Bearer {{API_TOKEN}}"
params:
- id: param-identifier-here
cells:
Key: "limit"
Value: "10"
Détails de la structure :
id
: identifiant unique pour suivre la ligne du tableaucells.Key
: le nom du paramĂštre/en-tĂȘtecells.Value
: la valeur du paramĂštre/en-tĂȘte- Ce format permet une gestion appropriĂ©e des tableaux et la prĂ©servation de l'Ă©tat de l'interface utilisateur
Références de sortie
AprÚs l'exécution d'un bloc API, vous pouvez référencer ses sorties dans les blocs suivants. Le bloc API fournit trois sorties principales :
Sorties disponibles
Sortie | Type | Description |
---|---|---|
data | any | Le corps/charge utile de la réponse de l'API |
status | number | Code de statut HTTP (200, 404, 500, etc.) |
headers | object | En-tĂȘtes de rĂ©ponse renvoyĂ©s par le serveur |
Exemples d'utilisation
# Reference API response data
process-data:
type: function
name: "Process API Data"
inputs:
code: |
const responseData = <fetchuserdata.data>;
const statusCode = <fetchuserdata.status>;
const responseHeaders = <fetchuserdata.headers>;
if (statusCode === 200) {
return {
success: true,
user: responseData,
contentType: responseHeaders['content-type']
};
} else {
return {
success: false,
error: `API call failed with status ${statusCode}`
};
}
# Use API data in an agent block
analyze-response:
type: agent
name: "Analyze Response"
inputs:
userPrompt: |
Analyze this API response:
Status: <fetchuserdata.status>
Data: <fetchuserdata.data>
Provide insights about the response.
# Conditional logic based on status
check-status:
type: condition
name: "Check API Status"
inputs:
condition: <fetchuserdata.status> === 200
connections:
true: success-handler
false: error-handler
Exemple pratique
user-api:
type: api
name: "Fetch User Data"
inputs:
url: "https://api.example.com/users/123"
method: GET
connections:
success: process-response
process-response:
type: function
name: "Process Response"
inputs:
code: |
const user = <fetchuserdata.data>;
const status = <fetchuserdata.status>;
console.log(`API returned status: ${status}`);
console.log(`User data:`, user);
return {
userId: user.id,
email: user.email,
isActive: status === 200
};
Gestion des erreurs
api-with-error-handling:
type: api
name: "API Call"
inputs:
url: "https://api.example.com/data"
method: GET
connections:
success: check-response
error: handle-error
check-response:
type: condition
name: "Check Response Status"
inputs:
condition: <apicall.status> >= 200 && <apicall.status> < 300
connections:
true: process-success
false: handle-api-error
process-success:
type: function
name: "Process Success"
inputs:
code: |
return {
success: true,
data: <apicall.data>,
message: "API call successful"
};
handle-api-error:
type: function
name: "Handle API Error"
inputs:
code: |
return {
success: false,
status: <apicall.status>,
error: "API call failed",
data: <apicall.data>
};
Ăchappement des chaĂźnes YAML
Lors de l'Ă©criture en YAML, certaines chaĂźnes doivent ĂȘtre entre guillemets pour ĂȘtre correctement analysĂ©es :
ChaĂźnes qui doivent ĂȘtre entre guillemets
# URLs with hyphens, colons, special characters
url: "https://api.example.com/users/123"
url: "https://my-api.example.com/data"
# Header values with hyphens or special characters
headers:
- id: header-uuid
cells:
Key: "User-Agent"
Value: "My-Application/1.0"
- id: auth-uuid
cells:
Key: "Authorization"
Value: "Bearer my-token-123"
# Parameter values with hyphens
params:
- id: param-uuid
cells:
Key: "sort-by"
Value: "created-at"
Quand utiliser les guillemets
- â Toujours mettre entre guillemets : URLs, tokens, valeurs avec des traits d'union, des deux-points ou des caractĂšres spĂ©ciaux
- â Toujours mettre entre guillemets : Valeurs qui commencent par des chiffres mais qui doivent rester des chaĂźnes
- â Toujours mettre entre guillemets : ChaĂźnes ressemblant Ă des boolĂ©ens mais qui doivent rester des chaĂźnes
- â Ne pas mettre entre guillemets : ChaĂźnes alphanumĂ©riques simples sans caractĂšres spĂ©ciaux
Exemples
# â
Correct
url: "https://api.stripe.com/v1/charges"
headers:
- id: auth-header
cells:
Key: "Authorization"
Value: "Bearer sk-test-123456789"
# â Incorrect (may cause parsing errors)
url: https://api.stripe.com/v1/charges
headers:
- id: auth-header
cells:
Key: Authorization
Value: Bearer sk-test-123456789
Bonnes pratiques
- Utilisez des variables d'environnement pour les clés API :
{{API_KEY_NAME}}
- Incluez la gestion des erreurs avec les connexions d'erreur
- Définissez des délais d'attente appropriés pour votre cas d'utilisation
- Validez les codes d'état de réponse dans les blocs suivants
- Utilisez des noms de blocs significatifs pour faciliter les références
- Mettez toujours entre guillemets les chaßnes avec des caractÚres spéciaux, les URLs et les tokens