[PYTHON] Erstellen Sie mit hug einen Web-API-Server mit explosiver Geschwindigkeit

Einführung

hug ist ein Webanwendungsframework zum Erstellen von Web-API-Servern. Während andere Frameworks mit umfangreichen Funktionen wie Template Engine und OR Mapper ausgestattet sind, ist hug ein Framework, das sich nur auf die für den Web-API-Server erforderlichen Funktionen spezialisiert hat.

hug Official Site

Besonders hervorzuheben ist seine Einfachheit und Geschwindigkeit. Nachfolgend finden Sie die auf der offiziellen Seite veröffentlichten Benchmarks (Pycnic-Benchmarks). スクリーンショット 2016-08-02 11.33.56.png Es ist etwas langsamer als Falcon, aber es ist immer noch sehr schnell und viel einfacher zu implementieren als Falcon.

Lassen Sie es uns installieren und berühren.

Installation

hug ist nur mit der Python 3-Serie kompatibel. Die Installation erfolgt unten.

pip install hug

Erste Umarmung

Jetzt erstellen wir eine API. Es ist sehr einfach zu implementieren. Das folgende Beispiel zeigt einen Server, der eine einfache Antwort zurückgibt.

hello_hug.py


import hug


@hug.get('/hello')
def hello(name):
    """Says Hello to a user"""
    return "Hello {}!".format(name)

Der Teil @ hug.get () ist der Dekorator der HTTP-Methode. Neben get gibt es post und update.

Lass es uns laufen. Sie können es unten tun. Bei der Ausführung wird der Server an Port 8000 gestartet, und beim Zugriff wird eine Antwort zurückgegeben.

hug -f hello_hug.py

