Aller au contenu

FastAPI

FastAPI logo FastAPI est un framework Python pour créer rapidement des API performantes.

Installation

1
2
3
4
$ python3 -m virtualenv -p python3 venv
$ source venv/bin/activate
(venv) $ pip install fastapi
(venv) $ pip install uvicorn

Réponse sous forme d'un fichier binaire

Exemple inspiré de la documentation : Return a Response Directly - FastAPI.

1
2
3
4
5
6
7
8
9
from fastapi import FastAPI, Response

app = FastAPI()


@app.get("/data/")
async def data():
    data = bytearray(64)
    return Response(content=bytes(data), media_type="application/octet-stream")

Réponse sous forme « plain text »

Exemple inspiré de la documentation : Custom Response - HTML, Stream, File, others - FastAPI.

1
2
3
4
5
6
7
8
9
from fastapi import FastAPI
from fastapi.responses import PlainTextResponse

app = FastAPI()


@app.get("/", response_class=PlainTextResponse)
async def main():
    return "Hello World"

Environnement de développement en moins d'une minute !

Dans le dossier du projet, créer un fichier Makefile contenant :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
.PHONY: install
install:
    python3 -m venv venv
    venv/bin/pip install --upgrade pip
    venv/bin/pip install pip-tools
    venv/bin/pip-compile requirements.in
    venv/bin/pip-sync requirements.txt

.PHONY: update-venv
update-venv:
    venv/bin/pip install --upgrade pip
    venv/bin/pip-compile --upgrade requirements.in
    venv/bin/pip-sync requirements.txt

.PHONY: serve
serve:
    venv/bin/uvicorn main:app --reload

Puis un fichier requirements.in contenant :

1
fastapi[all]

Il ne reste plus qu'à lancer la commande $ make install pour créer un environnement virtuel et y installer toutes les dépendances nécessaires au fonctionnement de FastAPI, puis à lancer la commande $ make serve pour démarrer le serveur Uvicorn joignable à l'adresse http://127.0.0.1:8000.

Quant à la commande $ make update-venv, elle met à jour toutes les librairies installées quand c'est nécessaire.

Ressources


Dernière mise à jour: 17 novembre 2020