In diesem Tutorial beschreibe ich die Installation von Flask, genauer gesagt der Flask-RESTful API, mit der REST-APIs erstellt werden können.
Zunächst aber die Antwort auf die Frage: Was ist Flask-RESTful? Die Internetseite gibt dazu folgende Auskunft:
Flask-RESTful is an extension for Flask that adds support for quickly building REST APIs. It is a lightweight abstraction that works with your existing ORM/libraries. Flask-RESTful encourages best practices with minimal setup. If you are familiar with Flask, Flask-RESTful should be easy to pick up.
Die Installation habe ich auf einem Raspberry2 vorgenommen. Auf anderen Linux-Distributionen sollte es aber ähnlich funktionieren.
Für die Installation benötigt Ihr Python (Version 2.6–3.4), das auf Linux-Systemen bereits vorinstalliert ist. Zusätzlich sollten die Developer-Pakete vorhanden sein:
sudo apt-get install python-dev
Dann kann die Installation von Flask-RESTFul beginnen:
sudo pip install flask-restful
Um später einmal den Zugriff auf den REST-Webservice vor unbefugten Zugriff zu schützen, sollte auch flask-httpauth installiert werden:
sudo pip install flask-httpauth
Hinweis: Sollte pip
auf Eurem Linux-System nicht vorhanden sein, kann es mit der Anweisung
sudo apt-get install python-pip
nachinstalliert werden.
Und damit kommen wir zur ersten selbst geschriebenen (Mini-)API (Beispiel von der Internetseite “Flask-RESTful Quickstart”):
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
class HelloWorld(Resource):
def get(self):
return {'hello': 'world'}
api.add_resource(HelloWorld, '/')
if __name__ == '__main__':
app.run(debug=True)
Speichert die Datei unter einem Namen Eurer Wahl ab (hier: api.py
) und gebt dann in der Shell
python api.py
ein. Auf dem selben Rechner könnt Ihr Euch dann die Antwort vom Server mit
curl http://127.0.0.1:5000/
ansehen.
Soll von einem anderen Computer auf diese Ressource zugegriffen werden, dann ändert die Zeile
app.run(debug=True)
zu
app.run(host="0.0.0.0",debug=True)
Mehr ist nicht zu tun. Werft einen Blick auf die umfangreiche Dokumentation zu Flask-RESTful und probiert selbst einige der dort gezeigten Beispiele aus.