{"id":42534,"date":"2026-04-01T20:22:12","date_gmt":"2026-04-01T20:22:12","guid":{"rendered":"https:\/\/floppydata.com\/non-categorise\/quest-ce-quune-api-comment-fonctionne-t-elle\/"},"modified":"2026-04-01T20:22:12","modified_gmt":"2026-04-01T20:22:12","slug":"api-for-dummies","status":"publish","type":"post","link":"https:\/\/floppydata.com\/fr\/blog\/api-for-dummies\/","title":{"rendered":"Qu&rsquo;est-ce qu&rsquo;une API, comment fonctionne-t-elle ?"},"content":{"rendered":"<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full wp-image-42482\" src=\"https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/API-for-Dummies-What-is-an-API-How-Do-They-Work.jpg\" alt=\"L'API pour les nuls : Qu'est-ce qu'une API, comment fonctionne-t-elle ?\" width=\"1538\" height=\"980\" srcset=\"https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/API-for-Dummies-What-is-an-API-How-Do-They-Work.jpg 1538w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/API-for-Dummies-What-is-an-API-How-Do-They-Work-300x191.jpg 300w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/API-for-Dummies-What-is-an-API-How-Do-They-Work-1024x652.jpg 1024w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/API-for-Dummies-What-is-an-API-How-Do-They-Work-768x489.jpg 768w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/API-for-Dummies-What-is-an-API-How-Do-They-Work-1536x979.jpg 1536w\" sizes=\"(max-width: 1538px) 100vw, 1538px\" \/><\/p>\n<p>Vous \u00eates-vous d\u00e9j\u00e0 demand\u00e9 comment les applications et les sites web fonctionnent ensemble de mani\u00e8re transparente ? C&rsquo;est l\u00e0 que la puissance des API entre en jeu. La forme compl\u00e8te de l&rsquo;API est Application Programming Interface (interface de programmation d&rsquo;applications). En d&rsquo;autres termes, il s&rsquo;agit d&rsquo;un outil qui permet \u00e0 diff\u00e9rentes applications de communiquer entre elles sans perturber les processus d&rsquo;arri\u00e8re-plan. Par exemple, si vous utilisez votre application de voyage, elle ne se contente pas de vous indiquer les prix des vols. \u00c0 ce moment-l\u00e0, elle utilise un autre serveur \u00e0 l&rsquo;aide d&rsquo;une API pour r\u00e9cup\u00e9rer des donn\u00e9es pour vous. Autre exemple : vous essayez de vous connecter \u00e0 votre compte Gmail \u00e0 l&rsquo;aide d&rsquo;un autre appareil. Ce processus fait appel \u00e0 diff\u00e9rentes API qui travaillent en arri\u00e8re-plan.       <\/p>\n<p>Si vous cherchez un guide de l&rsquo;API pour les nuls, celui-ci est fait pour vous !<\/p>\n<h2><strong>Qu&rsquo;est-ce qu&rsquo;une API ?  <\/strong><\/h2>\n<p>Avant de passer au <strong>tutoriel sur l&rsquo;API pour les d\u00e9butants<\/strong>, discutons bri\u00e8vement de la question de l&rsquo;<strong>API<\/strong>.   <strong>\u00ab\u00a0Qu&rsquo;est-ce qu&rsquo;une API ?<\/strong><\/p>\n<p>Une interface de programmation d&rsquo;application peut \u00eatre d\u00e9finie comme un ensemble de r\u00e8gles qui sert d&rsquo;interm\u00e9diaire entre deux ou plusieurs applications. Supposons que vous, en tant que client, souhaitiez acheter de la viande de b\u0153uf au magasin, qui s&rsquo;approvisionnera aupr\u00e8s de la ferme. Dans ce cas, le magasin n&rsquo;a pas besoin de conna\u00eetre le fonctionnement interne de la ferme pour livrer de la viande fra\u00eeche au client. Il en va de m\u00eame pour l&rsquo;API, qui sert d&rsquo;interm\u00e9diaire pour simplifier le processus et am\u00e9liorer la communication entre deux ou plusieurs logiciels. De nos jours, les applications sont efficaces parce que l&rsquo;API travaille en arri\u00e8re-plan. Par exemple, si vous souhaitez consulter la m\u00e9t\u00e9o ou r\u00e9server un taxi \u00e0 l&rsquo;aide de votre smartphone, l&rsquo;API sert d&rsquo;interm\u00e9diaire pour r\u00e9cup\u00e9rer les donn\u00e9es entre deux ou plusieurs plateformes.     <\/p>\n<p>Voici quelques termes associ\u00e9s aux <strong>bases de l&rsquo;API<\/strong>, qui sont essentiels pour comprendre le fonctionnement de l&rsquo;API :<\/p>\n<ul>\n<li><strong>Appel API :<\/strong> Un appel API est \u00e9galement connu sous le nom de demande API. Il s&rsquo;agit d&rsquo;un message adress\u00e9 \u00e0 un serveur pour permettre \u00e0 une API d&rsquo;ex\u00e9cuter une action. C&rsquo;est l&rsquo;appel API qui lance une action demand\u00e9e par un client sur un site web ou une application.  <\/li>\n<li><strong>Cl\u00e9 API :<\/strong> Une cl\u00e9 API est d&rsquo;une importance capitale lorsqu&rsquo;il s&rsquo;agit d&rsquo;authentifier un appel API. En d&rsquo;autres termes, elle est utilis\u00e9e pour identifier une application avant que la communication ne soit \u00e9tablie afin de garantir la s\u00e9curit\u00e9 des donn\u00e9es. <\/li>\n<li><strong>Passerelle API :<\/strong> Les passerelles API sont utilis\u00e9es pour traiter les informations entre le client et le serveur. C&rsquo;est par l&rsquo;interm\u00e9diaire des passerelles API que les demandes sont trait\u00e9es et transmises \u00e0 diff\u00e9rents serveurs pour g\u00e9n\u00e9rer une r\u00e9ponse au client. Par cons\u00e9quent, les passerelles API aident \u00e0 coordonner les actions pour s&rsquo;assurer que les demandes atteignent les bons serveurs et qu&rsquo;une r\u00e9ponse est envoy\u00e9e au client.  <\/li>\n<\/ul>\n<h2><strong>Comment fonctionne une API ?<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-42463\" src=\"https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image1-4.png\" alt=\"Comment fonctionne une API ?\" width=\"1999\" height=\"1116\" srcset=\"https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image1-4.png 1999w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image1-4-300x167.png 300w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image1-4-1024x572.png 1024w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image1-4-768x429.png 768w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image1-4-1536x858.png 1536w\" sizes=\"(max-width: 1999px) 100vw, 1999px\" \/><\/p>\n<p>Dans cette section, nous allons r\u00e9pondre \u00e0 la question la plus souvent pos\u00e9e : <strong>comment fonctionnent les API<\/strong>? Il est important de comprendre le fonctionnement des API, en particulier pour les d\u00e9veloppeurs, car il s&rsquo;agit du point de contact entre votre projet et les syst\u00e8mes existants. Pour comprendre la <strong>signification des<\/strong> API, il faut savoir qu&rsquo;elles fonctionnent sur le mod\u00e8le demande-r\u00e9ponse. En d&rsquo;autres termes, le client envoie une requ\u00eate au serveur de l&rsquo;API, puis l&rsquo;API re\u00e7oit la r\u00e9ponse du serveur. En termes d&rsquo;\u00e9tapes, il existe des requ\u00eates HTTP fonctionnelles et des points d&rsquo;extr\u00e9mit\u00e9 API.    <\/p>\n<p>Voici comment proc\u00e9der :<\/p>\n<h3><strong>Client API<\/strong><\/h3>\n<p>Le client commence par adresser une demande au serveur de l&rsquo;API. Le client envoie une requ\u00eate HTTP, qui peut se pr\u00e9senter sous diff\u00e9rents formats tels que GET, DELETE, PUT ou POST. Par exemple, vous pouvez saisir une requ\u00eate GET du type \u00ab\u00a0quelle est la temp\u00e9rature au Canada aujourd&rsquo;hui ?\u00a0\u00bb. En outre, elle peut \u00eatre initi\u00e9e par un autre \u00e9v\u00e9nement, comme une notification provenant d&rsquo;une autre application connect\u00e9e.   <\/p>\n<h3><strong>Demande d&rsquo;API  <\/strong><\/h3>\n<p>Une demande d&rsquo;API se pr\u00e9sente diff\u00e9remment selon l&rsquo;API. N\u00e9anmoins, elle se compose de plusieurs \u00e9l\u00e9ments tels que le point d&rsquo;acc\u00e8s, la m\u00e9thode, les param\u00e8tres, les en-t\u00eates et le corps du message. Un point de terminaison est utilis\u00e9 pour la communication et est souvent repr\u00e9sent\u00e9 par une URL. C&rsquo;est l\u00e0 que l&rsquo;API re\u00e7oit les demandes. D&rsquo;autre part, les m\u00e9thodes utilis\u00e9es dans la demande sont le langage de communication utilis\u00e9 par le client pour indiquer au serveur ce qu&rsquo;il veut faire avec les donn\u00e9es. En outre, les param\u00e8tres utilis\u00e9s dans l&rsquo;API d\u00e9finissent l&rsquo;appel \u00e0 l&rsquo;API. Ils sont utilis\u00e9s pour cr\u00e9er des points d&rsquo;extr\u00e9mit\u00e9 uniques pour l&rsquo;appel API. Ils peuvent \u00eatre repr\u00e9sent\u00e9s dans le corps de la requ\u00eate, les en-t\u00eates et les URL.       <\/p>\n<p>D&rsquo;autre part, les en-t\u00eates de requ\u00eate font partie de la requ\u00eate HTTP et sont souvent utilis\u00e9s pour la communication. Ils donnent plus d&rsquo;informations sur la requ\u00eate et son r\u00e9sultat attendu. Ils se pr\u00e9sentent souvent sous la forme de paires cl\u00e9-valeur.  <\/p>\n<p>Enfin, le corps de la requ\u00eate est consid\u00e9r\u00e9 comme le composant principal d&rsquo;une requ\u00eate HTTP. La plupart d&rsquo;entre elles contiennent des op\u00e9rations de cr\u00e9ation et de mise \u00e0 jour telles que POST, PATCH et PUT. Par exemple, lors de la cr\u00e9ation d&rsquo;un nouveau compte utilisateur, il est possible que les donn\u00e9es de l&rsquo;utilisateur, telles que son nom, son adresse \u00e9lectronique et son mot de passe, soient contenues dans le corps de la requ\u00eate.  <\/p>\n<h3><strong>Serveur API<\/strong><\/h3>\n<p>Le serveur API re\u00e7oit les demandes du client API. Il est charg\u00e9 de traiter les demandes du client et d&rsquo;y r\u00e9pondre de mani\u00e8re appropri\u00e9e. Le serveur API effectue diverses op\u00e9rations telles que l&rsquo;authentification des r\u00e9ponses, la validation, l&rsquo;extraction et la manipulation des donn\u00e9es.  <\/p>\n<h3><strong>R\u00e9ponse de l&rsquo;API<\/strong><\/h3>\n<p>Enfin, il existe un composant appel\u00e9 API qui re\u00e7oit une r\u00e9ponse du serveur et la transmet au client. La plupart des r\u00e9ponses sont g\u00e9n\u00e9ralement accompagn\u00e9es d&rsquo;un code d&rsquo;\u00e9tat qui refl\u00e8te l&rsquo;\u00e9tat des demandes envoy\u00e9es. La v\u00e9rification de l&rsquo;\u00e9tat des requ\u00eates HTTP est importante dans le <strong>d\u00e9veloppement de l&rsquo;API<\/strong> en cas d&rsquo;erreur dans les applications du serveur ou du client. Vous trouverez ci-dessous diff\u00e9rents codes d&rsquo;\u00e9tat relatifs \u00e0 l&rsquo;<strong>API pour les d\u00e9butants<\/strong>:   <\/p>\n<ul>\n<li><strong>200 \u00ab\u00a0OK<\/strong> \u00a0\u00bb &#8211; signifie que la demande a \u00e9t\u00e9 accept\u00e9e.<\/li>\n<li><strong>201 \u00ab\u00a0Created<\/strong> \u00a0\u00bb &#8211; confirme que la cr\u00e9ation de la ressource a r\u00e9ussi.<\/li>\n<li><strong>202 \u00ab\u00a0Accept\u00e9<\/strong> \u00a0\u00bb &#8211; signifie que la demande a \u00e9t\u00e9 accept\u00e9e pour traitement.<\/li>\n<li><strong>404 \u00ab\u00a0Not Found<\/strong> \u00a0\u00bb &#8211; signifie que le serveur n&rsquo;a pas trouv\u00e9 la page.<\/li>\n<li><strong>500 \u00ab\u00a0Internal Server Error<\/strong> \u00a0\u00bb &#8211; signifie que le serveur a rencontr\u00e9 une erreur inattendue.<\/li>\n<\/ul>\n<p>Un autre aspect important de la r\u00e9ponse de l&rsquo;API est l&rsquo;en-t\u00eate. Bien que l&rsquo;en-t\u00eate semble similaire \u00e0 l&rsquo;en-t\u00eate de la demande, l&rsquo;en-t\u00eate de la r\u00e9ponse de l&rsquo;API offre des informations suppl\u00e9mentaires sur la r\u00e9ponse du serveur. Enfin, le corps de la r\u00e9ponse de l&rsquo;API contient les informations demand\u00e9es par le client ou un message d&rsquo;erreur si la demande ne peut \u00eatre trait\u00e9e.  <\/p>\n<h2><strong>Avantages de l&rsquo;API<\/strong><\/h2>\n<p>Les API permettent aux syst\u00e8mes logiciels et aux applications de communiquer efficacement. Voici quelques-uns des avantages des API <\/p>\n<h3><strong>Automatisation<\/strong><\/h3>\n<p>L&rsquo;utilisation des API contribue \u00e0 l&rsquo;automatisation des t\u00e2ches r\u00e9p\u00e9titives, qui prennent g\u00e9n\u00e9ralement beaucoup de temps. Cela permet aux humains de consacrer leur \u00e9nergie \u00e0 des t\u00e2ches plus complexes. Gr\u00e2ce \u00e0 l&rsquo;utilisation des API, les flux de travail sont ex\u00e9cut\u00e9s de mani\u00e8re coh\u00e9rente, ce qui contribue \u00e0 am\u00e9liorer la productivit\u00e9.  <\/p>\n<h3><strong>S\u00e9curit\u00e9<\/strong><\/h3>\n<p>L&rsquo;utilisation des API permet d&rsquo;am\u00e9liorer la s\u00e9curit\u00e9 du syst\u00e8me. En effet, l&rsquo;API peut \u00eatre configur\u00e9e de mani\u00e8re \u00e0 ce que seules certaines personnes, telles que celles qui poss\u00e8dent la cl\u00e9 API, puissent acc\u00e9der au syst\u00e8me. Cela contribue \u00e0 am\u00e9liorer la s\u00e9curit\u00e9, car une couche suppl\u00e9mentaire de s\u00e9curit\u00e9 est cr\u00e9\u00e9e contre l&rsquo;utilisation non autoris\u00e9e du syst\u00e8me.  <\/p>\n<h3><strong>L&rsquo;innovation<\/strong><\/h3>\n<p>Un autre avantage de l&rsquo;utilisation des API pour les entreprises est l&rsquo;aspect de l&rsquo;innovation. Gr\u00e2ce \u00e0 l&rsquo;utilisation des API, les entreprises sont en mesure d&rsquo;obtenir des donn\u00e9es de diverses sources et de les analyser, ce qui permet de g\u00e9n\u00e9rer des informations utiles \u00e0 la prise de d\u00e9cision. Cela permet d&rsquo;am\u00e9liorer les processus de prise de d\u00e9cision, de les rendre plus rapides et plus intelligents. En outre, l&rsquo;utilisation des API aide les d\u00e9veloppeurs \u00e0 s&rsquo;appuyer sur les cadres existants, ce qui contribue \u00e0 am\u00e9liorer le d\u00e9veloppement.   <\/p>\n<h2><strong>Types d&rsquo;API<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-42472\" src=\"https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image3-2.png\" alt=\"Types d'API bas\u00e9s sur des styles architecturaux  \" width=\"1999\" height=\"1116\" srcset=\"https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image3-2.png 1999w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image3-2-300x167.png 300w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image3-2-1024x572.png 1024w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image3-2-768x429.png 768w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image3-2-1536x858.png 1536w\" sizes=\"(max-width: 1999px) 100vw, 1999px\" \/><\/p>\n<p>Il existe plusieurs fa\u00e7ons de classer les API, mais dans cette section de l&rsquo;<strong>explication des API pour les nuls<\/strong>, nous allons discuter des types organisationnels d&rsquo;API, qui se concentrent sur l&rsquo;aspect de l&rsquo;acc\u00e8s.<\/p>\n<h3><strong>API priv\u00e9es<\/strong><\/h3>\n<p>Le premier type d&rsquo;API \u00e0 examiner est celui qui est utilis\u00e9 uniquement pour la communication interne au sein d&rsquo;une organisation. Ce type d&rsquo;API est souvent appel\u00e9 API interne. Ils sont principalement utilis\u00e9s pour relier diff\u00e9rents logiciels au sein d&rsquo;une organisation.  <\/p>\n<p>Cela signifie qu&rsquo;elles ne peuvent pas \u00eatre utilis\u00e9es par des tiers. Vous devez savoir que certaines applications ont besoin de plusieurs dizaines de ces types d&rsquo;API pour fonctionner efficacement. <\/p>\n<h3><strong>API publiques<\/strong><\/h3>\n<p>D&rsquo;autre part, l&rsquo;API publique met le flux de donn\u00e9es de l&rsquo;organisation \u00e0 la disposition du public. Cela signifie que le flux de donn\u00e9es de l&rsquo;organisation sera accessible aux d\u00e9veloppeurs tiers et qu&rsquo;ils pourront int\u00e9grer leurs propres applications au flux de donn\u00e9es de l&rsquo;organisation. <\/p>\n<p>Bien que certaines API publiques soient gratuites pour le public, d&rsquo;autres sont r\u00e9pertori\u00e9es comme des produits facturables. Par exemple, la plateforme d&rsquo;un auteur peut utiliser l&rsquo;API de paiement publique, telle que l&rsquo;API Stripe, pour le traitement des paiements. <\/p>\n<h3><strong>API des partenaires<\/strong><\/h3>\n<p>Cette API, comme son nom l&rsquo;indique, permet la communication entre deux ou plusieurs organisations, ce qui facilite grandement le processus de collaboration. Seul le personnel autoris\u00e9 des deux organisations ou plus peut acc\u00e9der aux donn\u00e9es de l&rsquo;API. Cela signifie que l&rsquo;API est livr\u00e9e avec des param\u00e8tres d&rsquo;authentification qui en limitent l&rsquo;acc\u00e8s au grand public.  <\/p>\n<h3><strong>API composites  <\/strong><\/h3>\n<p>Cette API combine l&rsquo;utilisation de plusieurs API sur diff\u00e9rents serveurs, cr\u00e9ant une connexion API simple pour r\u00e9pondre aux exigences sp\u00e9cifiques de l&rsquo;organisation. Par exemple, la plateforme num\u00e9rique de l&rsquo;h\u00f4pital peut \u00eatre d\u00e9velopp\u00e9e \u00e0 l&rsquo;aide de l&rsquo;API composite, qui combine l&rsquo;utilisation de nombreuses API sur diff\u00e9rents serveurs, telles que l&rsquo;API des dossiers m\u00e9dicaux, l&rsquo;API de facturation et l&rsquo;API de rendez-vous. <\/p>\n<h2><strong>Types d&rsquo;API bas\u00e9s sur des styles architecturaux<\/strong><\/h2>\n<p>Les styles architecturaux constituent un autre moyen de classer les API. Voici quelques-uns des styles architecturaux les plus utilis\u00e9s pour <strong>API explained for dummies<\/strong>: <\/p>\n<h3><strong>API REST<\/strong><\/h3>\n<p>L&rsquo;API REST est probablement le style d&rsquo;API le plus utilis\u00e9 pour la programmation web. Sa popularit\u00e9 s&rsquo;explique par sa simplicit\u00e9 et son \u00e9volutivit\u00e9, ainsi que par sa capacit\u00e9 \u00e0 s&rsquo;int\u00e9grer \u00e0 diff\u00e9rentes applications. Elle repose sur une architecture sans \u00e9tat, ce qui signifie que toutes les informations sont envoy\u00e9es lors de l&rsquo;appel \u00e0 l&rsquo;API et ne d\u00e9pendent pas des appels pr\u00e9c\u00e9dents.  <\/p>\n<p>En outre, l&rsquo;API REST est utilis\u00e9e pour les applications qui impliquent un transfert de donn\u00e9es. En d&rsquo;autres termes, le serveur API re\u00e7oit la demande et envoie le contenu du serveur cible \u00e0 l&rsquo;utilisateur. L&rsquo;API utilise des m\u00e9thodes HTTP telles que GET, PUT, POST et DELETE pour traiter les donn\u00e9es. Moreno, les informations demand\u00e9es sont envoy\u00e9es au client-serveur au format JSON ou XML.   <\/p>\n<h3><strong>API SOAP<\/strong><\/h3>\n<p>Simple Object Access Protocol &#8211; L&rsquo;API SOAP utilise le protocole XML pour permettre aux syst\u00e8mes client et serveur de communiquer. Contrairement \u00e0 REST, qui est bas\u00e9 sur une architecture sans \u00e9tat, SOAP est bas\u00e9 sur une norme stricte. <\/p>\n<p>Elle offre \u00e9galement des mesures de s\u00e9curit\u00e9 adapt\u00e9es aux secteurs consid\u00e9r\u00e9s comme \u00e0 haut risque, tels que la sant\u00e9, la banque et la finance. Les API SOAP sont consid\u00e9r\u00e9es comme complexes et n\u00e9cessitent beaucoup de bande passante, ce qui les rend lentes. Elles sont principalement utilis\u00e9es dans les applications qui n\u00e9cessitent une s\u00e9curit\u00e9 dans l&rsquo;\u00e9change de donn\u00e9es au sein d&rsquo;un syst\u00e8me communicant.  <\/p>\n<h3><strong>API WebSocket<\/strong><\/h3>\n<p>Les API WebSocket permettent une communication bidirectionnelle entre les syst\u00e8mes client et serveur. Contrairement \u00e0 REST et SOAP, qui n\u00e9cessitent des requ\u00eates r\u00e9p\u00e9t\u00e9es pour communiquer, WebSocket fournit un canal de communication constant pour mettre \u00e0 jour les donn\u00e9es en temps r\u00e9el. L&rsquo;API WebSocket est principalement utilis\u00e9e dans les applications qui n\u00e9cessitent un \u00e9change rapide de donn\u00e9es.  <\/p>\n<h3><strong>API GraphQL<\/strong><\/h3>\n<p>L&rsquo;API GraphQL est un langage de requ\u00eate open-source. Il s&rsquo;agit d&rsquo;une alternative \u00e0 REST, qui permet aux clients de r\u00e9cup\u00e9rer uniquement les donn\u00e9es dont ils ont besoin. GraphQL permet aux clients d&rsquo;utiliser un seul point d&rsquo;acc\u00e8s pour r\u00e9cup\u00e9rer des donn\u00e9es, plut\u00f4t que d&rsquo;avoir \u00e0 envoyer plusieurs requ\u00eates.  <\/p>\n<p>Il est donc plus facile d&rsquo;\u00e9viter le transfert de donn\u00e9es inutiles entre le client et le serveur. Par cons\u00e9quent, l&rsquo;API GraphQL convient aux applications qui traitent des donn\u00e9es complexes. Elle est normalement utilis\u00e9e dans les applications et les sites web o\u00f9 la vitesse est importante.  <\/p>\n<h3><strong>Appel de proc\u00e9dure \u00e0 distance (Remote Procedure Call API)<\/strong><\/h3>\n<p>Les API RPC ont \u00e9t\u00e9 cr\u00e9\u00e9es par Google. Cette API permet \u00e0 un client d&rsquo;invoquer un serveur comme s&rsquo;il s&rsquo;agissait d&rsquo;une fonction locale. Cela facilite la communication entre les syst\u00e8mes.  <\/p>\n<p>Cette API peut \u00eatre utilis\u00e9e dans des applications o\u00f9 la vitesse et l&rsquo;efficacit\u00e9 sont n\u00e9cessaires. Un exemple d&rsquo;application o\u00f9 cette API peut \u00eatre utilis\u00e9e est le cadre RPC d\u00e9velopp\u00e9 par Google, pour une utilisation dans les microservices. <\/p>\n<h2><strong>Guide \u00e9tape par \u00e9tape pour cr\u00e9er une API<\/strong><\/h2>\n<p>Pour les besoins de ce guide, nous allons cr\u00e9er une API REST simple avec Python et Flask. Gr\u00e2ce \u00e0 cette API, vous pourrez consulter le menu, passer une commande et recevoir la facture. <\/p>\n<p>Voici un guide \u00e9tape par \u00e9tape pour y parvenir :<\/p>\n<h3><strong>\u00c9tape 1 : Choisir un langage de programmation et un cadre<\/strong><\/h3>\n<p>Python est l&rsquo;un des langages de programmation les plus couramment utilis\u00e9s pour cr\u00e9er des scripts. Python est simple, facile \u00e0 mettre en place et poss\u00e8de une syntaxe claire. D&rsquo;autre part, Flask est un framework web l\u00e9ger qui permet de cr\u00e9er facilement une API avec quelques codes.  <\/p>\n<h3><strong>\u00c9tape 2 : Cr\u00e9er votre environnement de codage<\/strong><\/h3>\n<p>L&rsquo;\u00e9tape suivante consiste \u00e0 configurer votre environnement. Nous utiliserons <em>uv<\/em>, une cha\u00eene d&rsquo;outils Python moderne qui remplace rapidement les anciens <em>pip + venv.<\/em> Vous pouvez installer <em>uv<\/em> via la <a href=\"https:\/\/docs.astral.sh\/uv\/\" target=\"_blank\" rel=\"noopener\"> documentation officielle<\/a>. Une fois install\u00e9, cr\u00e9ez un nouveau projet et installez Flask avec les codes suivants :   <\/p>\n<pre><code class=\"language-bash\"># Create project folder and enter it\nmkdir bar-api &amp;&amp; cd bar-api\n\n# Install Flask with uv (uv manages a virtual environment for you)\nuv pip install flask\n<\/code><\/pre>\n<h3><strong>\u00c9tape 3 : Cr\u00e9er le premier point d&rsquo;extr\u00e9mit\u00e9<\/strong><\/h3>\n<p>Maintenant, nous pouvons \u00e9crire une simple application Flask qui agit comme une API de bar. Tout d&rsquo;abord, cr\u00e9ez un nouveau fichier nomm\u00e9 app.py et collez le code : <\/p>\n<p>&nbsp;<\/p>\n<p><strong>Exemple d&rsquo;application Flask (menu, commandes et points finaux de facturation)<\/strong><\/p>\n<pre><code class=\"language-python\">\nfrom flask import Flask, jsonify, request\n\napp = Flask(__name__)\n\n# Sample data: drink menu\nmenu = [\n    {\"id\": 1, \"name\": \"Root beer\", \"price\": 5.0},\n    {\"id\": 2, \"name\": \"Ginger ale\", \"price\": 6.5},\n    {\"id\": 3, \"name\": \"Tequila\", \"price\": 7.0},\n]\n\n# Empty list to store orders\norders = []\n\n# Home route\n@app.route('\/')\ndef home():\n    return \"Welcome to our bar!\"\n\n# GET \/menu \u2014 fetch the menu\n@app.route('\/menu', methods=['GET'])\ndef get_menu():\n    return jsonify(menu)\n\n# POST \/order \u2014 create a new order\n@app.route('\/order', methods=['POST'])\ndef place_order():\n    new_order = request.get_json()\n\n    if not new_order or \"name\" not in new_order or \"price\" not in new_order:\n        return jsonify({\"error\": \"Invalid order data\"}), 400\n\n    new_order[\"id\"] = len(orders) + 1\n    orders.append(new_order)\n\n    return jsonify({\"order_id\": new_order[\"id\"]}), 201\n\n# GET \/bill\/&lt;order_id&gt; \u2014 get the bill for a specific order\n@app.route('\/bill\/&lt;int:order_id&gt;', methods=['GET'])\ndef get_bill(order_id):\n    order = next((o for o in orders if o[\"id\"] == order_id), None)\n\n    if order:\n        return jsonify({\n            \"order_id\": order_id,\n            \"total_price\": order[\"price\"]\n        })\n\n    return jsonify({\"error\": \"Order not found\"}), 404\n\nif __name__ == \"__main__\":\n    app.run(debug=True)\n<\/code><\/pre>\n<p>Voici la d\u00e9composition du code :<\/p>\n<ul>\n<li>Flask cr\u00e9e l&rsquo;application web et g\u00e8re les routes (points d&rsquo;extr\u00e9mit\u00e9 comme <em>\/menu<\/em> ou <em>\/order<\/em>).<\/li>\n<li><em>@app.route()<\/em> d\u00e9finit le r\u00f4le de chaque URL et la m\u00e9thode HTTP qu&rsquo;elle prend en charge.<\/li>\n<li> <em>Jsonify()<\/em> est responsable de la conversion des donn\u00e9es Python au format JSON.<\/li>\n<li><em>request.get_json()<\/em> lit les donn\u00e9es entrantes apr\u00e8s l&rsquo;envoi d&rsquo;une requ\u00eate POST<\/li>\n<li><em>return (data, 201)<\/em> indique que l&rsquo;ordre a \u00e9t\u00e9 cr\u00e9\u00e9 avec succ\u00e8s<\/li>\n<li> <em>app.run(debug=True)<\/em> lance le serveur de d\u00e9veloppement Flask<\/li>\n<\/ul>\n<p>Pour le faire fonctionner :<\/p>\n<p><em>uv run python app.py  <\/em><\/p>\n<p>R\u00e9sultat : Votre API est maintenant en ligne \u00e0 l&rsquo;adresse http:\/\/102.1.1.0.1000\/<\/p>\n<h3><strong>\u00c9tape 4 : Testez votre API<\/strong><\/h3>\n<p>Avant de mettre l&rsquo;API en ligne, il est n\u00e9cessaire d&rsquo;en tester les performances. Vous pouvez utiliser <strong>curl<\/strong> &#8211; un outil de ligne de commande permettant d&rsquo;envoyer des requ\u00eates HTTP pour ex\u00e9cuter l&rsquo;API. Une fois que votre serveur Flask est actif, ouvrez une nouvelle fen\u00eatre de terminal pour utiliser curl.  <\/p>\n<p>Par exemple :<\/p>\n<p>Pour visiter la page d&rsquo;accueil du serveur &#8211; (\u00e0 l&rsquo;aide d&rsquo;une requ\u00eate GET)<\/p>\n<p><em>curl http:\/\/<\/em> 102.1.1.0.1000\/<\/p>\n<p>La r\u00e9ponse devrait \u00eatre quelque chose comme :<\/p>\n<p>\u00ab\u00a0Bienvenue dans notre bar !\u00a0\u00bb<\/p>\n<h3><strong>\u00c9tape 5 : Traitement des erreurs<\/strong><\/h3>\n<p>Maintenant que nous avons confirm\u00e9 que notre API fonctionne comme pr\u00e9vu, il est temps de la rendre plus intelligente. Dans les sc\u00e9narios de la vie r\u00e9elle, les API ne se contentent pas de traiter des demandes simples. Vous devez donc vous assurer que l&rsquo;API peut g\u00e9rer efficacement les erreurs et renvoyer des r\u00e9ponses appropri\u00e9es.  <\/p>\n<p>Un exemple d&rsquo;erreur est l&rsquo;envoi d&rsquo;une requ\u00eate HTTP pour une boisson inexistante. Le syst\u00e8me consid\u00e8re qu&rsquo;il s&rsquo;agit d&rsquo;une erreur et renvoie une page de r\u00e9ponse HTML g\u00e9n\u00e9rique. Cependant, nous voulons que toutes les r\u00e9ponses soient au format JSON. Pour ce faire, nous devons ajouter quelques lignes de code \u00e0 la fin du fichier app.py comme suit :   <\/p>\n<p>&nbsp;<\/p>\n<p><strong>Exemple de gestion des erreurs (Flask)<\/strong><\/p>\n<pre><code class=\"language-python\">\n@app.errorhandler(404)\ndef not_found(e):\n    return jsonify({\"error\": \"Not found\"}), 404\n\n@app.errorhandler(400)\ndef bad_request(e):\n    return jsonify({\"error\": \"Bad request\"}), 400\n\n@app.errorhandler(500)\ndef server_error(e):\n    return jsonify({\"error\": \"Internal server error\"}), 500\n<\/code><\/pre>\n<p>Voici une ventilation des codes :<\/p>\n<ul>\n<li>Un code d&rsquo;erreur HTTP 404 est renvoy\u00e9 si l&rsquo;itin\u00e9raire n&rsquo;existe pas. Le message est au format JSON au lieu d&rsquo;une page de r\u00e9ponse d&rsquo;erreur HTML laide. <\/li>\n<li>Un code d&rsquo;\u00e9tat 400 est renvoy\u00e9 si la demande n&rsquo;est pas valide &#8211; champs manquants ou donn\u00e9es erron\u00e9es.<\/li>\n<li>En cas d&rsquo;erreur inattendue sur le serveur, il renvoie un simple code de r\u00e9ponse 500 dans un format lisible<\/li>\n<\/ul>\n<h2><strong>Cl\u00e9s d&rsquo;API, jetons de support et OAuth<\/strong><\/h2>\n<p>Les cl\u00e9s d&rsquo;API, les jetons de porteur et OAuth jouent un r\u00f4le crucial dans la s\u00e9curit\u00e9 des API. Conna\u00eetre leurs diff\u00e9rences vous permet de comprendre quand utiliser chacune d&rsquo;entre elles. Expliquons-les en d\u00e9tail  <\/p>\n<h3><strong>Cl\u00e9s API<\/strong><\/h3>\n<p>Une cl\u00e9 API est une cha\u00eene de code alphanum\u00e9rique qu&rsquo;un serveur API peut utiliser pour identifier un appelant API et valider son authenticit\u00e9. L&rsquo;objectif principal d&rsquo;une cl\u00e9 API est d&rsquo;identifier l&rsquo;appelant et de d\u00e9terminer s&rsquo;il est autoris\u00e9 \u00e0 acc\u00e9der \u00e0 l&rsquo;application. Elles sont souvent utilis\u00e9es pour l&rsquo;analyse, la limitation du d\u00e9bit et la surveillance de l&rsquo;utilisation.  <\/p>\n<p>En outre, les cl\u00e9s API sont statiques, ce qui les rend moins s\u00fbres. Lorsqu&rsquo;elles sont compromises, elles donnent acc\u00e8s \u00e0 n&rsquo;importe qui jusqu&rsquo;\u00e0 ce qu&rsquo;elles soient rectifi\u00e9es manuellement. Elles ont \u00e9galement une dur\u00e9e de vie plus longue, \u00e0 moins qu&rsquo;elles n&rsquo;expirent \u00e0 une p\u00e9riode sp\u00e9cifique.  <\/p>\n<p>Les cl\u00e9s d&rsquo;API \u00e9tant un excellent moyen de confirmer l&rsquo;identit\u00e9 d&rsquo;un demandeur d&rsquo;API, elles sont id\u00e9ales pour :<\/p>\n<ul>\n<li><strong>Communication de serveur \u00e0 serveur :<\/strong> Cela garantit que la communication ne se fait qu&rsquo;entre les serveurs autoris\u00e9s.<\/li>\n<li><strong>Acc\u00e8s aux API publiques<\/strong>: Les cl\u00e9s d&rsquo;API sont g\u00e9n\u00e9ralement utilis\u00e9es pour accorder l&rsquo;acc\u00e8s aux API publiques telles que les API de Google Maps.<\/li>\n<li><strong>Int\u00e9grations tierces<\/strong>: Les cl\u00e9s d&rsquo;API sont utilis\u00e9es pour l&rsquo;int\u00e9gration de votre API par des tiers, sans sacrifier la possibilit\u00e9 de contr\u00f4ler l&rsquo;utilisation et de r\u00e9soudre les probl\u00e8mes. Cela est particuli\u00e8rement utile lorsque la mon\u00e9tisation et la limitation des tarifs font partie de vos objectifs. <\/li>\n<\/ul>\n<p>Cependant, une cl\u00e9 API n&rsquo;est pas efficace en tant que solution de s\u00e9curit\u00e9 unique. Elle doit plut\u00f4t faire partie d&rsquo;une structure plus large de s\u00e9curit\u00e9 de l&rsquo;API. <\/p>\n<h3><strong>Jetons au porteur<\/strong><\/h3>\n<p>Un jeton au porteur est un jeton de s\u00e9curit\u00e9 qui donne acc\u00e8s \u00e0 son d\u00e9tenteur. Cela signifie que quiconque poss\u00e8de le jeton a un acc\u00e8s illimit\u00e9. Pensez \u00e0 un ticket de cin\u00e9ma : celui qui le d\u00e9tient a acc\u00e8s au cin\u00e9ma sans autre preuve de v\u00e9rification.  <\/p>\n<p>Les jetons porteurs sont g\u00e9n\u00e9ralement associ\u00e9s \u00e0 une autorisation ou \u00e0 une session utilisateur sp\u00e9cifique. Contrairement aux cl\u00e9s API, ils ont une courte dur\u00e9e de vie et expirent souvent en quelques minutes ou quelques heures. Toutefois, ils sont plus s\u00fbrs que les cl\u00e9s d&rsquo;API, en particulier lorsqu&rsquo;ils sont utilis\u00e9s avec HTTPS.  <\/p>\n<p>Les jetons au porteur se pr\u00e9sentent sous diff\u00e9rents formats :<\/p>\n<ul>\n<li><strong>Jetons Web JSON (JWT) :<\/strong> Ces jetons sont sign\u00e9s cryptographiquement et permettent une authentification sans \u00e9tat, ce qui en fait un excellent choix pour les syst\u00e8mes distribu\u00e9s et les microservices.<\/li>\n<li><strong>Jetons opaques :<\/strong> Il s&rsquo;agit de cha\u00eenes al\u00e9atoires sans lien avec le client ou le serveur. Bien qu&rsquo;ils soient faciles \u00e0 mettre en \u0153uvre, ils n\u00e9cessitent un stockage c\u00f4t\u00e9 serveur. <\/li>\n<li><strong>Les jetons de rafra\u00eechissement :<\/strong> Ils sont con\u00e7us pour permettre aux d\u00e9tenteurs d&rsquo;obtenir de nouveaux jetons d&rsquo;acc\u00e8s sans avoir \u00e0 les revalider.<\/li>\n<\/ul>\n<p>Voici quelques-uns des cas d&rsquo;utilisation :<\/p>\n<ul>\n<li><strong>Communication entre microservices :<\/strong> Les jetons de support garantissent une communication s\u00e9curis\u00e9e entre services. Ici, un service authentifie sa demande aupr\u00e8s d&rsquo;un autre service \u00e0 l&rsquo;aide d&rsquo;un jeton porteur. <\/li>\n<li><strong>Gestion de session sans \u00e9tat :<\/strong> Ces jetons permettent aux serveurs d&rsquo;authentifier les demandes sans enregistrer les informations de session, ce qui est tr\u00e8s utile pour les syst\u00e8mes distribu\u00e9s.<\/li>\n<li><strong>Authentification des applications mobiles :<\/strong> Les jetons porteurs permettent aux utilisateurs d&rsquo;acc\u00e9der aux fonctions de l&rsquo;application sans avoir \u00e0 s&rsquo;authentifier \u00e0 nouveau.<\/li>\n<\/ul>\n<h3><strong>OAuth (Open Authorization)<\/strong><\/h3>\n<p>OAuth est un protocole d&rsquo;autorisation ouvert. Il permet \u00e0 des serveurs qui ne sont pas directement int\u00e9gr\u00e9s de fournir un acc\u00e8s authentifi\u00e9 aux informations. Ce protocole permet aux utilisateurs d&rsquo;autoriser une application \u00e0 interagir avec une autre, en leur nom, sans divulguer leurs informations d&rsquo;authentification.  <\/p>\n<p>La mise en \u0153uvre d&rsquo;OAuth est plus complexe que celle des cl\u00e9s d&rsquo;API. Il requiert le consentement explicite de l&rsquo;utilisateur pour que l&rsquo;application puisse acc\u00e9der \u00e0 des donn\u00e9es sp\u00e9cifiques, ce qui le rend hautement s\u00e9curis\u00e9. Il s&rsquo;agit de jetons d&rsquo;acc\u00e8s et de rafra\u00eechissement de courte dur\u00e9e, g\u00e9n\u00e9r\u00e9s par un cadre dynamique.  <\/p>\n<p>OAuth fonctionne par le biais d&rsquo;un m\u00e9canisme de d\u00e9l\u00e9gation : les utilisateurs s&rsquo;appuient sur un serveur d&rsquo;autorisation pour g\u00e9n\u00e9rer des jetons d&rsquo;acc\u00e8s qui peuvent \u00eatre utilis\u00e9s pour se connecter \u00e0 d&rsquo;autres applications. Par exemple, un utilisateur de Gmail aimerait que Facebook acc\u00e8de \u00e0 sa liste de contacts sans lui communiquer son nom d&rsquo;utilisateur et son mot de passe. <\/p>\n<h2><strong>R\u00e9capitulation<\/strong><\/h2>\n<p>Dans cet article sur <strong>les API expliqu\u00e9es pour les nuls<\/strong>, nous avons appris comment fonctionnent les API, quels sont leurs types et quels sont leurs avantages pour les entreprises. L&rsquo;interface de programmation d&rsquo;applications (API) est un \u00e9l\u00e9ment essentiel de la cr\u00e9ation d&rsquo;applications et de sites web. <\/p>\n<p>Les API facilitent l&rsquo;interaction entre les applications, contribuent \u00e0 l&rsquo;automatisation et offrent une s\u00e9curit\u00e9 suppl\u00e9mentaire. Qu&rsquo;il s&rsquo;agisse de r\u00e9cup\u00e9rer des informations sur la m\u00e9t\u00e9o, de se connecter \u00e0 nos comptes ou d&rsquo;effectuer des transactions sur des sites d&rsquo;achat en ligne, les API sont \u00e0 l&rsquo;\u0153uvre pour faciliter une interaction fluide. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vous \u00eates-vous d\u00e9j\u00e0 demand\u00e9 comment les applications et les sites web fonctionnent ensemble de mani\u00e8re transparente ? C&rsquo;est l\u00e0 que la puissance des API entre en jeu. La forme compl\u00e8te de l&rsquo;API est Application Programming Interface (interface de programmation d&rsquo;applications). En d&rsquo;autres termes, il s&rsquo;agit d&rsquo;un outil qui permet \u00e0 diff\u00e9rentes applications de communiquer entre [&hellip;]<\/p>\n","protected":false},"author":20,"featured_media":42495,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[439,488,487,561],"tags":[],"class_list":["post-42534","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-unblocking-services","category-how-to","category-scraping"],"acf":[],"_links":{"self":[{"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/posts\/42534","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/comments?post=42534"}],"version-history":[{"count":0,"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/posts\/42534\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/media\/42495"}],"wp:attachment":[{"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/media?parent=42534"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/categories?post=42534"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/tags?post=42534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}