REST-API-Datenquelle

Einführung

Dient zum Anbinden von Daten aus REST-API-Quellen.

Installation

Dieses Plugin ist ein kommerzielles Plugin. Einzelheiten zur Aktivierung finden Sie unter Leitfaden zur Aktivierung kommerzieller Plugins.

REST-API-Quelle hinzufügen

Wählen Sie nach der Aktivierung des Plugins im Dropdown-Menü „Add new“ der Datenquellenverwaltung die Option REST API aus.

20240721171420

REST-API-Quelle konfigurieren

20240721171507

Collection hinzufügen

RESTful-Ressourcen entsprechen den Collections von NocoBase, zum Beispiel der Ressource Users.

GET /users
POST /users
GET /users/1
PUT /users/1
DELETE /users/1

Die entsprechende Konfiguration in der NocoBase-API lautet:

GET /users:list
POST /users:create
POST /users:get?filterByTk=1
POST /users:update?filterByTk=1
POST /users:destroy?filterByTk=1

Die vollständige Spezifikation des NocoBase-API-Designs finden Sie in der API-Dokumentation.

20240716213344

Siehe den Abschnitt „NocoBase API - Core“.

20240716213258

Die Collection-Konfiguration der REST-API-Datenquelle sieht wie folgt aus:

List

Konfigurieren Sie die Zuordnung der Schnittstelle zum Abrufen der Ressourcenliste.

20251201162457

Get

Konfigurieren Sie die Zuordnung der Schnittstelle zum Abrufen der Ressourcendetails.

20251201162744

Create

Konfigurieren Sie die Zuordnung der Schnittstelle zum Erstellen einer Ressource.

20251201163000

Update

Konfigurieren Sie die Zuordnung der Schnittstelle zum Aktualisieren einer Ressource. 20251201163058

Destroy

Konfigurieren Sie die Zuordnung der Schnittstelle zum Löschen einer Ressource.

20251201163204

Die Schnittstellen List und Get müssen konfiguriert werden.

API debuggen

Anforderungsparameter anbinden

Beispiel: Konfigurieren Sie Seitenparameter für die List-Schnittstelle. (Wenn die Drittanbieter-API selbst keine Seitennummerierung unterstützt, werden die abgerufenen Listendaten nachträglich paginiert.)

20251201163500

Beachten Sie, dass nur Variablen wirksam werden, die bereits in der Schnittstelle hinzugefügt wurden.

Parametername für die Drittanbieter-APINocoBase-Parameter
page{{request.params.page}}
limit{{request.params.pageSize}}

Klicken Sie auf „Try it out“, um die Konfiguration zu testen und das Antwortergebnis anzuzeigen.

20251201163635

Antwortformat konvertieren

Das Antwortformat der Drittanbieter-API entspricht möglicherweise nicht dem NocoBase-Standard und muss konvertiert werden, damit es im Frontend korrekt angezeigt werden kann.

20251201164529

Passen Sie die Konvertierungsregeln entsprechend dem Antwortformat der Drittanbieter-API an, damit sie dem NocoBase-Ausgabestandard entsprechen.

20251201164629

Beschreibung des Debugging-Ablaufs

20240717110051

Fehlerinformationen konvertieren

Wenn bei der Drittanbieter-API ein Fehler auftritt, entspricht das Format der Fehlerantwort möglicherweise nicht dem NocoBase-Standard und muss konvertiert werden, damit es im Frontend korrekt angezeigt werden kann.

20251201170545

Wenn keine Konvertierung der Fehlerinformationen konfiguriert ist, werden sie standardmäßig in eine Fehlermeldung mit HTTP-Statuscode umgewandelt.

20251201170732

Nach der Konfiguration der Fehlerinformationskonvertierung entsprechen die Fehlerinformationen dem NocoBase-Ausgabestandard, sodass das Frontend die Fehler der Drittanbieter-API korrekt anzeigen kann.

20251201170946 20251201171113

Variablen

Die REST-API-Datenquelle stellt drei Arten von Variablen für die Anbindung von Schnittstellen bereit:

  • Benutzerdefinierte Variablen der Datenquelle
  • NocoBase-Anfrage
  • Antwort der Drittanbieter-API

Benutzerdefinierte Variablen der Datenquelle

20240716221937

20240716221858

NocoBase-Anfrage

  • Params: URL-Abfrageparameter (Search Params); die Params unterscheiden sich je nach Schnittstelle.
  • Headers: Anfrage-Header; stellen hauptsächlich einige benutzerdefinierte X-Informationen von NocoBase bereit.
  • Body: Body der Anfrage.
  • Token: API-Token der aktuellen NocoBase-Anfrage.

20251201164833

Antwort der Drittanbieter-API

Derzeit wird nur der Body der Antwort bereitgestellt.

20251201164915

Bei der Anbindung der einzelnen Schnittstellen stehen die folgenden Variablen zur Verfügung:

List

ParameterBeschreibung
request.params.pageAktuelle Seitenzahl
request.params.pageSizeAnzahl der Einträge pro Seite
request.params.filterFilterbedingungen (müssen dem NocoBase-Filterformat entsprechen)
request.params.sortSortierregeln (müssen dem NocoBase-Sortierformat entsprechen)
request.params.appendsBei Bedarf zu ladende Felder, normalerweise zum bedarfsgesteuerten Laden von Beziehungsfeldern
request.params.fieldsWelche Felder die Schnittstelle ausgibt (Allowlist)
request.params.exceptWelche Felder ausgeschlossen werden (Denylist)

Get

ParameterBeschreibung
request.params.filterByTkErforderlich, normalerweise die ID des aktuellen Datensatzes
request.params.filterFilterbedingungen (müssen dem NocoBase-Filterformat entsprechen)
request.params.appendsBei Bedarf zu ladende Felder, normalerweise zum bedarfsgesteuerten Laden von Beziehungsfeldern
request.params.fieldsWelche Felder die Schnittstelle ausgibt (Allowlist)
request.params.exceptWelche Felder ausgeschlossen werden (Denylist)

Create

ParameterBeschreibung
request.params.whiteListAllowlist
request.params.blacklistDenylist
request.bodyInitialdaten für die Erstellung

Update

ParameterBeschreibung
request.params.filterByTkErforderlich, normalerweise die ID des aktuellen Datensatzes
request.params.filterFilterbedingungen (müssen dem NocoBase-Filterformat entsprechen)
request.params.whiteListAllowlist
request.params.blacklistDenylist
request.bodyZu aktualisierende Daten

Destroy

ParameterBeschreibung
request.params.filterByTkErforderlich, normalerweise die ID des aktuellen Datensatzes
request.params.filterFilterbedingungen (müssen dem NocoBase-Filterformat entsprechen)

Felder konfigurieren

Extrahieren Sie aus den Daten der CRUD-Schnittstellen der angebundenen Ressource die Metadaten der Felder (Fields) und verwenden Sie sie als Felder der Collection.

20240716223636

Feldmetadaten extrahieren.

20251201165133

Felder und Vorschau.

20240716224403

Felder bearbeiten (ähnlich wie bei anderen Datenquellen).

20240716224704

Block für REST-API-Datenquelle hinzufügen

Nachdem die Collection konfiguriert wurde, können Sie im Interface einen Block hinzufügen.

20240716225120