Von ORDIX AG auf Dienstag, 06. Juni 2023
Kategorie: MySQL (PDO)

MySQL REST Service als Datenquelle in Oracle APEX (TEIL 1)

In der heutigen Zeit werden Daten immer wichtiger und Webapplikationen bieten Unternehmen eine Möglichkeit, diese Daten zu verwalten und zu nutzen. Oracle APEX ist eine Anwendungsplattform, die es Entwicklern ermöglicht, schnell und einfach Webapplikationen zu entwickeln. Der MySQL REST Service (MRS) ist ein Feature, welches den Zugriff auf MySQL-Datenbanken über REST-Schnittstellen erlaubt und somit eine schnelle und einfache Variante bietet, auf MySQL-Daten zuzugreifen.

Dieser Blogbeitrag ist eine zweiteilige Serie. Im ersten Teil wird die Vorbereitung auf Seiten von MySQL behandelt, einschließlich des Codes für den Aufbau der Demo-Datenbank. Es werden die einzelnen Schritte zur Konfiguration von MRS beschrieben und wie man Datenbankobjekte über REST bereitstellt. Auch das Bootstrapping und der Start des MySQL Routers werden erläutert. Im zweiten Teil wird beschrieben, wie man MRS als Datenquelle in Oracle APEX nutzen kann.

Was ist REST?

REST (Representational State Transfer) ist ein Architekturstil für verteilte Systeme, der insbesondere für Webanwendungen von Bedeutung ist. Mit REST kann auf Ressourcen über das HTTP(S)-Protokoll zugegriffen werden, was die Umsetzung von RESTful-APIs ermöglicht. Diese erlauben es Entwicklern, Daten mit HTTP(S)-Methoden abzurufen, zu erstellen, zu aktualisieren und zu löschen. Die Kommunikation zwischen Client und Server erfolgt über einheitliche Schnittstellen, die spezifische Ressourcen identifizieren und darauf basierende Operationen ausführen. RESTful-APIs zeichnen sich durch ihre Einfachheit und Skalierbarkeit aus, was sie zu einer sehr beliebten Wahl macht.

Die REST-Architektur besteht aus mehreren grundlegenden Komponenten:

1. Ressourcen: Eine Ressource ist eine eindeutig identifizierbare Entität, auf die über eine URI (Uniform Ressource Identifier) zugegriffen wird. Jede Ressource hat einen bestimmten Zustand und kann von einem Client gelesen oder manipuliert werden.

2. HTTP(S)-Methoden: Die RESTful-API unterstützt die HTTP(S)-Methoden GET, POST, PUT und DELETE, um auf Ressourcen zuzugreifen. Jede dieser Methoden wird für eine bestimmte Aktion verwendet:

3. Darstellung: Eine Darstellung ist eine Repräsentation einer Ressource in einem bestimmten Format, z. B. JSON oder XML. Eine RESTful-API ermöglicht es dem Client, die gewünschte Darstellung auszuwählen und zurückzugeben.

4. Hypermedia: Dies ist eine Möglichkeit, Ressourcen zu verknüpfen und ihre Beziehungen zueinander zu beschreiben. Ein typisches Beispiel ist ein Link, der auf eine andere Ressource verweist. 

Im nächsten Abschnitt werden wir den MySQL REST Service im Detail betrachten und erfahren, wie man diesen zum Erstellen von REST-Schnittstellen nutzen kann. 

Was ist der MySQL REST Service (MRS)?

MRS ist ein Feature des MySQL Routers, welches den schnellen und (sicheren) Zugriff auf Daten in der MySQL-Datenbank via HTTP(S) ermöglicht. Es lässt die Veröffentlichung von RESTful Web Services zu, um mit diesen Daten zu interagieren. Die Konfiguration kann dabei über die MySQL Shell für Visual Studio Code (VS Code) erfolgen. Dies ist ein einfacher Weg, Datenbankobjekte freizugeben und zu verwalten. Alternativ kann die Einrichtung natürlich auch über Kommandos (z. B. über die MySQL Shell) erfolgen. Dies ist hilfreich, wenn solche Prozesse geskriptet und/oder automatisiert werden sollen. Der MRS ist also das MySQL-Pendant zum Oracle REST Data Service (ORDS) für Oracle-Datenbanken.

Der MySQL REST Service besteht aus mehreren Komponenten, darunter:

