[PYTHON] Erstellen Sie mit Falcon einen Light-Speed-Web-API-Server

Falcon ist ein Webanwendungsframework zum Erstellen von Web-API-Servern. Wenn andere Frameworks beliebte Autos sind, die mit umfangreichen Funktionen wie Template Engine und O / R Mapper ausgestattet sind, ist Falcon ein maschinenähnlicher F1-Frame, der nur die für den Web-API-Server erforderlichen Funktionen fokussiert und schärft. Es ist eine Arbeit.

Falcon Official Page

Bemerkenswert ist das einfache Design und die überwältigende Geschwindigkeit. Das Folgende ist der auf der offiziellen Seite veröffentlichte Benchmark (Stand 26. November 2015, Vergleichsergebnisse mit PyPy 2.5.1).

benchmark.PNG

Es läuft mit der 27-fachen Geschwindigkeit von ** Flask und der 1,5- bis 2-fachen Geschwindigkeit von Bottle **, was als einfacher Rahmen bezeichnet wird.

Es ist auch sehr einfach zu implementieren. Das folgende Beispiel zeigt einen Server, der eine einfache JSON-Antwort zurückgibt. Wenn Sie es mit "Python" ausführen, wird der Server auf Port "8000" gestartet, und wenn Sie darauf zugreifen, wird eine JSON-Antwort zurückgegeben.

example.py


import json
import falcon


class HelloResource(object):

    def on_get(self, req, resp):
        msg = {
            "message": "Welcome to the Falcon"
        }
        resp.body = json.dumps(msg)

app = falcon.API()
app.add_route("/", HelloResource())


if __name__ == "__main__":
    from wsgiref import simple_server
    httpd = simple_server.make_server("127.0.0.1", 8000, app)
    httpd.serve_forever()

Es gibt eine andere Funktion namens Hook, die den sogenannten Filter implementieren kann, aber dies ist die einzige Grundfunktion. Da die Falcon-Anwendung eine WSGI-Anwendung ist, kann sie auf einem WSGI-Server ausgeführt werden. Das obige verwendet den in Python integrierten simple_server, kann aber auch mit Gunicorn oder Kellnerin ausgeführt werden (empfiehlt offiziell gunicorn, aber ich glaube nicht, dass Windows-Leute es ausführen können, also verwenden Sie Kellnerin usw. Ich denke es ist gut).

Ich denke, dass es für die folgenden Situationen geeignet ist.

Wir hoffen, dass Sie es ausprobieren und seine Geschwindigkeit und Benutzerfreundlichkeit erleben.

Recommended Posts

Erstellen Sie mit Falcon einen Light-Speed-Web-API-Server
Web-API mit Python + Falcon
Erstellen Sie eine Webanwendung mit Django
Erstellen Sie mit Docker-Compose eine schnelle API-Umgebung
Lassen Sie uns einen WEB-Server mit Chromebook einrichten
Treffen Sie eine Methode einer Klasseninstanz mit der Python Bottle Web API
Erstellen Sie einen lokalen Server mit einem einzeiligen Befehl [Mac]
Starten Sie mit Docker einen einfachen Python-Webserver
Starten Sie einen Webserver mit Python und Flask
Explosive Geschwindigkeit mit Python (Flasche)! Web-API-Entwicklung
Erstellen Sie schnell einen API-Server mit Python + Falcon
Quellkompilieren Sie Apache2.4 + PHP7.4 mit Raspberry Pi und erstellen Sie einen Webserver --2 PHP Einführung
Quellkompilieren Sie Apache2.4 + PHP7.4 mit Raspberry Pi und erstellen Sie einen Webserver. 1. Apache-Einführung
[Teil 2] Erstellen wir einen Webserver mit EC2 Linux
Lernen eines neuronalen Netzes mit Chainer - Erstellen eines Web-API-Servers
CTF-Anfänger haben versucht, einen Problemserver (Web) zu erstellen [Problem]
[Vagrant] Richten Sie einen einfachen API-Server mit Python ein
[Python] [Gracenote Web API] Eine kleine Anpassung von Pygn
Quellkompilieren Sie Apache2.4 + PHP7.4 mit Raspberry Pi und erstellen Sie einen Webserver --3. Verwenden Sie MySQL
Erstellen Sie einen API-Server, um den Betrieb der Front-Implementierung mit Python3 und Flask zu überprüfen
Richten Sie einen Webserver mit CentOS7 + Anaconda + Django + Apache ein
[Einführung in AWS] Memorandum zum Erstellen eines Webservers auf AWS
Tornado - Erstellen wir eine Web-API, die JSON problemlos mit JSON zurückgibt
Erstellen Sie eine Web-API, die Bilder mit Django liefern kann
(Für Anfänger) Versuchen Sie, mit Django eine einfache Web-API zu erstellen
[Studiennotiz] Erstellen Sie einen GeoJSON-Vektor-Kachelserver mit Fast API
Gibt das Ergebnis der morphologischen Analyse mit Mecab an einen WEB-Browser aus, der mit Sakura Server / UTF-8 kompatibel ist
[Python, Ruby] Selen-Holen Sie sich Webseiteninhalte mit Webdriver
Erstellen Sie mit Chalice eine flaschen- / flaschenähnliche Webanwendung auf AWS Lambda
Ich habe mit Razpai einen Webserver erstellt, um Anime zu schauen
Erstellen eines Flask-Servers mit Docker
Erstellen Sie eine Deb-Datei mit Docker
Eine Sammlung von einzeiligen Webservern
Einführung und Verwendung der Python-Flasche ・ Versuchen Sie, einen einfachen Webserver mit Anmeldefunktion einzurichten
Eine Geschichte, die die Gegenwart von Qiita mit Qiita API + Elasticsearch + Kibana visualisiert
Erstellen Sie mithilfe des TensorFlow-Faltungsnetzwerks einen Klassifikator mit einer Handschrifterkennungsrate von 99,2%
Entwicklung und Bereitstellung der REST-API in Python mit Falcon Web Framework
Erstellen Sie mit Docker eine CentOS Linux 8-Umgebung und starten Sie Apache HTTP Server
Flask + PyPy Mit Blueprint habe ich einen Geschwindigkeits-Benchmark für das große Web erstellt
Zusammenfassung zum Erstellen einer LAMP + Wordpress-Umgebung mit Sakura VPS
Erstellen Sie mit Ansible einen Proxyserver mit nginx auf mehreren Remote-Servern
Erstellen Sie einen Pypi-Cache-Server auf QNAP
Erstellen Sie einfach einen DNS-Server mit Twisted
Richten Sie mit Docker einen Samba-Server ein
Spielen Sie wie eine Web-App mit ipywidgets
Webserver zum Testen des Browsers mit Mocha
Erstellen Sie eine Tensorflow-Umgebung mit Raspberry Pi [2020]
Ein Memorandum über die Geschwindigkeit der Diagonalisierung beliebigen Grades
Erstellen Sie einen einfachen WebDAV-Server unter Linux
Dämonisieren Sie eine Python-Webanwendung mit Supervisor
Transkription von Bildern mit der Vision API von GCP
Erstellen Sie einen Samba-Server unter Arch Linux
[Python] Eine schnelle Webanwendung mit Bottle!
Erstellen Sie eine einfache Web-App mit Flasche
Versuchen Sie den Geschwindigkeitsvergleich der BigQuery Storage API
[Linux] Erstellen einer Jenkins-Umgebung mit Docker
Ich habe eine Web-API erstellt
Führen Sie eine Python-Webanwendung mit Docker aus
Erstellen Sie mit pyenv eine virtuelle Umgebung für Python