logologo
Start
Handbuch
Entwickler
Plugins
API
Startseite
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Start
Handbuch
Entwickler
Plugins
API
Startseite
logologo
Überblick

API

API-Schlüssel
API-Dokumentation
Anwendungsfälle
SSO

Workflow

Webhook
HTTP-Request
Externe Datenquellen

Eingebettete Inhalte

Iframe-Block
Einbetten
Previous PageWebhook
Next PageExterne Datenquellen
KI-Übersetzungshinweis

Diese Dokumentation wurde automatisch von KI übersetzt.

#Integration von HTTP-Anfragen in Workflows

Mit dem HTTP-Anfrage-Knoten können NocoBase Workflows proaktiv Anfragen an beliebige HTTP-Dienste senden. Dies ermöglicht den Datenaustausch und die Geschäftsintegration mit externen Systemen.

#Übersicht

Der HTTP-Anfrage-Knoten ist eine zentrale Integrationskomponente in Workflows. Er ermöglicht es Ihnen, während der Workflow-Ausführung APIs von Drittanbietern, interne Dienstschnittstellen oder andere Webdienste aufzurufen, um Daten abzurufen oder externe Operationen auszulösen.

#Typische Anwendungsfälle

#Datenabruf

  • Abfragen von Drittanbieter-Daten: Echtzeitdaten von Wetter-APIs, Wechselkurs-APIs usw. abrufen.
  • Adressauflösung: Karten-Dienst-APIs für die Adressanalyse und Geokodierung aufrufen.
  • Synchronisierung von Unternehmensdaten: Kunden- und Bestelldaten aus CRM- und ERP-Systemen abrufen.

#Geschäftliche Auslöser

  • Nachrichtenversand: Benachrichtigungen über SMS-, E-Mail- oder WeCom-Dienste senden.
  • Zahlungsanfragen: Zahlungen, Rückerstattungen usw. über Zahlungs-Gateways initiieren.
  • Auftragsbearbeitung: Frachtbriefe an Logistiksysteme übermitteln, Logistikstatus abfragen.

#Systemintegration

  • Microservice-Aufrufe: APIs anderer Dienste in Microservice-Architekturen aufrufen.
  • Datenmeldung: Geschäftsdaten an Analyseplattformen und Überwachungssysteme melden.
  • Drittanbieter-Dienste: KI-Dienste, OCR-Erkennung, Sprachsynthese usw. integrieren.

#Automatisierung

  • Geplante Aufgaben: Externe APIs regelmäßig aufrufen, um Daten zu synchronisieren.
  • Ereignisreaktion: Externe APIs bei Datenänderungen automatisch aufrufen, um relevante Systeme zu benachrichtigen.
  • Genehmigungs-Workflows: Genehmigungsanfragen über APIs von Genehmigungssystemen einreichen.

#Funktionen

#Umfassende HTTP-Unterstützung

  • Unterstützt alle HTTP-Methoden: GET, POST, PUT, PATCH, DELETE.
  • Unterstützt benutzerdefinierte Anfrage-Header (Headers).
  • Unterstützt verschiedene Datenformate: JSON, Formulardaten, XML usw.
  • Unterstützt verschiedene Parameterarten: URL-Parameter, Pfadparameter, Anfragekörper (Request Body) usw.

#Flexible Datenverarbeitung

  • Variablenreferenzen: Anfragen dynamisch mithilfe von Workflow-Variablen erstellen.
  • Antwort-Parsing: JSON-Antworten automatisch parsen und benötigte Daten extrahieren.
  • Datentransformation: Formatkonvertierung von Anfrage- und Antwortdaten.
  • Fehlerbehandlung: Wiederholungsstrategien, Timeout-Einstellungen und Fehlerbehandlungslogik konfigurieren.

#Authentifizierung

  • Basic Auth: HTTP-Basisauthentifizierung.
  • Bearer Token: Token-Authentifizierung.
  • API Key: Benutzerdefinierte API-Schlüssel-Authentifizierung.
  • Benutzerdefinierte Header: Unterstützung für beliebige Authentifizierungsmethoden.

#Nutzungsschritte

#1. Plugin aktivieren

Der HTTP-Anfrage-Knoten ist eine integrierte Funktion des Workflow-Plugins. Stellen Sie sicher, dass das Workflow Plugin aktiviert ist.

