Comment construire une API REST en Python avec Tornado (partie 1)

Je suis développeur front-end depuis assez longtemps et j'ai beaucoup travaillé avec les points de terminaison des API REST, mais je ne savais jamais comment en créer un. Chez Octopus Labs, nous utilisons Python et Tornado pour créer des points de terminaison. Pour les 10% de temps consacrés à mon projet, j’ai décidé d’ouvrir cette boîte noire. Ce n’est pas aussi difficile que je le pensais. J'ai décidé de créer un petit tutoriel pour les autres utilisateurs qui veulent essayer de faire la même chose ou tout simplement pour ceux qui veulent apprendre à utiliser Tornado.

Ce tutoriel suppose que vous ayez une connaissance de base de Python ou une expérience de Javascript moderne.

Configuration principale

1. Assurez-vous d’avoir un éditeur de texte correct, je recommande VScode en raison de la prise en charge du débogage et c’est gratuit.

2. Téléchargez Postman et installez-le sur votre ordinateur, il est également gratuit. Cela sera utilisé pour vérifier que notre API fonctionne.

3. Assurez-vous que Python est installé, vérifiez en tapant

$ python

dans le terminal et vous devriez être amené à la console Python.

Sinon, vous pouvez le télécharger ici. Pour ce tutoriel, peu importe si vous avez la version 2x ou 3x de Python. Quittez la console en tapant quit ().

4. Vous aurez besoin de pipenv, l’équivalent Python de npm. Pour le télécharger, tapez ceci dans le terminal.

$ brasser installer pipenv

Ensuite, tapez pipenv devrait afficher:

5. Créez un dossier quelque part appelé todo-list-api et accédez-y.

6. Type:

$ pipenv installer tornade

Pour installer Tornado. Une fois cela fait, vous devriez voir un Pipfile et un Pipfile.lock équivalent à package.json et à package-lock.json.

Créer un point d'extrémité simple

1. Dans le dossier todo-list-api, créez un fichier nommé app.py.

2. Copiez et collez ce morceau de code (ce code sera expliqué plus tard):

3. Ensuite, dans votre terminal:

$ pipenv run python app.py

Rien ne devrait arriver qui soit bon.

4. Maintenant, accédez à http: // localhost: 3000 / dans votre navigateur et si tout se passe bien, vous devriez voir:

Félicitations, vous avez créé un point de terminaison.

Maintenant, expliquons ce que font ces 15 lignes de code, une grande partie est explicite.

Les lignes un et deux importent, bien sûr.

La classe HelloHandler (lignes 4 à 6) qui hérite de RequestHandler avait une fonction appelée get () et écrit un dict (objet dans JS) sur la page au format JSON.

La fonction make_app (lignes 8 à 10) traite des adresses URL et des paramètres du serveur, ainsi que de la création de l'application.

Et la dernière section exécute le serveur.

si __name__ == '__main__':

Ce morceau de code est uniquement destiné aux conventions, dans ce cas, vous pouvez le supprimer et le terminal fonctionnera toujours correctement. Fondamentalement, Python dit ici, exécutez ce code uniquement si app.py est exécuté à partir du terminal. Si nous avons créé un autre fichier appelé app2.py et exécuté à la place ‘python app2.py’, le code ci-dessous, si __name__ == __________ ’dans app.py ne s’exécutera pas.

Configuration du facteur

Comme nous n’allons pas vérifier les points de terminaison dans le navigateur tout le temps, laissez le postman de configuration le faire.

1. Cliquez sur la nouvelle icône de collection et nommez-la `Tornado todo list`.

2. Dans Nouvel onglet, si la liste déroulante en regard de la barre d’adresse ne dit pas que GET le change, alors il le fera.

3. Mettez ceci dans la barre d'adresse http: // localhost: 3000 /.

4. Ensuite, en dessous de ce clic sur l'onglet en-têtes, ajoutez une clé Content-Type et la valeur application / json.

5. Cliquez sur le bouton bleu ENVOYER pour afficher la réponse correspondante.

6. Enfin, enregistrez ce nouveau point de terminaison dans le dossier que vous venez de créer avec le nom / les éléments de la demande (cela aura un sens par la suite).

Un point final en bas, il en reste 4 de plus :)

Au risque de faire ce post trop long, je vais m'arrêter ici et publier le reste en tant que partie 2. La configuration principale est à peu près complète, à partir de là nous ajouterons quelques points de terminaison supplémentaires pour une petite liste de tâches à créer ( si vous ne l'avez pas déjà compris). J'espère que vous en avez appris quelque chose et que vous cliquez sur la partie suivante pour en apprendre un peu plus.

Aller à la partie 2 →