REST API: Plattform-API

3. Juli 2019

Lang: cs en de es

Wie führt man eine Webanwendung als REST-API aus? Hier kommt die API Platform Bibliothek ins Spiel. Hier beschreibe ich, wie man eine REST-API mit Symfony und der API Platform-Bibliothek erstellt.

Die REST-API ist nun schon seit einiger Zeit populär. Mancherorts hat diese Technologie bereits Einzug gehalten, andere wissen noch nicht einmal, was sie ist. Es ist nichts anderes als die Verwendung des HTTP-Protokolls als Grundlage für die Definition eines Standards. Mehr über REST auf Wikipedia.

Wenn es einen Standard gibt, werden Bibliotheken geschaffen, die es ermöglichen, die Technologie effizient zu nutzen. Effizient bedeutet, dass:

  • Das Design der Technologie/Bibliothek wird besser sein, weil mehr Leute beteiligt waren
  • Ich muss nicht neu schreiben, was bereits getan wurde
  • Jemand pflegt die Bibliothek
  • Mehr Leute haben den Code gesehen
So kann sich der Programmierer darauf konzentrieren, die Technologie und die Bibliothek zu erlernen und die Technologie in seine Anwendung zu implementieren.

Eine der REST-API-Implementierungen für PHP ist API Platform, die hauptsächlich für das Symphony-Framework entwickelt wurde.

Anstatt eine lange Beschreibung des Was und Wie zu geben, zeige ich ein paar Beispiele und Details zur Verwendung sind im Video am Ende dieses Artikels. Für ausführlichere Informationen empfehle ich wikipedia, google und die Dokumentation.

Voraussetzungen

Um loszulegen, benötigen Sie:

  • Composer
  • php7
  • Symphones, Doctrine
  • Datenbank - z.B. mysql

Verwendung


Wie fängt man mit REST und der Nutzung der Plattform-API an? Hier ist einfach eine kleine Demo.

Ein Projekt einrichten:

$ composer create-project symfony/skeleton bookshop-api
$ cd bookshop-api

$ composer req api
Richten Sie die Datenbankverbindung ein:
$ export DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name
Erstellen Sie eine Datenbank und einen Datenbankbenutzer mit Rechten:
MariaDB [(none)]> create database db_name;
MariaDB [(none)]> create user db_user@localhost identified by 'db_password';
GRANT ALL PRIVILEGES ON db_name. * TO 'db_user'@'localhost';


MariaDB [(none)]> flush privileges;
$ bin/console doctrine:schema:create
Starten Sie die Anwendung:
$ php -S *1:8000 -t public
Die Symfony-Anwendung ist dann verfügbar unter:
http://192.165.85.12:8000
Die API ist verfügbar unter:
http://192.165.85.12:8000/api
Anhand der beiden bereits definierten Entitätsdateien erstellen:
bin/console doctrine:schema:update --force
Wir fügen Anmerkungen zum PHP-Code für die Entität hinzu:
use ApiPlatform\Core\Annotation\ApiResource;
/**
 * ...
 *
 * @ApiResource
 */
 
Jetzt können wir die API über POST- und GET-HTTP-Anfragen an der URL mit der visuellen API-Präsentation testen. api-platform-rest.png
{
  "isbn": "9781782164104",
  "title": "Persistenz in PHP mit dem Doctrine ORM",
  "description": "Dieses Buch richtet sich an PHP-Entwickler ... zum besseren Verständnis von Persistenz und ORM,
  "author": "Kévin Dunglas",
  "publicationDate": "2013-12-01"
}
{
    "book": "/books/1",
    "rating": "5",
    "body": "Interessantes Buch!",
    "author": "Kévin",
    "publicationDate": "September 21, 2016"
}
api-platform-entita.png

Video

Live-Stream mit einer praktischen Demonstration des Einsatzes:

Ressourcen

Ressourcen und Dokumentation api-Plattformen

Artikel zu einem ähnlichen Thema

Python-Programm zur Steuerung von Docker über die API
Wie man MailCatcher zum Testen von E-Mails verwendet
Python OpenAI API
Erstellen einer WebSocket-Webanwendung und Einrichten eines Proxys
Projektmanagement: agile Softwareentwicklung
Wie man alte PHP-Anwendungen ausführt
Was ein guter Programmierer wissen sollte
Programmiersprache Rust
NodeJS: Entwicklung, Serverkonfiguration
Nette Sicherheitslücke CVE-2020-15227
Kundenspezifisches Web- und E-Mail-Hosting mit ISP Config-Software
Programmierung in SQL: PostgreSQL, MySQL/MariaDB
HTTPS: sicheres Web
NoSQL-Datenbank Mongo DB
Herstellen einer Verbindung zu Microsoft SQL Server unter Linux
Was ist die Stellenbeschreibung eines Programmierers?
Lokalisierung von Python-Anwendungen
Welches Mail- und Webhosting Sie wählen sollten
Digispark - Atmel ATtiny Mikrocontroller mit Arduino IDE programmieren
Entwicklung für ARM-Prozessoren mit Arduino IDE
Wie programmiere ich den ESP8266 WiFi-Prozessor?
Offenes Smartphone mit Linux - Openmoko Neo FreeRunner

Newsletter

Wenn Sie daran interessiert sind, gelegentlich Neuigkeiten per E-Mail zu erhalten.
Sie können sich registrieren, indem Sie Ihre E-Mail-Adresse eingeben News-Abonnement.


+