#2. HTTP-Anfrage-Knoten zum Workflow hinzufügen

  1. Erstellen oder bearbeiten Sie einen Workflow.
  2. Fügen Sie an der gewünschten Stelle einen HTTP-Anfrage-Knoten hinzu.

HTTP-Anfrage – Knoten hinzufügen

  1. Konfigurieren Sie die Anfrageparameter.

#3. Anfrageparameter konfigurieren

HTTP-Anfrage-Knoten – Konfiguration

#Basiskonfiguration

  • Anfrage-URL: Ziel-API-Adresse, unterstützt Variablen.

    https://api.example.com/users/{{$context.userId}}
  • Anfragemethode: Wählen Sie GET, POST, PUT, DELETE usw.

  • Anfrage-Header: HTTP-Header konfigurieren.

    {
      "Content-Type": "application/json",
      "Authorization": "Bearer {{$context.apiKey}}"
    }
  • Anfrageparameter:

    • Query-Parameter: URL-Abfrageparameter.
    • Body-Parameter: Daten des Anfragekörpers (POST/PUT).

#Erweiterte Konfiguration

  • Timeout: Anfrage-Timeout einstellen (Standard: 30 Sekunden).
  • Wiederholung bei Fehler: Anzahl der Wiederholungen und Wiederholungsintervall konfigurieren.
  • Fehler ignorieren: Workflow wird auch bei fehlgeschlagener Anfrage fortgesetzt.
  • Proxy-Einstellungen: HTTP-Proxy konfigurieren (falls erforderlich).

#4. Antwortdaten verwenden

Nach der Ausführung des HTTP-Anfrage-Knotens können die Antwortdaten in nachfolgenden Knoten verwendet werden:

  • {{$node.data.status}}: HTTP-Statuscode
  • {{$node.data.headers}}: Antwort-Header
  • {{$node.data.data}}: Daten des Antwortkörpers
  • {{$node.data.error}}: Fehlermeldung (falls die Anfrage fehlgeschlagen ist)

HTTP-Anfrage-Knoten – Verwendung der Antwort

#Beispielszenarien

#Beispiel 1: Wetterinformationen abrufen

// Konfiguration
URL: https://api.weather.com/v1/current
Method: GET
Query Parameters:
  city: {{$context.city}}
  key: your-api-key

// Antwort verwenden
Temperatur: {{$node.data.data.temperature}}
Wetter: {{$node.data.data.condition}}

#Beispiel 2: WeCom-Nachricht senden

// Konfiguration
URL: https://qyapi.weixin.qq.com/cgi-bin/message/send
Method: POST
Headers:
  Content-Type: application/json
Body:
{
  "touser": "{{$context.userId}}",
  "msgtype": "text",
  "agentid": 1000001,
  "text": {
    "content": "Bestellung {{$context.orderId}} wurde versandt"
  }
}

#Beispiel 3: Zahlungsstatus abfragen

// Konfiguration
URL: https://api.payment.com/v1/orders/{{$context.orderId}}/status
Method: GET
Headers:
  Authorization: Bearer {{$context.apiKey}}
  Content-Type: application/json

// Bedingte Logik
Wenn {{$node.data.data.status}} gleich "paid" ist
  - Aktualisieren Sie den Bestellstatus auf "Bezahlt"
  - Senden Sie eine Benachrichtigung über den Zahlungserfolg
Andernfalls, wenn {{$node.data.data.status}} gleich "pending" ist
  - Behalten Sie den Bestellstatus "Zahlung ausstehend" bei
Andernfalls
  - Protokollieren Sie den Zahlungsfehler
  - Benachrichtigen Sie den Administrator, um die Ausnahme zu bearbeiten

#Beispiel 4: Daten mit CRM synchronisieren

// Konfiguration
URL: https://api.crm.com/v1/customers
Method: POST
Headers:
  X-API-Key: {{$context.crmApiKey}}
  Content-Type: application/json
Body:
{
  "name": "{{$context.customerName}}",
  "email": "{{$context.email}}",
  "phone": "{{$context.phone}}",
  "source": "NocoBase",
  "created_at": "{{$context.createdAt}}"
}

#Authentifizierungskonfiguration

#Basic Authentication

Headers:
  Authorization: Basic base64(username:password)

#Bearer Token

Headers:
  Authorization: Bearer your-access-token

#API Key

// Im Header
Headers:
  X-API-Key: your-api-key

// Oder in der Query
Query Parameters:
  api_key: your-api-key

#OAuth 2.0

