How to Create a MySQL REST API in asy Steps

王林
Release: 2024-07-25 11:40:21
Original
671 people have browsed it

How to Create a MySQL REST API in asy Steps

According to StackOverflow’s 2022 survey, 46% of professional developers rate MySQL as the most popular database to use in the workspace. As programmers, we should not be bothered with repeatedly writing code which is otherwise readily available, robust, and well-tested.

Yet this problem remains persistent in the REST API space, despite the implementation process being by this point in time rote, repetitive, and prone to error and oversight. This oversight is costly for several reasons:

  • End users just *do not care* how the API was implemented, meaning there is no competitive advantage to be had by hand-crafting a new API for each project.
  • Error and oversight in the API implementation and deployment phase can come at a very steep price due to security lapses and performance issues.
  • Repeatedly building one-off APIs means they can’t be managed via a single platform; unless the team decides to devote even more time and effort to building a custom management solution.

Fortunately for us programmers, the DreamFactory platform can easily absolve your team from all of these hassles and much more by offering a centralized solution for the API documentation, generation, and security. In this tutorial you’ll learn just how easy it is to build, secure, and deploy a REST API for your MySQL database.

Table of Contents

  • What is a MySQL REST API?
  • Why is MySQL REST APIs Important?
    • 1. Using DreamFactory
    • 2. Generating the MySQL REST API
    • 3. Viewing the Swagger Documentation
    • 4. Creating a Role and API Key
    • 5. Configuring CORS for your MySQL API
    • 6. Testing the MySQL REST API
  • Alternative Approaches to MySQL API Creation
  • Where to From Here

What is a MySQL REST API?

A MySQL API, is a set of functions, protocols, and tools that allow developers to interact with a MySQL database programmatically from their applications or scripts.

This API provides a way for applications to send queries to the MySQL database, retrieve data, modify data, and perform various database operations. It acts as an intermediary layer between the application code and the database server, facilitating seamless communication and data manipulation.

Common MySQL APIs include MySQL Connector/ODBC, MySQL Connector/J (for Java), MySQLi (for PHP), and many others, each tailored to specific programming languages or frameworks.

Why is MySQL REST APIs Important?

MySQL APIs play a pivotal role in software development by facilitating interaction between applications and MySQL databases.

These APIs act as ‘in betweens’, abstracting the complexities of database operations and providing a standardized interface for developers. Their significance lies in enabling applications to store, retrieve, modify, and manage data efficiently.

MySQL APIs offer compatibility with a diverse range of programming languages and frameworks, allowing developers to work with MySQL using their preferred tools. They enhance security by offering features like prepared statements and input validation to protect against common security vulnerabilities like SQL injection.

Performance optimization features like connection pooling and caching help improve database interaction efficiency. The portability afforded by MySQL APIs means that applications can potentially transition to different database systems without major code overhauls, while their scalability capabilities make them suitable for handling increased workloads.

MySQL APIs benefit from the extensive support of the MySQL developer community, ensuring a wealth of resources, libraries, and tools for developers.

How to Create the MySQL REST API

DreamFactory can generate REST APIs for a multitude of databases, among them MySQL, Microsoft SQL Server, Oracle, PostgreSQL, and MongoDB.

1. Using DreamFactory

To do so, you’ll login to the DreamFactory administration interface, navigate toServicesand then enter the service creation interface by clicking on theCreatebutton located to the left of the screen. From there you’ll select the MySQL service type by navigating toAPI Generation > Database, then selecting MySQL from our database options(see below screenshot).

How to Create a MySQL REST API in asy Steps

Als nächstes werden Sie aufgefordert, einen Namen, eine Bezeichnung und eine Beschreibung anzugeben (siehe Screenshot unten). Die beiden letztgenannten werden nur zu Referenzzwecken innerhalb der Verwaltungsoberfläche verwendet. Der Namenswert ist jedoch besonders wichtig, da er, wie Sie gleich sehen werden, Teil der API-URL sein wird.

How to Create a MySQL REST API in asy Steps

