[PYTHON] Créez un serveur API Web ultra-rapide avec Falcon

Falcon est un framework d'application Web dédié à la création de serveurs d'API Web. Si d'autres frameworks sont des voitures populaires regorgeant de fonctionnalités riches telles que le moteur de modèle et le mappeur O / R, Falcon est un cadre de type machine F1 qui concentre et affine uniquement les fonctionnalités nécessaires au serveur API Web. C'est un travail.

Falcon Official Page

Notable est sa conception simple et sa vitesse écrasante. Voici le benchmark publié sur la page officielle (au 26 novembre 2015, résultats de la comparaison avec PyPy 2.5.1).

benchmark.PNG

Il fonctionne à 27 fois la vitesse de ** Flask et 1,5 à 2 fois la vitesse de Bottle **, qui est dit être un cadre simple.

C'est également très facile à mettre en œuvre. Voici un exemple de serveur qui renvoie une réponse JSON simple. Si vous l'exécutez avec python, le serveur démarrera sur le port 8000, et lorsque vous y accédez, une réponse JSON sera retournée.

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()

Il existe une autre fonction appelée Hook qui peut implémenter ce que l'on appelle Filter, mais c'est la seule base. Étant donné que l'application Falcon est une application WSGI, elle peut être exécutée sur un serveur WSGI. Ce qui précède utilise le simple_server intégré à Python, mais il peut également être exécuté avec gunicorn ou serveuse (recommande officiellement gunicorn, mais je ne pense pas que les utilisateurs de Windows puissent l'exécuter, alors utilisez serveuse, etc. Je pense que c'est bien).

Je pense qu'il convient aux situations suivantes.

J'espère que vous allez l'essayer et découvrir sa rapidité et sa facilité d'utilisation.

Recommended Posts

Créez un serveur API Web ultra-rapide avec Falcon
API Web avec Python + Falcon
Créer une application Web avec Django
Créez un environnement d'API rapide avec docker-compose
Configurons un serveur WEB avec Chromebook
Hit une méthode d'une instance de classe avec l'API Web Python Bottle
Créer un serveur local avec une commande sur une seule ligne [Mac]
Démarrez un serveur Web Python simple avec Docker
Lancer un serveur Web avec Python et Flask
Vitesse explosive avec Python (bouteille)! Développement d'API Web
Créez rapidement un serveur API avec Python + Falcon
Source compilez Apache2.4 + PHP7.4 avec Raspberry Pi et construisez un serveur Web --2 introduction PHP
Source compilez Apache2.4 + PHP7.4 avec Raspberry Pi et créez un serveur Web ―― 1. Introduction à Apache
[Partie 2] Construisons un serveur Web avec EC2 Linux
Apprendre un réseau neuronal à l'aide de Chainer
Le débutant de la CTF a tenté de créer un serveur problématique (Web) [Problème]
[Vagrant] Configurer un serveur API simple avec python
[python] [Gracenote Web API] Une petite personnalisation de pygn
Compilez Apache2.4 + PHP7.4 avec Raspberry Pi et construisez un serveur Web --3. Utilisez MySQL
Construisez un serveur API pour vérifier le fonctionnement de l'implémentation frontale avec python3 et Flask
Configurer un serveur Web avec CentOS7 + Anaconda + Django + Apache
[Introduction à AWS] Mémorandum de création d'un serveur Web sur AWS
Tornado - Créons une API Web qui renvoie facilement JSON avec JSON
Créez une API Web capable de fournir des images avec Django
(Pour les débutants) Essayez de créer une API Web simple avec Django
[Note d'étude] Créez un serveur de tuiles vectorielles GeoJSON avec Fast API
Envoie le résultat de l'analyse morphologique avec Mecab vers un navigateur WEB compatible avec le serveur Sakura / UTF-8
[python, ruby] sélénium-Obtenez le contenu d'une page Web avec le pilote Web
Créer une application Web de type Flask / Bottle sur AWS Lambda avec Chalice
J'ai créé un serveur Web avec Razpai pour regarder des anime
Créer un serveur Flask avec Docker
Créer un fichier deb avec Docker
Une collection de serveurs Web à une seule ligne
Introduction et utilisation de la bouteille Python ・ Essayez de configurer un serveur Web simple avec une fonction de connexion
Une histoire qui visualise le présent de Qiita avec Qiita API + Elasticsearch + Kibana
Créez un classificateur avec un taux de reconnaissance de l'écriture manuscrite de 99,2% à l'aide du réseau neuronal convolutif TensorFlow
Développement et déploiement de l'API REST en Python à l'aide de Falcon Web Framework
Créez un environnement CentOS Linux 8 avec Docker et démarrez Apache HTTP Server
Flask + PyPy J'ai pris un benchmark de vitesse avec Blueprint pour le Web à grande échelle
Résumé de la création d'un environnement LAMP + Wordpress avec Sakura VPS
Créer un serveur proxy avec nginx sur plusieurs serveurs distants à l'aide d'Ansible
Construire un serveur de cache Pypi sur QNAP
Créez facilement un serveur DNS en utilisant Twisted
Configurer un serveur Samba avec Docker
Jouez comme une application Web avec ipywidgets
Serveur Web pour tester le navigateur avec Mocha
Créer un environnement Tensorflow avec Raspberry Pi [2020]
Un mémorandum de la vitesse de diagonalisation arbitraire des degrés
Construisez un serveur WebDAV simple sur Linux
Démonisez une application Web Python avec Supervisor
Transcription d'images avec l'API Vision de GCP
Construire un serveur Samba sur Arch Linux
[Python] Une application web rapide avec Bottle!
Créez une application Web simple avec Flask
Essayez la comparaison de vitesse de l'API BigQuery Storage
[Linux] Créer un environnement Jenkins avec Docker
J'ai créé une API Web
Exécutez une application Web Python avec Docker
Créez un environnement virtuel pour python avec pyenv