Aprenda a realizar solicitudes HTTP en flujos de trabajo para interactuar con las API REST y los servicios externos.
Requisitos:
- URLs de los endpoints de la API de destino
- Cualquier credencial de autenticación requerida (claves de API, tokens, etc.)
- Comprensión de los formatos de solicitud/respuesta de la API
Obtener y procesar datos
Obtener datos de los puntos finales de la API REST. Las cabeceras y los parámetros de URL deben ser JSON en formato de cadena.
Lo que hace este flujo de trabajo:
- Realizar una llamada HTTP GET para recuperar datos de un punto final de la API.
- Utilice selectores para extraer el código de estado y los datos de respuesta
- Registrar el estado de la respuesta de la API en 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 }}Acciones clave: http.get, newrelic.ingest.sendLogs
Enviar datos a sistemas externos.
Enviar datos a webhooks, API o servicios de notificación. Las cabeceras deben ser JSON stringificado, el cuerpo debe ser una cadena.
Lo que hace este flujo de trabajo:
- Realizar una llamada HTTP POST para enviar datos a un punto final de la API
- Utilice selectores para extraer el estado HTTP y la respuesta
- Registrar el estado de la respuesta del webhook en 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 }}'Casos de uso comunes:
- Desencadenar implementaciones a través de webhooks de CI/CD
- Enviar datos a los sistemas de tickets (Jira, ServiceNow)
- Publicar en servicios de notificación personalizados
- Integrar con API de terceros
Acciones clave: http.post, newrelic.ingest.sendLogs
Que sigue
- Análisis JSON: Analizar respuestas JSON con selectores
- Paso de datos: Pasar datos entre pasos del flujo de trabajo