Klicken Sie abschließend auf die RegisterkarteKonfiguration. Hier werden Sie aufgefordert, die Anmeldeinformationen für die Datenbankverbindung anzugeben (siehe Screenshot unten). Das sollte eigentlich nichts Neues sein; Sie geben einen Hostnamen, einen Benutzernamen, ein Passwort und eine Datenbank an. Darüber hinaus können Sie optional weitere Konfigurationsmerkmale wie Treiberoptionen, Zeitzone und Caching-Einstellungen angeben. Für dieses Tutorial werde ich mich auf die erforderlichen Felder beschränken und die optionalen Funktionen unberührt lassen.

How to Create a MySQL REST API in asy Steps

Wenn die Anmeldeinformationen vorhanden sind, klicken Sie einfach auf die Schaltfläche „Speichern“ unten auf dem Bildschirm und schon wurde die REST-API generiert!

2. Anzeigen der Swagger-Dokumentation

Zusammen mit der API generiert DreamFactory automatisch einen umfangreichen Satz interaktiver Swagger-Dokumentation für Ihre API. Sie können darauf zugreifen, indem Sie oben in der Verwaltungsoberfläche auf die Registerkarte „API-Dokumente“ klicken und dann den neu generierten Dienst nach Namen auswählen. Ihnen werden 44 Endpunkte angezeigt, die zum Ausführen gespeicherter Prozeduren, zum Durchführen von CRUD-Vorgängen, zum Abfragen von Ansichten und vielem mehr nützlich sind. Der folgende Screenshot zeigt beispielsweise nur eine kleine Teilmenge der neu generierten MySQL-REST-API-Endpunkte!

How to Create a MySQL REST API in asy Steps

3. Erstellen einer Rolle und eines API-Schlüssels

Alle von DreamFactory generierten APIs werden automatisch (mindestens) durch einen API-Schlüssel geschützt. Sie können Benutzer optional mithilfe der Basisauthentifizierung, SSO oder Verzeichnisdienste (LDAP und Active Directory) authentifizieren. Darüber hinaus können Sie jedem API-Schlüssel und/oder Benutzer eine *Rolle* zuordnen, die genau bestimmt, auf welche Dienste der Benutzer zugreifen darf. Darüber hinaus können Sie Interaktionen auf eine bestimmte Datenbanktabelle oder einen Satz von Tabellen, einen oder mehrere bestimmte Endpunkte beschränken und sogar einschränken, welche HTTP-Methoden zulässig sind.

Der Schutz der Benutzer, die für die Interaktion mit der MySQL-Datenbank im Namen Ihrer APIs verantwortlich sind, ist ein unglaublich wichtiger Teil des API-Entwicklungs- und Integrationsprozesses. Sehen Sie sich unsere anderen Empfehlungen zu verbesserter Datensicherheit mit MySQL-Privilegien und DreamFactory an

Als Beispiel erstellen wir eine neue Rolle, die den zugehörigen API-Schlüssel auf die schreibgeschützte Interaktion mit einer einzelnen Tabelle innerhalb der neu erstellten MySQL-API beschränkt. Navigieren Sie dazu zur Registerkarte „Rollen“ und klicken Sie auf die Schaltfläche „Erstellen“. Ihnen wird die im folgenden Screenshot gezeigte Benutzeroberfläche angezeigt.

Klicken Sie als Nächstes auf die Registerkarte „Zugriff“. Hier definieren Sie, was die Rolle tun kann. Im folgenden Screenshot sehen Sie, dass ich die Rolle auf die Interaktion mit dem MySQL-Dienst beschränkt habe und innerhalb dieses Dienstes die Rolle nur mit dem Endpunkt_table/employees*über die GET-Methode interagieren kann. Wir sind im Lockdown, Baby!

How to Create a MySQL REST API in asy Steps

Speichern Sie die Rolle, indem Sie auf die SchaltflächeSpeichernklicken. Jetzt erstellen wir einen neuen API-Schlüssel und verknüpfen den Schlüssel mit dieser Rolle. Klicken Sie dazu auf die Registerkarte „API-Schlüssel“ unter der Dropdown-Liste „API-Typen“, wählen Sie „API-Schlüssel“ aus und klicken Sie dann auf die Schaltfläche „+“. Weisen Sie Ihrer neuen App einen Namen und eine Beschreibung zu, stellen Sie sicher, dass sie auf „Aktiv“ eingestellt ist, und weisen Sie ihr dann die Standardrolle „MySQL“ zu, so wie ich es im folgenden Screenshot getan habe. Was die Einstellung „App-Standort“ betrifft, sollten Sie „Kein Speicher erforderlich“ auswählen, wenn Sie planen, über eine Web- oder Mobilanwendung oder über einen anderen Webdienst mit der API zu interagieren.

