hug est un framework d'application Web dédié à la création de serveurs d'API Web. Alors que d'autres frameworks regorgent de fonctionnalités riches telles que le moteur de modèle et le mappeur OR, hug est un framework qui se spécialise uniquement dans les fonctionnalités requises pour le serveur API Web.
On notera en particulier sa simplicité et sa rapidité. Voici les benchmarks publiés sur la page officielle (benchmarks Pycnic). C'est un peu moins rapide que Falcon, mais c'est toujours très rapide et beaucoup plus facile à implémenter que Falcon.
Installons-le et touchons-le.
hug est uniquement compatible avec la série Python 3. L'installation se fait ci-dessous.
pip install hug
Créons maintenant une API. C'est très simple à mettre en œuvre. Voici un exemple de serveur qui renvoie une réponse simple.
hello_hug.py
import hug
@hug.get('/hello')
def hello(name):
"""Says Hello to a user"""
return "Hello {}!".format(name)
La partie @ hug.get () est le décorateur de la méthode HTTP. En plus de get, il y a des publications et des mises à jour.
Lançons-le. Vous pouvez le faire ci-dessous. Une fois exécuté, le serveur démarrera sur le port 8000, et une fois accédé, une réponse sera renvoyée.
hug -f hello_hug.py
Essayez d'accéder à [http: // localhost: 8000 / hello? Name = hug](http: // localhost: 8000 / hello? Name = hug) avec votre navigateur. Vous devriez voir la réponse.
Vous pouvez également voir un document simple en accédant à [http: // localhost: 8000 / documentation](http: // localhost: 8000 / documentation).
{
"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"
}
}
}
}
}
}
}
La gestion des versions d'API est également facile avec hug. La mise en œuvre du contrôle de version est également très simple. Jetez un œil au code ci-dessous.
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())
Pour effectuer le contrôle de version, spécifiez simplement un nombre ou une plage de versions.
Courez ci-dessous.
hug -f versioning_example.py
[http: // localhost: 8000 / v1 / echo? Text = Hi](http: // localhost: 8000 / v1 / echo? Text = Hi) et [http: // localhost: 8000 / v2 / echo? Text = Accédez à Hi](http: // localhost: 8000 / v2 / echo? Text = Hi) et comparez les différences. Vous pouvez voir qu'il est facile de faire une version.
En plus du contrôle de version mentionné ci-dessus, il existe d'autres fonctions utiles pour créer des API. Je suis particulièrement heureux que le traitement asynchrone puisse être effectué facilement.
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