Daniel Stender Selbständig

„Flask bietet mit seinem minimalistischen Ansatz schnelles Prototyping und gute Reaktionszeiten, was gegenüber anderen Webframeworks einen Pluspunkt ausmacht.“

Das Python-Framework Flask verfolgt einen minimalistischen Ansatz und eignet sich mit kurzen Reaktionszeiten gut für Microservices und Programmierschnittstellen. RESTful APIs haben sich mittlerweile als Standard für die Kommunikation unter Maschinen durchgesetzt. Dieser Artikel zeigt, wie Sie solche Interfaces mit Flask aufsetzen können, inklusive objektrelationaler Datenbankanbindung mit SQLAlchemy.

Programmierschnittstellen spielen heutzutage eine große Rolle im Internet. Neben der normalen Benutzung über Seiten im Browser wird mittlerweile zu jedem guten Web-Service ein API (Application Programming Interface) angeboten, über das Anwender alternativ auf Angebote zugreifen können. Das ist zum Beispiel der Fall bei Twitter, Wikipedia, GitHub, DigitalOcean und vielen anderen, und auch CMS-Systeme wie WordPress lassen sich über externe Schnittstellen ansprechen und nutzen. Andere Services wie zum Beispiel Amazons Objektspeicher S3 sind als Geschäftsmodell direkt als API aufgesetzt. Auch wenn es nicht ausgeschlossen ist, sind diese als Interface aufgesetzten Zugangslösungen eigentlich nicht für den händischen Gebrauch mit bestimmten Standardwerkzeugen gedacht, sondern dienen vor allem dazu, mittels speziell dafür geschriebener Software angesprochen zu werden.

Die angebotenen APIs richten sich dabei vor allem an Entwickler von Endanwenderlösungen, um für den verfügbaren Service speziell konfektionierte Applikationen herzustellen oder in eigene Angebote wie etwa Metaportale zu integrieren. Prinzipiell steht es dabei aber jedem Benutzer offen, sich selbst Programme zu schreiben mit denen er APIs anzapft um Daten auszulesen oder zu schreiben, und die für ein Webportal erworbene Zugangsberechtigung gilt meistens auch für diesen alternativen Kommunikationsweg. Die Anbieter von Web-Services auf der anderen Seite sind vor allem aber daran interessiert, welche Mittel gut dafür geeignet sind, um ein API aufzusetzen und zur Verfügung zu stellen.

Der Standard für Programmierschnittstellen, der seit einigen Jahren verstärkt eingesetzt wird und der sich neben Konkurrenten wie SOAP und XML-RPC mittlerweile durchgesetzt hat, ist REST (Representational State Transfer). Bei dem im Jahr 2000 entwickelten REST handelt es sich aber nicht um eine Spezifikation, sondern um eine Richtlinie beziehungsweise ein Designprinzip für die Kommunikation von Maschinen, das gut oder schlecht umgesetzt werden kann (im Englischen gibt es dafür den Ausdruck „RESTfulness“). Der theoretische Hintergrund von RESTful APIs ist ein Thema für sich, denn es handelt sich um einen abstrakten Architekturstil, der eine konkrete Implementierung eigentlich nicht vorgibt, und die jeweilige Anwendungslogik muss von Entwicklern selbst auf die REST-Prinzipien abgebildet werden. In der Praxis bedeutet das, zwischen den bei einem Service beteiligten Komponenten eine zusätzliche Schicht einzufügen, die unabhängig von der spezifischen Infrastruktur als Abstraktionsebene funktioniert. Für den API-Endanwender spielt es dann keine Rolle, wie das Schnittstellen-Backend technisch realisiert ist.

Den vollständigen Artikel lesen Sie in der Ausgabe:

PHP Magazin 6.18 - "Web-App Quickstart: Web-App samt API und Docker-Container"

Alle Infos zum Heft
579858110RESTful APIs mit dem Webframework Flask
X
- Gib Deinen Standort ein -
- or -