{"id":477190,"date":"2023-08-09T09:08:44","date_gmt":"2023-08-09T09:08:44","guid":{"rendered":""},"modified":"2023-09-05T11:14:14","modified_gmt":"2023-09-05T11:14:14","slug":"fastapi","status":"publish","type":"wiki","link":"https:\/\/oneproxy.pro\/fr\/wiki\/fastapi\/","title":{"rendered":"API rapide"},"content":{"rendered":"<p>FastAPI est un framework Web hautes performances et facile \u00e0 utiliser pour cr\u00e9er des API avec Python 3.6+ bas\u00e9 sur des astuces de type Python standard. Il a \u00e9t\u00e9 con\u00e7u pour \u00eatre hautement \u00e9volutif et facile \u00e0 utiliser, tout en fournissant un ensemble robuste de fonctionnalit\u00e9s qui en font un excellent choix pour le d\u00e9veloppement Web moderne.<\/p>\n<h2>La gen\u00e8se de FastAPI<\/h2>\n<p>FastAPI a \u00e9t\u00e9 cr\u00e9\u00e9 par Sebasti\u00e1n Ram\u00edrez et publi\u00e9 pour la premi\u00e8re fois en d\u00e9cembre 2018. La principale motivation pour d\u00e9velopper FastAPI \u00e9tait de cr\u00e9er un framework Web \u00e0 la fois tr\u00e8s efficace et convivial, tirant parti des nouvelles fonctionnalit\u00e9s de Python, en particulier des astuces de type Python 3.6+. Les premi\u00e8res mentions de FastAPI sont apparues sur GitHub, o\u00f9 il a depuis gagn\u00e9 en popularit\u00e9 en raison de ses performances, de sa facilit\u00e9 d&#039;utilisation et de son excellent support communautaire.<\/p>\n<h2>Dans le monde de FastAPI<\/h2>\n<p>FastAPI exploite le concept d&#039;annotations de type et le puissant framework Starlette pour les composants WebPart. Il utilise \u00e9galement Pydantic pour le traitement des donn\u00e9es. Ces deux composants fondamentaux, combin\u00e9s aux fonctionnalit\u00e9s uniques de FastAPI, en font un outil puissant pour le d\u00e9veloppement Web.<\/p>\n<p>Contrairement \u00e0 certains autres frameworks Web, FastAPI est con\u00e7u pour \u00eatre asynchrone, ce qui lui permet de g\u00e9rer plusieurs requ\u00eates simultan\u00e9ment. Cette asynchronicit\u00e9 est obtenue \u00e0 l&#039;aide des mots-cl\u00e9s async et wait de Python, faisant de FastAPI un excellent choix pour cr\u00e9er des applications et des microservices en temps r\u00e9el.<\/p>\n<h2>Principales fonctionnalit\u00e9s de FastAPI<\/h2>\n<p>FastAPI est livr\u00e9 avec un large \u00e9ventail de fonctionnalit\u00e9s qui le distinguent des autres frameworks Web\u00a0:<\/p>\n<ol>\n<li><strong>Rapide<\/strong>: C&#039;est l&#039;un des frameworks les plus rapides disponibles pour Python, juste derri\u00e8re NodeJS et Go en termes de vitesse.<\/li>\n<li><strong>Facile<\/strong>: Il est tr\u00e8s convivial pour les d\u00e9veloppeurs, n\u00e9cessitant moins de code passe-partout, ce qui facilite l&#039;apprentissage pour les nouveaux d\u00e9veloppeurs.<\/li>\n<li><strong>Intuitif<\/strong>: FastAPI tire parti des indications de type de Python pour fournir une validation, une s\u00e9rialisation et une documentation automatiques des donn\u00e9es.<\/li>\n<li><strong>Bas\u00e9 sur des normes<\/strong>: FastAPI est bas\u00e9 sur (et enti\u00e8rement compatible avec) les standards ouverts pour les API : OpenAPI (anciennement connu sous le nom de Swagger) et JSON Schema.<\/li>\n<li><strong>Robuste<\/strong>: Il prend en charge la gestion de l&#039;authentification OAuth2, les jetons Web JSON, HTTP\/2 et WebSockets.<\/li>\n<li><strong>\u00c9volutif<\/strong>: FastAPI prend en charge la gestion des requ\u00eates asynchrones, ce qui en fait un excellent choix pour g\u00e9rer les connexions de longue dur\u00e9e et les mises \u00e0 jour en temps r\u00e9el.<\/li>\n<\/ol>\n<h2>Types d&#039;applications FastAPI<\/h2>\n<p>Il n\u2019existe pas de \u00ab types \u00bb sp\u00e9cifiques de FastAPI car il s\u2019agit d\u2019un framework et non d\u2019une classification. Cependant, il peut \u00eatre utilis\u00e9 pour cr\u00e9er diff\u00e9rents types d\u2019applications Web\u00a0:<\/p>\n<ol>\n<li><strong>Apis<\/strong>: Il est principalement con\u00e7u pour cr\u00e9er des API robustes et \u00e9volutives.<\/li>\n<li><strong>Des applications Web<\/strong>: Il peut \u00e9galement \u00eatre utilis\u00e9 pour cr\u00e9er des applications Web \u00e0 part enti\u00e8re.<\/li>\n<li><strong>Microservices<\/strong>: FastAPI est un excellent choix pour les microservices en raison de sa vitesse et de son \u00e9volutivit\u00e9.<\/li>\n<li><strong>Applications en temps r\u00e9el<\/strong>: Gr\u00e2ce \u00e0 sa prise en charge des WebSockets, il convient aux applications temps r\u00e9el.<\/li>\n<\/ol>\n<h2>Cas d&#039;utilisation pratiques et r\u00e9solution de probl\u00e8mes avec FastAPI<\/h2>\n<p>FastAPI a \u00e9t\u00e9 largement adopt\u00e9 dans des secteurs allant de la fintech \u00e0 la biotechnologie, pour des t\u00e2ches telles que la cr\u00e9ation d&#039;API RESTful, de serveurs de pr\u00e9diction en temps r\u00e9el, etc.<\/p>\n<p>Un probl\u00e8me courant lorsque l\u2019on travaille avec des API est la validation des donn\u00e9es d\u2019entr\u00e9e. FastAPI r\u00e9sout ce probl\u00e8me en utilisant les astuces de type Python et la biblioth\u00e8que Pydantic, qui automatise la validation des donn\u00e9es. Un autre probl\u00e8me courant concerne la gestion des t\u00e2ches asynchrones. FastAPI, avec sa prise en charge int\u00e9gr\u00e9e de l&#039;asyncio de Python, simplifie la gestion des t\u00e2ches asynchrones.<\/p>\n<h2>FastAPI par rapport \u00e0 d&#039;autres frameworks<\/h2>\n<table>\n<thead>\n<tr>\n<th>Fonctionnalit\u00e9<\/th>\n<th>API rapide<\/th>\n<th>Ballon<\/th>\n<th>Django<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Vitesse<\/td>\n<td>Tr\u00e8s haut<\/td>\n<td>Mod\u00e9r\u00e9<\/td>\n<td>Mod\u00e9r\u00e9<\/td>\n<\/tr>\n<tr>\n<td>Courbe d&#039;apprentissage<\/td>\n<td>Faible<\/td>\n<td>Faible<\/td>\n<td>Haut<\/td>\n<\/tr>\n<tr>\n<td>La flexibilit\u00e9<\/td>\n<td>Haut<\/td>\n<td>Haut<\/td>\n<td>Mod\u00e9r\u00e9<\/td>\n<\/tr>\n<tr>\n<td>\u00c9volutivit\u00e9<\/td>\n<td>Haut<\/td>\n<td>Mod\u00e9r\u00e9<\/td>\n<td>Haut<\/td>\n<\/tr>\n<tr>\n<td>Fonctionnalit\u00e9s int\u00e9gr\u00e9es<\/td>\n<td>Haut<\/td>\n<td>Mod\u00e9r\u00e9<\/td>\n<td>Haut<\/td>\n<\/tr>\n<tr>\n<td>Prise en charge asynchrone<\/td>\n<td>Oui<\/td>\n<td>Non<\/td>\n<td>Non<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>L&#039;avenir de FastAPI<\/h2>\n<p>L\u2019avenir de FastAPI s\u2019annonce prometteur. Comme il s&#039;agit d&#039;un projet open source, le nombre de contributeurs ne cesse de cro\u00eetre, ce qui signifie que de nouvelles fonctionnalit\u00e9s et am\u00e9liorations peuvent \u00eatre attendues. Alors que de plus en plus d&#039;entreprises adoptent FastAPI pour leurs projets, on peut supposer qu&#039;elle restera un acteur essentiel dans le monde des frameworks Web Python.<\/p>\n<p>Les technologies \u00e9mergentes telles que l&#039;architecture sans serveur, la conteneurisation et les microservices sont \u00e9galement compatibles avec FastAPI. On s\u2019attend donc \u00e0 ce qu\u2019elle s\u2019adapte et se d\u00e9veloppe parall\u00e8lement \u00e0 ces nouveaux paradigmes.<\/p>\n<h2>Serveurs proxy et FastAPI<\/h2>\n<p>Un serveur proxy est un serveur qui sert d&#039;interm\u00e9diaire pour les requ\u00eates des clients recherchant des ressources aupr\u00e8s d&#039;autres serveurs. Il peut \u00eatre utilis\u00e9 en combinaison avec FastAPI pour fournir des couches suppl\u00e9mentaires de s\u00e9curit\u00e9, d&#039;\u00e9quilibrage de charge et de mise en cache.<\/p>\n<p>Par exemple, dans un cas d&#039;utilisation typique, vous pourriez avoir une application FastAPI ex\u00e9cut\u00e9e derri\u00e8re un serveur proxy. Le serveur proxy peut g\u00e9rer les demandes et les r\u00e9ponses entre le client et votre application FastAPI. Il peut mettre en cache les r\u00e9ponses de l&#039;application FastAPI, r\u00e9duisant ainsi la charge et am\u00e9liorant les temps de r\u00e9ponse. De plus, un serveur proxy peut fournir des mesures de s\u00e9curit\u00e9 suppl\u00e9mentaires, telles que la limitation du d\u00e9bit ou le blocage d&#039;adresses IP sp\u00e9cifiques.<\/p>\n<h2>Liens connexes<\/h2>\n<ul>\n<li>D\u00e9p\u00f4t GitHub FastAPI\u00a0: <a href=\"https:\/\/github.com\/tiangolo\/fastapi\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/github.com\/tiangolo\/fastapi<\/a><\/li>\n<li>Documentation officielle de FastAPI\u00a0: <a href=\"https:\/\/fastapi.tiangolo.com\/\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/fastapi.tiangolo.com\/<\/a><\/li>\n<li>D\u00e9p\u00f4t GitHub Starlette\u00a0: <a href=\"https:\/\/github.com\/encode\/starlette\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/github.com\/encode\/starlette<\/a><\/li>\n<li>D\u00e9p\u00f4t GitHub Pydantic\u00a0: <a href=\"https:\/\/github.com\/samuelcolvin\/pydantic\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/github.com\/samuelcolvin\/pydantic<\/a><\/li>\n<li>Initiative OpenAPI\u00a0: <a href=\"https:\/\/www.openapis.org\/\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/www.openapis.org\/<\/a><\/li>\n<li>Sch\u00e9ma JSON\u00a0: <a href=\"https:\/\/json-schema.org\/\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/json-schema.org\/<\/a><\/li>\n<\/ul>","protected":false},"featured_media":468376,"menu_order":0,"template":"","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"class_list":["post-477190","wiki","type-wiki","status-publish","has-post-thumbnail","hentry"],"acf":{"faq_title":"Frequently Asked Questions about <mark>FastAPI: A Revolution in Web Development<\/mark>","faq_items":[{"question":"What is FastAPI?","answer":"<p>FastAPI is a high-performance web framework for building APIs with Python 3.6+. It is designed to be efficient, user-friendly, and supports asynchronous request handling.<\/p>"},{"question":"Who created FastAPI and when was it first released?","answer":"<p>FastAPI was created by Sebasti\u00e1n Ram\u00edrez and was first released in December 2018.<\/p>"},{"question":"What are the key features of FastAPI?","answer":"<p>FastAPI boasts several key features, including high speed, easy-to-use development, automatic data validation, and compatibility with open standards like OpenAPI and JSON Schema. It also supports OAuth2 authentication, JSON Web Tokens, HTTP\/2, and WebSockets.<\/p>"},{"question":"What types of applications can be built using FastAPI?","answer":"<p>FastAPI can be used to build a variety of applications, including APIs, web applications, microservices, and real-time applications.<\/p>"},{"question":"How does FastAPI compare to other frameworks like Flask and Django?","answer":"<p>When compared to Flask and Django, FastAPI stands out with its blazing speed, low learning curve, high flexibility, and excellent scalability. Additionally, it supports asynchronous request handling, which the other frameworks lack.<\/p>"},{"question":"What is the future outlook for FastAPI?","answer":"<p>The future of FastAPI looks promising as it is an open-source project with a growing community of contributors. It is expected to adapt to emerging technologies like serverless architecture and microservices.<\/p>"},{"question":"How can proxy servers be used with FastAPI?","answer":"<p>Proxy servers can be combined with FastAPI to provide additional security, load balancing, and caching. They act as intermediaries between the client and FastAPI application, enhancing performance and security.<\/p>"},{"question":"Where can I find more information about FastAPI?","answer":"<p>For more information about FastAPI, you can visit the official GitHub repository (<a href=\"https:\/\/github.com\/tiangolo\/fastapi\" target=\"_new\">https:\/\/github.com\/tiangolo\/fastapi<\/a>) or the official documentation (<a href=\"https:\/\/fastapi.tiangolo.com\/\" target=\"_new\">https:\/\/fastapi.tiangolo.com\/<\/a>). You may also explore related resources like Starlette (<a href=\"https:\/\/github.com\/encode\/starlette\" target=\"_new\">https:\/\/github.com\/encode\/starlette<\/a>) and Pydantic (<a href=\"https:\/\/github.com\/samuelcolvin\/pydantic\" target=\"_new\">https:\/\/github.com\/samuelcolvin\/pydantic<\/a>) used in conjunction with FastAPI.<\/p>"}]},"_links":{"self":[{"href":"https:\/\/oneproxy.pro\/fr\/wp-json\/wp\/v2\/wiki\/477190","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oneproxy.pro\/fr\/wp-json\/wp\/v2\/wiki"}],"about":[{"href":"https:\/\/oneproxy.pro\/fr\/wp-json\/wp\/v2\/types\/wiki"}],"version-history":[{"count":0,"href":"https:\/\/oneproxy.pro\/fr\/wp-json\/wp\/v2\/wiki\/477190\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oneproxy.pro\/fr\/wp-json\/wp\/v2\/media\/468376"}],"wp:attachment":[{"href":"https:\/\/oneproxy.pro\/fr\/wp-json\/wp\/v2\/media?parent=477190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}