FastAPI : 르누보 프레임워크 웹 푸어 vos API avec Python
11987 단어 programmingpythontutorial
Depuis quelques mois, on entend de plus en plus parler d'un nouveau 프레임워크: FastAPI . 예를 들어 JetBrains conduit tous les ans une enquete auprès de développeur.se.s Python et FastAPI a faitune entrée remarquée en 2020:
FastAPI was introduced to the options for the first time with this iteration of the survey, and it appears to be the third most popular web framework for Python.
CE 프레임워크 se veut moderne, Rapide, prêt au déploiement. Voyons voir ça !
설치
L'installation se fait bien évidemment avec
pip
:pip install fastapi[all]
Petit truc exotique quand meme : des crochets dans le nom du paquet. Histoire de mettre un peu de paillettes dans la vie des développeurs.
Notez qu'
uvicorn
sera installé en meme temps. Il nous servira de serveur 푸어 노 exemples.안녕, 세상
Dans un dossier
myapi
, crée un fichiermain.py
:from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "hello, world"}
Ce code est très simple à comprendre. On crée une instance de
FastAPI
nommée app
, puis on ajoute une route vers la racine avec une operation GET, grâce une élégante syntaxe à base d'annotations.On lance un serverur pour 노출자 notre API:
$> cd myapi
$> uvicorn main:app --reload
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [1972] using watchgod
INFO: Started server process [16100]
INFO: Waiting for application startup.
INFO: Application startup complete.
ici
uvicorn
를 사용하려면 서버를 방문하십시오. On lui demande d'utiliser le module Python main
(il faut donc exécuter la commande depuis le dossier où se trouve notre fichier main.py
) et y chercher l'instance app
de FastAPI.ouvre l'adresse indiquée dans un navigationur:
L'option
--reload
demande à uvicorn
de Charger le site au fur et à mesure que le fichier main.py
est modifié, sans avoir besoin de redémarrer l'application.ajoute une nouvelle route
/about
dans à notre API에서 테스터 기능을 따르십시오.@app.get('/about')
async def about():
return {"about": "This is my first api with FastAPI"}
Les logs de
uvicorn
montrent que les changements sont bien détectés et chargés :WARNING: WatchGodReload detected file change in '['C:\\myapi\\main.py']'. Reloading...
INFO: Started server process [3708]
INFO: Waiting for application startup.
INFO: Application startup complete.
세테 누벨 루트 에스트 액세스 가능한 파 노트르 네비게이터:
경로 매개변수
Il est bien sûr possible d'ajouter des paramètres à une route.
변수에 따라 예를 따르십시오
users
avec la liste des utilisateurs. On ajoute une route de type GET pour récupérer cette liste, et une route de type POST pour ajoute un élément à cette liste:users = ['pierre', 'natacha', 'benjamin']
@app.get('/users/list')
async def users_list():
"""Get the list of available users."""
return json.dumps(users)
@app.post('/users/add/{name}')
async def users_add(name: str):
"""Add a new user.
:param name: the name of the new user
"""
users.append(name)
return {'added': name}
활용 시
curl
테스터 nouvelles 경로를 따르십시오.$ curl --request GET http://127.0.0.1:8000/users/list
"[\"pierre\", \"natacha\", \"benjamin\"]"
$ curl --request POST http://127.0.0.1:8000/users/add/florian
{"added":"florian"}
$ curl --request POST http://127.0.0.1:8000/users/add/denis
{"added":"denis"}
$ curl --request POST http://127.0.0.1:8000/users/add/bertrand
{"added":"bertrand"}
$ curl --request GET http://127.0.0.1:8000/users/list
"[\"pierre\", \"natacha\", \"benjamin\", \"florian\", \"denis\", \"bertrand\"]"
API 설명서
FastAPI는 l'API 문서에 대한 일반 문서를 담당합니다. Cette 문서 est 액세스 가능한 grâce à des route ajoutées automatiquement à l'API.
pour cela, il génère un schémaOpenAPI, en récupérant les docstrings des fonctions annotées. Ce schéma est disponible avec la route
/openapi.json
:Ensuite, il 활용 Swagger UI et Redoc 푸어 르 렌두. Avec les route
/docs
및 /redoc
각각에 액세스할 수 있는 문서의 Ces 2 버전.ainsi la liste des route, avec leurs types, leurs paramètres, leurs documentation. peut tester notre API 지시문에서 페이지가 삭제되었습니다. Et comme tout est en auto-reload, on peut faire nos modifiers au fur et à mesure et
uvicorn
remettra à jour /docs
et /redoc
푸어 퀴온 푸이스 재시험자 즉시.결론
Mes premières Impressions sur FastAPI sont très positives. La Syntaxe est proche de celle de Flask, peut-être encore plus simple et élégante. La génération automatique et out-of-the-box de la documentation est vraiment cool ! Je ne me suis pas intéressé à l'aspect performance du framework, pour me concentrer sur Son utilisation. Je vous laisse Consulter la section "Benchmarks" du site officiel pour cela.
Reference
이 문제에 관하여(FastAPI : 르누보 프레임워크 웹 푸어 vos API avec Python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/younup/fastapi-le-nouveau-framework-web-pour-vos-api-avec-python-29pc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)