<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Backend et FastAPI on kodkod | Cours d'introduction</title><link>https://intro-kodkod-6.nm-ambition.com/fr/docs/backend-fastapi/</link><description>Recent content in Backend et FastAPI on kodkod | Cours d'introduction</description><generator>Hugo</generator><language>fr</language><copyright>מבואות קודקוד</copyright><atom:link href="https://intro-kodkod-6.nm-ambition.com/fr/docs/backend-fastapi/index.xml" rel="self" type="application/rss+xml"/><item><title>Le backend et HTTP : qui fait quoi, les méthodes et les codes d'état</title><link>https://intro-kodkod-6.nm-ambition.com/fr/docs/backend-fastapi/01-what-is-backend/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/fr/docs/backend-fastapi/01-what-is-backend/</guid><description>&lt;h2 id="dans-cette-leçon"&gt;Dans cette leçon&lt;/h2&gt;
&lt;p&gt;Cette leçon se compose de deux chapitres, dans le même ordre que les diapositives :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Chapitre 1&lt;/strong&gt; — ce qu&amp;rsquo;est un backend : client, serveur, base de données, API et endpoint&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapitre 2&lt;/strong&gt; — les méthodes HTTP et les codes d&amp;rsquo;état&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="chapitre-1--ce-quest-un-backend--client-serveur-base-de-données-api-et-endpoint"&gt;Chapitre 1 : Ce qu&amp;rsquo;est un backend — client, serveur, base de données, API et endpoint&lt;/h2&gt;
&lt;h3 id="quallons-nous-apprendre-"&gt;Qu&amp;rsquo;allons-nous apprendre ?&lt;/h3&gt;
&lt;p&gt;Nous passons maintenant de programmes qui tournent &lt;strong&gt;sur notre propre ordinateur&lt;/strong&gt; à des logiciels auxquels &lt;strong&gt;d&amp;rsquo;autres&lt;/strong&gt; s&amp;rsquo;adressent par le réseau. Cette leçon donne la vue d&amp;rsquo;ensemble et le vocabulaire :&lt;/p&gt;</description></item><item><title>FastAPI à partir de zéro : installation, app = FastAPI(), une première route et le lancement du serveur</title><link>https://intro-kodkod-6.nm-ambition.com/fr/docs/backend-fastapi/04-fastapi-setup-first-route/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/fr/docs/backend-fastapi/04-fastapi-setup-first-route/</guid><description>&lt;h2 id="quallons-nous-apprendre-"&gt;Qu&amp;rsquo;allons-nous apprendre ?&lt;/h2&gt;
&lt;p&gt;Cette leçon est une &lt;strong&gt;mise en place complète, à partir de zéro&lt;/strong&gt;, d&amp;rsquo;un vrai serveur :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Un environnement virtuel&lt;/strong&gt; (venv) : là où les bibliothèques sont installées.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Installer FastAPI&lt;/strong&gt; avec &lt;code&gt;pip&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;main.py&lt;/code&gt;&lt;/strong&gt; : l&amp;rsquo;import, la création de &lt;code&gt;app&lt;/code&gt;, et une première &lt;strong&gt;route&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le lancer&lt;/strong&gt; avec &lt;code&gt;uvicorn&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tester&lt;/strong&gt; : le navigateur, curl, et la page de documentation automatique &lt;code&gt;/docs&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="pourquoi-en-avons-nous-besoin-"&gt;Pourquoi en avons-nous besoin ?&lt;/h2&gt;
&lt;p&gt;Dans le thème des réseaux, nous avons vu ce qu&amp;rsquo;implique un serveur « fait à la main » : &lt;code&gt;bind&lt;/code&gt;, &lt;code&gt;listen&lt;/code&gt;, &lt;code&gt;accept&lt;/code&gt;, et le décodage du texte. C&amp;rsquo;est beaucoup de travail, et il est facile de planter sur une mauvaise entrée. &lt;strong&gt;FastAPI&lt;/strong&gt; fait tout cela pour nous : il reçoit la requête, décode le HTTP, trouve la bonne fonction, convertit la réponse en JSON, et vérifie les types. Nous n&amp;rsquo;écrivons &lt;strong&gt;que la logique&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Path Params, Query Parameters et Body</title><link>https://intro-kodkod-6.nm-ambition.com/fr/docs/backend-fastapi/03-params-query-body/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/fr/docs/backend-fastapi/03-params-query-body/</guid><description>&lt;h2 id="quallons-nous-apprendre-"&gt;Qu&amp;rsquo;allons-nous apprendre ?&lt;/h2&gt;
&lt;p&gt;Un client doit dire au serveur &lt;strong&gt;ce qu&amp;rsquo;il&lt;/strong&gt; veut exactement. Il a trois façons de le faire :&lt;/p&gt;</description></item><item><title>FastAPI : Path Params, query, body et HTTPException</title><link>https://intro-kodkod-6.nm-ambition.com/fr/docs/backend-fastapi/05-fastapi-params-query-body/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/fr/docs/backend-fastapi/05-fastapi-params-query-body/</guid><description>&lt;h2 id="quallons-nous-apprendre-"&gt;Qu&amp;rsquo;allons-nous apprendre ?&lt;/h2&gt;
&lt;p&gt;Dans la leçon précédente, les fonctions ne recevaient aucune entrée. Maintenant, elles vont recevoir les trois types que nous avons appris :&lt;/p&gt;</description></item><item><title>Le middleware : du code qui s'exécute à chaque requête</title><link>https://intro-kodkod-6.nm-ambition.com/fr/docs/backend-fastapi/06-middleware/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/fr/docs/backend-fastapi/06-middleware/</guid><description>&lt;h2 id="quallons-nous-apprendre-"&gt;Qu&amp;rsquo;allons-nous apprendre ?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Quel problème se pose quand on veut faire quelque chose à &lt;strong&gt;chaque&lt;/strong&gt; requête.&lt;/li&gt;
&lt;li&gt;Ce qu&amp;rsquo;est un &lt;strong&gt;middleware&lt;/strong&gt;, et quel est son lien avec le &lt;strong&gt;décorateur&lt;/strong&gt; que nous connaissons déjà.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;@app.middleware(&amp;quot;http&amp;quot;)&lt;/code&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;code&gt;call_next&lt;/code&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;code&gt;async&lt;/code&gt;&lt;/strong&gt; et &lt;strong&gt;&lt;code&gt;await&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Un &lt;strong&gt;journal&lt;/strong&gt; et une &lt;strong&gt;mesure du temps&lt;/strong&gt; pour chaque requête de l&amp;rsquo;API des étudiants, et un &lt;strong&gt;en-tête&lt;/strong&gt; (Header) ajouté à chaque réponse.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="pourquoi-en-avons-nous-besoin-"&gt;Pourquoi en avons-nous besoin ?&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;API des étudiants de la leçon précédente fonctionne. Maintenant, nous voulons savoir &lt;strong&gt;ce qui s&amp;rsquo;y passe&lt;/strong&gt; : quelle requête est arrivée, quel code est revenu, et combien de temps cela a pris. La première idée qui vient à l&amp;rsquo;esprit — ajouter une ligne de journal dans chaque route :&lt;/p&gt;</description></item></channel></rss>