Sobald die notwendigen Tools erfolgreich installiert wurden, kann der MRS über die Benutzeroberfläche von VS Code verwaltet werden. Nach dem Öffnen von VS Code erscheint die Oberfläche wie in der folgenden Abbildung dargestellt:

Erstellung einer Datenbankverbindung

Um REST-Schnittstellen zu erstellen, ist es notwendig, eine Verbindung zu einer MySQL-Datenbank herzustellen. Sie können dafür die Datenbankverbindungsmaske in VS Code verwenden. Das Vorgehen dazu ist wie folgt:

Wenn die Verbindung erfolgreich hergestellt wurde, wird sie in der Liste der Verbindungen angezeigt:

Erstellung einer Datenbank mit Datenbankobjekten

Um die Bereitstellung von REST-Schnittstellen im MRS zu demonstrieren, wird zunächst eine Datenbank mit dem Namen „db_demo_mrs“ erstellt. Anschließend wird eine Tabelle namens „mitarbeiter“ innerhalb dieser Datenbank angelegt und Beispiel-Datensätze in diese Tabelle eingefügt. Dieser Vorgang kann in die folgenden Schritte unterteilt werden: 

Nachdem die Tabelle „Mitarbeiter“ erstellt wurde, können Sie die Tabelle in der Datenbankverbindungsstruktur auswählen und auf „Daten anzeigen“ klicken, um die Daten darzustellen: 

Bereitstellung der Mitarbeiter-Tabelle über die REST-Schnittstelle

Konfigurieren Sie die Instanz für die Unterstützung von MySQL Rest Service:

        □  Führen Sie den folgenden Befehl aus, um in den Javascript-Modus zu wechseln: /js

        □  Instance konfigurieren: mrs.configure()

REST-Service hinzufügen:

Datenbankobjekt zum REST-Service hinzufügen:

Bootstrapping und Starten des MySQL Routers: Klicken Sie mit der rechten Maustaste auf das MRS-Element im Baum. Wählen Sie „Start Local MySQL Router Instance“.

Das Bootstrapping vom MySQL Router ist ein Prozess, bei dem die mysqlrouter.conf-Datei automatisch anhand der Metadaten konfiguriert wird. Der Bootstrap-Prozess startet das übliche Routing nicht, sondern konfiguriert stattdessen die Routing-Verbindungen zu den Serverinstanzen. Nach dem Bootstrap-Prozess können Client-Anwendungen, über die von MySQL Router veröffentlichten Ports eine Verbindung herstellen, und es leitet automatisch Client-Verbindungen an die Instanzen weiter, basierend auf dem eingehenden Port.

Wenn der Bootstrap-Prozess zuvor nicht abgeschlossen wurde, wird er automatisch gestartet. Geben Sie bei Aufforderung das Passwort für die DB-Verbindung und ein zufälliges JSON-Web Token (JWT)-Secret ein. Beachten Sie, dass dieses JWT-Geheimnis für alle MySQL Router-Instanzen gleich sein muss, wenn Sie mehrere Router für dieselbe MySQL-Lösung bereitstellen. Sobald der MySQL Router gestartet ist, können die Debug-Ausgaben im VS Code-Terminal angezeigt werden.

Überblick über Mitarbeiter Schnittstelle

In dem vorherigen Kapitel wurde die Tabelle „mitarbeiter“ über REST bereitgestellt. Jetzt wollen wir uns ansehen, wie die Schnittstelle aussieht.

Die Schnittstelle sieht wie folgt aus: https://host:8443/api/db_demo_mrs/mitarbeiter

Die Schnittstelle Operationen sind:

Mitarbeiternr ist eine URL Pattern Variable.

Fazit

Zusammenfassend lässt sich sagen, dass der erste Teil dieser Blog-Serie einen ausführlichen Leitfaden zur Vorbereitung von MySQL für die Verwendung mit MRS bietet. Die Schritte zur Erstellung einer Demo-Datenbank, zur Konfiguration von MRS und zur Bereitstellung von Datenbankobjekten über REST werden leicht verständlich erläutert. Auch das Bootstrapping und der Start des MySQL Routers werden einfach und schnell durchgeführt. Durch das Befolgen dieser Schritte können Oracle APEX-Benutzer nun auf MySQL-Datenbanken zugreifen und die Funktionalität ihrer Anwendungen erweitern. Im zweiten Teil dieser Serie wird erläutert, wie MRS als Datenquelle in Oracle APEX genutzt werden kann. 

Seminarempfehlung

Kommentare hinterlassen