Versuchen Sie, mit Ihrem Browser auf [http: // localhost: 8000 / hello? Name = hug](http: // localhost: 8000 / hello? Name = hug) zuzugreifen. Sie sollten die Antwort sehen.

Sie können ein einfaches Dokument auch anzeigen, indem Sie auf [http: // localhost: 8000 / Dokumentation](http: // localhost: 8000 / Dokumentation) zugreifen.

{
    "404": "The API call you tried to make was not defined. Here's a definition of the API to help you get going :)",
    "documentation": {
        "handlers": {
            "/hello": {
                "GET": {
                    "usage": "Says Hello to a user",
                    "outputs": {
                        "format": "JSON (Javascript Serialized Object Notation)",
                        "content_type": "application/json"
                    },
                    "inputs": {
                        "name": {
                            "type": "Basic text / string value"
                        }
                    }
                }
            }
        }
    }
}

Versionierung

API-Versionierung ist auch mit hug einfach. Die Implementierung der Versionierung ist ebenfalls sehr einfach. Schauen Sie sich den Code unten an.

versioning_example.py


# filename: versioning_example.py
"""A simple example of a hug API call with versioning"""
import hug

@hug.get('/echo', versions=1)
def echo(text):
    return text


@hug.get('/echo', versions=range(2, 5))
def echo(text):
    return "Echo: {text}".format(**locals())

Um die Versionierung durchzuführen, geben Sie einfach eine Nummer oder einen Bereich in den Versionen an.

Laufen Sie unten.

hug -f versioning_example.py

[http: // localhost: 8000 / v1 / echo? Text = Hi](http: // localhost: 8000 / v1 / echo? Text = Hi) und [http: // localhost: 8000 / v2 / echo? Text = Gehen Sie zu Hi](http: // localhost: 8000 / v2 / echo? Text = Hi) und vergleichen Sie die Unterschiede. Sie können sehen, dass die Version einfach ist.

Zusammenfassung

Neben der oben genannten Versionierung gibt es weitere nützliche Funktionen zum Erstellen von APIs. Ich bin besonders froh, dass die asynchrone Verarbeitung einfach durchgeführt werden kann.

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 hug einen Web-API-Server mit explosiver Geschwindigkeit
Erstellen Sie mit Falcon einen Light-Speed-Web-API-Server
Lernen eines neuronalen Netzes mit Chainer - Erstellen eines Web-API-Servers
Erstellen Sie einfach einen DNS-Server mit Twisted
Lassen Sie uns einen WEB-Server mit Chromebook einrichten
[Mac] Erstellen Sie mit Docker eine Python 3.x-Umgebung mit der schnellsten Geschwindigkeit
Explosive Geschwindigkeit mit Python (Flasche)! Web-API-Entwicklung
Bereiten Sie einen Pseudo-API-Server mit GitHub-Aktionen vor
[Teil 2] Erstellen wir einen Webserver mit EC2 Linux
Implementieren Sie die API mit explosiver Geschwindigkeit mithilfe des Django REST Framework
Erstellen Sie mit GitHub Pages einen Pseudo-REST-API-Server
CTF-Anfänger haben versucht, einen Problemserver (Web) zu erstellen [Problem]
Versuchen Sie, Sudoku mit explosiver Geschwindigkeit mit Numpy zu lösen
Erstellen Sie mit Docker eine einfache Fast API-Entwicklungsumgebung
Erstellen Sie ein seq2seq-Modell mit dem Functional API Model Building & Learning von keras
Erstellen Sie einfach eine GCP-Umgebung für Kaggle mit hoher Geschwindigkeit
Explosive Geschwindigkeit! Verwenden von Python Simple HTTP Server für die Kintone-Entwicklung
Versuchen Sie eine multivariate Korrelationsanalyse mit grafischem Lasso bei explosiver Geschwindigkeit
Image Optimize auf der Serverseite mithilfe der Web-API von TinyPNG
Erstellen Sie mit Docker kostengünstig eine Flask-Entwicklungsumgebung
Ich habe versucht, mit Docker einen Dienst aufzubauen, der maschinell erlernte Daten mit explosiver Geschwindigkeit verkauft
Verwandeln Sie Ihr Android-Smartphone mithilfe von Python in einen Webserver.
Erstellen Sie einen Regenbenachrichtigungs-Bot für Hangouts Chat mit explosiver Geschwindigkeit
Ich habe Chatbot mit der LINE Messaging API und Python (2) ~ Server ~ erstellt
Gegenmaßnahmen gegen Proxy bei Verwendung der WEB-API
Erstellen einer Webanwendung mit Flask ②
Erstellen Sie mit Docker eine Go-Umgebung
Erstellen Sie eine Webanwendung mit Django
Erstellen einer Webanwendung mit Flask ①
Erstellen Sie eine API mit hug mit mod_wsgi
Erstellen einer Webanwendung mit Flask ③
Erstellen Sie die CRUD-API mit der Fast API
Erstellen einer Webanwendung mit Flask ④
Richten Sie mit http.server in Python 3 in 30 Sekunden einen lokalen Webserver ein
Starten Sie einen Webserver mit Bottle and Flask (ich habe auch versucht, Apache zu verwenden)
Erstellen Sie mit Ansible einen Proxyserver mit nginx auf mehreren Remote-Servern
Erstellen Sie einen Pypi-Cache-Server auf QNAP
Erstellen Sie einen einfachen WebDAV-Server unter Linux
Erstellen Sie mit Docker-Compose eine schnelle API-Umgebung
Richten Sie mit Twisted einen Mailserver ein
[TPU] [Transformatoren] Machen Sie BERT mit explosiver Geschwindigkeit
Erstellen Sie einen Samba-Server unter Arch Linux
Ich habe eine Web-API erstellt
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
Die epidemische Vorhersage des neuen Koronavirus wurde mit explosiver Geschwindigkeit im Internet veröffentlicht
Quellkompilierung Apache2.4 (httpd 2.4.43) + PHP7.4 unter Linux zum Erstellen eines Webservers ―― 1. Einführung in Apache
Quellkompilierung Apache2.4 (httpd 2.4.43) + PHP7.4 unter Linux zum Erstellen eines Webservers --2 PHP-Einführung