Apprenez à effectuer des requêtes HTTP dans les workflows pour interagir avec les API REST et les services externes.
Exigences:
- URL des points de terminaison de l'API cible
- Toutes les informations d'authentification requises (clés API, jetons, etc.)
- Compréhension des formats de requête/réponse API
Récupérer et traiter les données
Récupérer les données à partir des points de terminaison de l'API REST. Les en-têtes et les paramètres d'URL doivent être au format JSON sous forme de chaîne.
Ce que fait ce workflow :
- Effectuer un appel HTTP GET pour récupérer des données à partir d'un point de terminaison API
- Utiliser des sélecteurs pour extraire le code d'état et les données de réponse
- Enregistrer l'état de la réponse de l'API dans New Relic
name: http_get_example
workflowInputs: apiUrl: type: String defaultValue: 'https://api.example.com/data'
steps: - name: fetchData type: action action: http.get version: 1 inputs: url: ${{ .workflowInputs.apiUrl }} headers: '{"Authorization": "Bearer ${{ :secrets:api_token }}"}' urlParams: '{"filter": "active", "limit": "10"}' selectors: - name: status expression: .statusCode - name: data expression: .responseBody | fromjson
- name: logResponse type: action action: newrelic.ingest.sendLogs version: 1 inputs: logs: - message: 'API returned status: ${{ .steps.fetchData.outputs.status }}' attributes: responseData: ${{ .steps.fetchData.outputs.data }}Actions clés: http.get, newrelic.ingest.sendLogs
Envoyer des données à des systèmes externes
Envoyer des données aux webhooks, aux API ou aux services de notification. Les en-têtes doivent être au format JSON sous forme de chaîne, le corps doit être une chaîne.
Ce que fait ce workflow :
- Effectuer un appel HTTP POST pour envoyer des données à un point de terminaison d'API
- Utiliser des sélecteurs pour extraire l'état HTTP et la réponse
- Enregistrer l'état de la réponse du webhook dans New Relic
name: http_post_example
workflowInputs: webhookUrl: type: String alertMessage: type: String
steps: - name: sendNotification type: action action: http.post version: 1 inputs: url: ${{ .workflowInputs.webhookUrl }} headers: '{"Content-Type": "application/json"}' body: '{"event": "alert_triggered", "message": "${{ .workflowInputs.alertMessage }}", "severity": "high"}' selectors: - name: httpStatus expression: .statusCode - name: response expression: .responseBody
- name: logResult type: action action: newrelic.ingest.sendLogs version: 1 inputs: logs: - message: 'Webhook returned status: ${{ .steps.sendNotification.outputs.httpStatus }}'Cas d'utilisation courants:
- Déclencher des déploiements via des webhooks CI/CD
- Envoyer des données aux systèmes de ticketing (Jira, ServiceNow)
- Publier sur des services de notification personnalisés
- Intégrer des API tierces
Actions clés: http.post, newrelic.ingest.sendLogs
Et ensuite ?
- Analyse JSON: Analyser les réponses JSON avec des sélecteurs
- Transmission de données: transmettre des données entre les étapes du workflow