Zuerst access_token abrufen, dann verwenden:

Headers:
  Authorization: Bearer {{$context.accessToken}}

#Fehlerbehandlung und Debugging

#Häufige Fehler

  1. Verbindungs-Timeout: Überprüfen Sie die Netzwerkverbindung, erhöhen Sie die Timeout-Zeit.
  2. 401 Nicht autorisiert: Überprüfen Sie, ob die Authentifizierungsinformationen korrekt sind.
  3. 404 Nicht gefunden: Überprüfen Sie, ob die URL korrekt ist.
  4. 500 Serverfehler: Überprüfen Sie den Dienststatus des API-Anbieters.

#Debugging-Tipps

  1. Log-Knoten verwenden: Fügen Sie vor und nach HTTP-Anfragen Log-Knoten hinzu, um Anfrage- und Antwortdaten aufzuzeichnen.

  2. Ausführungs-Logs überprüfen: Die Workflow-Ausführungs-Logs enthalten detaillierte Anfrage- und Antwortinformationen.

  3. Test-Tools: Testen Sie die API zuerst mit Tools wie Postman, cURL usw.

  4. Fehlerbehandlung: Fügen Sie bedingte Logik hinzu, um verschiedene Antwortstatus zu behandeln.

Wenn {{$node.data.status}} >= 200 und {{$node.data.status}} < 300 ist
  - Erfolgslogik verarbeiten
Andernfalls
  - Fehlerlogik verarbeiten
  - Fehler protokollieren: {{$node.data.error}}

#Leistungsoptimierung

#1. Asynchrone Verarbeitung verwenden

Für Anfragen, die keine sofortigen Ergebnisse erfordern, sollten Sie asynchrone Workflows in Betracht ziehen.

#2. Angemessene Timeouts konfigurieren

Legen Sie Timeouts basierend auf den tatsächlichen API-Antwortzeiten fest, um übermäßige Wartezeiten zu vermeiden.

#3. Caching-Strategien implementieren

Für selten geänderte Daten (Konfigurationen, Dictionaries) sollten Sie das Caching von Antworten in Betracht ziehen.

#4. Stapelverarbeitung

Wenn Sie mehrere Aufrufe an dieselbe API tätigen müssen, sollten Sie die Verwendung von Batch-Schnittstellen der API in Betracht ziehen (falls unterstützt).

#5. Fehlerwiederholung

Konfigurieren Sie angemessene Wiederholungsstrategien, aber vermeiden Sie übermäßige Wiederholungen, die zu einer API-Ratenbegrenzung führen könnten.

#Sicherheits-Best Practices

#1. Sensible Informationen schützen

  • Geben Sie keine sensiblen Informationen in URLs preis.
  • Verwenden Sie HTTPS für die verschlüsselte Übertragung.
  • Speichern Sie API-Schlüssel und andere sensible Daten in Umgebungsvariablen oder im Konfigurationsmanagement.

#2. Antwortdaten validieren

// Antwortstatus validieren
if (![200, 201].includes($node.data.status)) {
  throw new Error('API request failed');
}

// Datenformat validieren
if (!$node.data.data || !$node.data.data.id) {
  throw new Error('Invalid response data');
}

#3. Anfragefrequenz begrenzen

Beachten Sie die Ratenbegrenzungen von Drittanbieter-APIs, um eine Blockierung zu vermeiden.

#4. Log-Anonymisierung

Achten Sie beim Protokollieren darauf, sensible Informationen (Passwörter, Schlüssel usw.) zu anonymisieren.

#Vergleich mit Webhooks

MerkmalHTTP-Anfrage-KnotenWebhook-Trigger
RichtungNocoBase ruft extern aufExtern ruft NocoBase auf
ZeitpunktWährend der Workflow-AusführungBei externem Ereignis
ZweckDaten abrufen, externe Operationen auslösenExterne Benachrichtigungen, Ereignisse empfangen
Typische SzenarienZahlungs-API aufrufen, Wetter abfragenZahlungs-Callbacks, Nachrichtenbenachrichtigungen

Diese beiden Funktionen ergänzen sich gegenseitig und bilden zusammen eine vollständige Systemintegrationslösung.

#Verwandte Ressourcen

  • Dokumentation des Workflow Plugins
  • Workflow: HTTP-Anfrage-Knoten
  • Workflow: Webhook-Trigger
  • API-Schlüssel-Authentifizierung
  • API-Dokumentations-Plugin