Aprenda a fazer requisições HTTP em fluxos de trabalho para interagir com APIs REST e serviços externos.
Requisitos:
- URLs do endpoint da API de destino
- Quaisquer credenciais de autenticação necessárias (chaves de API, tokens, etc.)
- Compreensão dos formatos de requisição/resposta da API
Buscar e processar dados
Buscar dados de endpoints da API REST. Os cabeçalhos e parâmetros de URL devem ser JSON stringificado.
O que este fluxo de trabalho faz:
- Realize uma chamada HTTP GET para recuperar dados de um endpoint de API
- Use seletores para extrair o código de status e os dados da resposta
- Registre o status da resposta da API no 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 }}Ações principais: http.get, newrelic.ingest.sendLogs
Enviar dados para sistemas externos
Enviar dados para webhooks, APIs ou serviços de notificação. Os cabeçalhos devem ser JSON stringificado, o corpo deve ser uma string.
O que este fluxo de trabalho faz:
- Execute uma chamada HTTP POST para enviar dados a um endpoint de API
- Use seletores para extrair o status HTTP e a resposta
- Registrar o status da resposta do webhook no 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 comuns:
- Acionar implantações via webhooks CI/CD
- Enviar dados para sistemas de emissão de tíquetes (Jira, ServiceNow)
- Postar em serviços de notificação personalizados
- Integrar com APIs de terceiros
Ações principais: http.post, newrelic.ingest.sendLogs
Qual é o próximo
- Análise JSON: analise as respostas JSON com seletores
- Passagem de dados: passe dados entre as etapas do fluxo de trabalho