REST-API-Datenquelle

Einführung

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

Installation

Dieses Plugin ist ein kommerzielles Plugin. Eine detaillierte Anleitung zur Aktivierung finden Sie unter Anleitung 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 in 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 Schnittstellenzuordnung zum Abrufen der Ressourcenliste.

20251201162457

Get

Konfigurieren Sie die Schnittstellenzuordnung zum Abrufen der Ressourcendetails.

20251201162744

Create

Konfigurieren Sie die Schnittstellenzuordnung zum Erstellen einer Ressource.

20251201163000

Update

Konfigurieren Sie die Schnittstellenzuordnung zum Aktualisieren einer Ressource. 20251201163058

Destroy

Konfigurieren Sie die Schnittstellenzuordnung zum Löschen einer Ressource.

20251201163204

Die Schnittstellen List und Get müssen konfiguriert werden.

API debuggen

Anforderungsparameter anbinden

Beispiel: Konfigurieren Sie für die List-Schnittstelle die Parameter für die Seitennavigation. (Wenn die Drittanbieter-API selbst keine Seitennavigation unterstützt, werden die abgerufenen Listendaten für die Seitennavigation verwendet.)

20251201163500

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

Name des Anbindungsparameters der Drittanbieter-APINocoBase-Parameter
page{{request.params.page}}
limit{{request.params.pageSize}}

Klicken Sie auf „Try it out“, um den Vorgang 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, sodass 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 Fehlerinformationen in der Antwort 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 diese standardmäßig in eine Fehlerinformation mit HTTP-Statuscode konvertiert.

20251201170732

Nach der Konfiguration der Konvertierung der Fehlerinformationen entsprechen diese dem NocoBase-Ausgabestandard, sodass das Frontend die Fehlerinformationen 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: Anforderungskopf, der hauptsächlich einige benutzerdefinierte X-Informationen von NocoBase bereitstellt.
  • 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 Seitennummer
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, meist zum bedarfsgesteuerten Laden von Beziehungsfeldern
request.params.fieldsWelche Felder die Schnittstelle ausgibt (Whitelist)
request.params.exceptWelche Felder ausgeschlossen werden (Blacklist)

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, meist zum bedarfsgesteuerten Laden von Beziehungsfeldern
request.params.fieldsWelche Felder die Schnittstelle ausgibt (Whitelist)
request.params.exceptWelche Felder ausgeschlossen werden (Blacklist)

Create

ParameterBeschreibung
request.params.whiteListWhitelist
request.params.blacklistBlacklist
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.whiteListWhitelist
request.params.blacklistBlacklist
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 die REST-API-Datenquelle hinzufügen

Nachdem die Collection konfiguriert wurde, können Sie in der Benutzeroberfläche einen Block hinzufügen.

20240716225120