How to Create a MySQL REST API in asy StepsDrücken Sie die Schaltfläche „Speichern“ und Sie kehren zum Apps-Indexbildschirm zurück, wo der neue API-Schlüssel kopiert werden kann! Kopieren Sie den Schlüssel zur späteren Bezugnahme in eine Textdatei.

4. Konfigurieren Sie CORS für Ihre MySQL-API

Wir müssen noch einen letzten Konfigurationsschritt durchführen, bevor wir die API von außerhalb der DreamFactory-Verwaltungsoberfläche testen können. Sie müssen CORS (Cross-Origin Resource Sharing) für die neue API aktivieren. Sie finden es im Dropdown-Menü „Konfiguration“ und wählen Sie „CORS“ aus. Zu Demonstrationszwecken können Sie die standardmäßige CORS-Einstellung festlegen, wie ich es im folgenden Screenshot getan habe, wodurch API-beschränkter Datenverkehr von allen Netzwerkadressen zugelassen wird:

How to Create a MySQL REST API in asy Steps

5. Testen der MySQL REST API

Sobald die API generiert, der API-Schlüssel und die zugehörige Rolle erstellt und CORS konfiguriert sind, können Sie mit der Interaktion mit der API über einen Client beginnen! Ich verwende Insomnia gerne für HTTP-Tests unter MacOS, eine andere beliebte Lösung ist jedoch Postman.

Im folgenden Screenshot verwende ich Insomnia, um den Endpunkt/api/v2/_table/employeesüber eine GET-Anfrage zu kontaktieren.

How to Create a MySQL REST API in asy Steps

Denken Sie daran, dass wir diesen API-Schlüssel so gesperrt haben, dass er nur mit den Endpunkten/api/v2/_table/employees/*über die GET-Methode interagiert. Was passiert also, wenn wir versuchen, an diese Tabelle zu posten? Es wird der Statuscode 401 (Nicht autorisiert) zurückgegeben, wie im folgenden Screenshot dargestellt:

How to Create a MySQL REST API in asy Steps

How to Create a MySQL REST API in asy Steps

Alternative Ansätze zur MySQL-API-Erstellung

Offensichtlich ist DreamFactory nicht die einzige verfügbare Lösung. Eine andere Möglichkeit, eine MySQL-REST-API zu erstellen, besteht darin, sie manuell von Hand zu codieren. Dies dauert jedoch erheblich länger und ist schwieriger. Bei der manuellen Erstellung einer API gibt es auch andere Bedenken, die man berücksichtigen muss, beispielsweise die API-Sicherheit. Hier sind ein paar kurze Tipps, wie Sie mit der manuellen Codierung Ihrer nächsten API beginnen können.

1. Installieren und richten Sie einen Webserver wie Apache oder Nginx ein und installieren Sie PHP und MySQL auf Ihrem Server

Der erste Schritt zum Aufbau einer MySQL-REST-API besteht darin, einen Webserver wie Apache oder Nginx einzurichten, der eingehende HTTP-Anfragen von Clients verarbeitet und mit entsprechenden Inhalten antwortet. Sie müssen außerdem PHP auf dem Server installieren, eine serverseitige Skriptsprache, die mit MySQL interagieren kann, um Daten abzurufen oder zu speichern. Schließlich müssen Sie MySQL installieren, ein relationales Datenbankverwaltungssystem, das Daten in Tabellen speichern und verwalten kann. Sobald Sie alle diese Komponenten eingerichtet haben, können Sie mit dem Aufbau der REST-API beginnen.

2. Erstellen Sie eine MySQL-Datenbank und eine oder mehrere Tabellen zum Speichern der Daten, die Sie über die API verfügbar machen möchten.

Eine Datenbank ist eine Sammlung zusammengehöriger Daten, die strukturiert organisiert sind, beispielsweise in Tabellen mit Spalten und Zeilen. MySQL ist ein beliebtes relationales Datenbankverwaltungssystem, mit dem Sie Datenbanken und Tabellen erstellen und verwalten können.

Um eine Datenbank in MySQL zu erstellen, können Sie den Befehl CREATE DATABASE in der MySQL-Befehlszeilenschnittstelle oder ein Tool wie phpMyAdmin verwenden.

3. Erstellen Sie ein PHP-Skript, das eine Verbindung zur Datenbank herstellt und die Daten mithilfe von SQL-Abfragen abruft.

Um von PHP aus eine Verbindung zur MySQL-Datenbank herzustellen, können Sie eine von mehreren Erweiterungen wie MySQLi oder PDO verwenden. Sobald Sie eine Verbindung hergestellt haben, können Sie SQL-Abfragen ausführen, um Daten aus der Datenbank abzurufen. Die SQL-Abfragen sollten so konzipiert sein, dass sie die Daten abrufen, die Sie über die API verfügbar machen möchten, und sollten parametrisiert sein, um SQL-Injection-Angriffe zu verhindern.

Sobald Sie die Daten aus der Datenbank abgerufen haben, können Sie sie mit den integrierten PHP-Funktionen als JSON formatieren. JSON ist ein leichtes Datenformat, das leicht zu analysieren ist und von vielen Programmiersprachen unterstützt wird.

4. Verwenden Sie die PHP Data Objects (PDO)-Erweiterung, um die SQL-Anweisungen auf sichere Weise vorzubereiten und auszuführen und die Ergebnisse abzurufen.

PDO ist eine leistungsstarke und flexible Erweiterung, die eine konsistente Schnittstelle für den Zugriff auf Datenbanken in PHP bietet. PDO kann mit einer Vielzahl von Datenbanktreibern, einschließlich MySQL, verwendet werden und bietet Funktionen wie vorbereitete Anweisungen und Parameterbindung, die dabei helfen können, SQL-Injection-Angriffe zu verhindern.

Um PDO mit MySQL zu verwenden, müssen Sie ein neues PDO-Objekt erstellen und die Verbindungsdetails für Ihre Datenbank übergeben. Anschließend können Sie eine SQL-Anweisung mit der Methode „prepare()“ vorbereiten, beliebige Parameter mit den Methoden „bindParam()“ oder „bindValue()“ binden und die Anweisung mit der Methode „execute()“ ausführen. Schließlich können Sie die Ergebnisse der Abfrage mit Methoden wie fetch(), fetchAll() oder fetchColumn() abrufen.

5. Konvertieren Sie die Daten mithilfe der Funktion json_encode() in das JSON-Format und geben Sie sie mithilfe der entsprechenden HTTP-Header (z. B. Content-Type: application/json) an den Client aus.

Die Funktion json_encode() ist eine integrierte PHP-Funktion, mit der Daten in eine JSON-formatierte Zeichenfolge konvertiert werden können. Sie können der Funktion einen beliebigen Datentyp übergeben, z. B. ein Array oder ein Objekt, und dieser wird in eine JSON-Zeichenfolge konvertiert, die problemlos von Clientanwendungen verwendet werden kann.

Sobald Sie die JSON-formatierte Zeichenfolge haben, müssen Sie sie mit den entsprechenden HTTP-Headern an den Client ausgeben. In PHP können Sie die Header mithilfe der Funktion header() festlegen, mit der Sie den Inhaltstyp und andere Metadaten zur Antwort angeben können. Um beispielsweise JSON-Daten auszugeben, können Sie den Content-Type-Header auf „application/json“ setzen.

Durch die Ausgabe der Daten im JSON-Format und das Festlegen der entsprechenden HTTP-Header können Sie sicherstellen, dass Ihre REST-API problemlos von Clientanwendungen genutzt werden kann und den Standard-Webkonventionen entspricht.

6. Umgang mit HTTP-Anfragen von Clients

HTTP-Anfragen sind die Art und Weise, wie Clients (z. B. Webbrowser oder mobile Apps) mit Ihrer API kommunizieren, um Daten anzufordern oder andere Aktionen auszuführen. Um diese Anfragen zu bearbeiten, müssen Sie PHP-Code schreiben, der die Anfrage verarbeiten und eine entsprechende Antwort zurückgeben kann.

PHP bietet mehrere Funktionen, mit denen auf Informationen zur aktuellen Anfrage zugegriffen werden kann, z. B. $_SERVER, $_GET, $_POST und $_REQUEST. Diese Variablen enthalten Informationen wie die HTTP-Methode (z. B. GET oder POST), den URL-Pfad und alle Abfrageparameter oder Anforderungskörperdaten.

Um verschiedene Arten von Anfragen zu bearbeiten, müssen Sie PHP-Code schreiben, der die eingehenden Daten analysieren und bestimmen kann, welche Maßnahmen ergriffen werden müssen. Wenn der Client beispielsweise eine GET-Anfrage stellt, um Daten von der API abzurufen, führt Ihr Code möglicherweise eine SQL-Abfrage aus, um die Daten abzurufen und sie als JSON-Antwort zurückzugeben. Wenn der Client eine POST-Anfrage zum Erstellen eines neuen Datensatzes stellt, fügt Ihr Code möglicherweise die neuen Daten in die MySQL-Datenbank ein und gibt eine Erfolgsmeldung zurück.

7. Implementieren Sie Fehlerbehandlung und Validierung, um sicherzustellen, dass die API robust und sicher ist.

Um die Fehlerbehandlung und -validierung in Ihrer API zu implementieren, müssen Sie PHP-Code schreiben, der Fehler erkennen und darauf reagieren sowie Benutzereingaben validieren kann. PHP bietet mehrere integrierte Funktionen, die zur Fehlerbehandlung verwendet werden können, wie zum Beispiel trigger_error() oder set_error_handler(). Zur Validierung möchten Sie möglicherweise reguläre Ausdrücke, PHP-Filter oder benutzerdefinierte Validierungsfunktionen verwenden.

8. Stellen Sie die API auf Ihrem Webserver bereit und testen Sie sie mit Tools wie cURL oder Postman.

Um Ihre API bereitzustellen, müssen Sie die PHP-Dateien und alle anderen erforderlichen Dateien (wie CSS, JavaScript oder Bilder) auf Ihren Webserver hochladen. Abhängig von Ihrer Webserverkonfiguration müssen Sie möglicherweise Ihre .htaccess-Datei ändern, um sicherzustellen, dass die API korrekt weitergeleitet wird.

Sobald Ihre API bereitgestellt ist, können Sie sie mit Tools wie cURL oder Postman testen. Mit diesen Tools können Sie HTTP-Anfragen an Ihre API senden und die Antwortdaten überprüfen. Mit diesen Tools können Sie verschiedene Arten von Anforderungen testen (z. B. GET, POST, PUT oder DELETE), die Fehlerbehandlung und -validierung testen und sicherstellen, dass die API die richtigen Daten im richtigen Format (z. B. JSON oder XML) zurückgibt ).

Beim Testen Ihrer API ist es wichtig, auf Leistung, Sicherheit und Benutzerfreundlichkeit zu achten. Sie sollten Ihre API unter verschiedenen Bedingungen testen (z. B. hohem Datenverkehr oder langsamen Netzwerkverbindungen), um sicherzustellen, dass sie gut funktioniert und stabil bleibt. Sie sollten Ihre API auch auf Sicherheitslücken testen (z. B. SQL-Injection oder Cross-Site-Scripting) und sicherstellen, dass sie für Kunden einfach zu verwenden und zu verstehen ist.

Hier ist ein Beispiel-PHP-Code für eine einfache REST-API, die Daten aus einer MySQL-Datenbank abruft:

How to Create a MySQL REST API in asy Steps

Wohin von hier aus?

Ob Sie es glauben oder nicht, wir haben nur an der Oberfläche gekratzt, was DreamFactory für Sie tun kann. Wenn Sie unsere SQL Server-, Oracle- oder MongoDB-Konnektoren in Aktion sehen oder sehen möchten, wie einfach es ist, einen SOAP-Dienst in REST zu konvertieren, ohne Code zu schreiben, vereinbaren Sie doch einen Termin mit unserem Engineering-Team! Besuchen Sie https://www.dreamfactory.com/products und vereinbaren Sie noch heute eine Demo!

Andere Datenbanken, die DreamFactory unterstützt:

  • MongoDB
  • SQL-Server
  • IBM DB2

Der Beitrag „So erstellen Sie eine MySQL-REST-API in 6 einfachen Schritten“ erschien zuerst im DreamFactory Software-Blog.

The above is the detailed content of How to Create a MySQL REST API in asy Steps. For more information, please follow other related articles on the PHP Chinese website!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!