{"id":226059,"date":"2022-08-22T10:59:00","date_gmt":"2022-08-22T07:59:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=226059"},"modified":"2022-11-08T01:41:39","modified_gmt":"2022-11-07T22:41:39","slug":"creation-dun-systeme-crud-dans-wordpress-plugin-de-tables-wpdatatables","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/creation-dun-systeme-crud-dans-wordpress-plugin-de-tables-wpdatatables\/","title":{"rendered":"Cr\u00e9ation d&rsquo;un syst\u00e8me CRUD dans WordPress &#8211; Plugin de tables wpDataTables"},"content":{"rendered":"\n<p>Cet article sur la cr\u00e9ation d&rsquo;un syst\u00e8me CRUD dans WordPress a \u00e9t\u00e9 publi\u00e9 en 2014. Cependant, nous avons remarqu\u00e9 que ce sujet devenait encore plus actuel, nous avons donc d\u00e9cid\u00e9 de lui donner un nouveau look.<\/p>\n<p>Qu&rsquo;est-ce qu&rsquo;un syst\u00e8me CRUD, comment int\u00e9grer un syst\u00e8me CRUD pour MySQL dans votre site WordPress, quels sont les avantages et les inconv\u00e9nients d&rsquo;utiliser diff\u00e9rentes approches ?<\/p>\n<h2>Qu&rsquo;est-ce qu&rsquo;un syst\u00e8me CRUD ?<\/h2>\n<p>L&rsquo;abr\u00e9viation <strong>CRUD<\/strong> vient de <strong>C<\/strong> reate, <strong>L<\/strong> ead, <strong>U<\/strong> pdate, <strong>D<\/strong> elete. Ce qui, en d&rsquo;autres termes, signifie un syst\u00e8me de gestion des donn\u00e9es. Sur le Web, cela signifierait tr\u00e8s probablement un logiciel qui g\u00e8re les entr\u00e9es de votre base de donn\u00e9es. Habituellement, il fait r\u00e9f\u00e9rence \u00e0 MySQL, PostgreSQL, MS SQL ou \u00e0 d&rsquo;autres moteurs de base de donn\u00e9es.<\/p>\n<p>Un bon exemple, et peut-\u00eatre le plus populaire, d&rsquo;un syst\u00e8me CRUD est <a href=\"https:\/\/www.phpmyadmin.net\/home_page\/index.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">phpMyAdmin<\/a>. PHPMyAdmin est un outil utilis\u00e9 par presque tous les d\u00e9veloppeurs Web pour g\u00e9rer les donn\u00e9es MySQL en ligne. Il s&rsquo;est tellement r\u00e9pandu qu&rsquo;il peut actuellement \u00eatre qualifi\u00e9 d&rsquo;outil standard pour la gestion des bases de donn\u00e9es MySQL. De nos jours, il est pr\u00e9install\u00e9 sur presque tous les outils CPanel chez les h\u00e9bergeurs.<\/p>\n<p>Il existe des milliers de cas d&rsquo;utilisation standard pour les syst\u00e8mes CRUD. Par exemple &#8211; presque n&rsquo;importe quel catalogue, journal d&rsquo;entr\u00e9e, informations statistiques. Fondamentalement, tout ce qui concerne le stockage d&rsquo;informations n\u00e9cessiterait d&rsquo;ajouter, de modifier et de supprimer des bits d&rsquo;information. C&rsquo;est alors que les syst\u00e8mes CRUD entrent en jeu.<\/p>\n<h2>Pourquoi auriez-vous besoin d&rsquo;un syst\u00e8me CRUD dans WordPress ?<\/h2>\n<p>WordPress lui-m\u00eame est un puissant CMS (Content Management System), qui est \u00e9galement un cas particulier du syst\u00e8me CRUD. Comme vous le savez, les utilisateurs du site WordPress peuvent ajouter des articles et des pages, les modifier ou les supprimer. Mais parfois, vous rencontrez une situation o\u00f9 vous devez g\u00e9rer certaines donn\u00e9es de base de donn\u00e9es directement \u00e0 partir du front-end WordPress qui ne sont g\u00e9n\u00e9ralement pas publi\u00e9es ou li\u00e9es \u00e0 la page et ne correspondent pas bien aux taxonomies WordPress. Entre autres, cela peut \u00eatre l&rsquo;une de ces situations o\u00f9 vous auriez besoin d&rsquo;un syst\u00e8me CRUD ind\u00e9pendant dans WordPress :<\/p>\n<ul>\n<li>Vous aimeriez avoir un outil de suivi des bogues, un journal des entr\u00e9es ou un autre outil de saisie de donn\u00e9es sur votre site WordPress\u00a0;<\/li>\n<li>Ou, par exemple, vous souhaitez autoriser certains utilisateurs \u00e0 modifier certaines donn\u00e9es commerciales \u00e0 partir du front-end de votre site sans leur donner acc\u00e8s au panneau d&rsquo;administration du site WordPress, ou peut-\u00eatre m\u00eame sans divulguer le fait que le site fonctionne sur WordPress\u00a0;<\/li>\n<li>Un autre exemple est une exigence pour permettre \u00e0 certains utilisateurs de modifier une table de base de donn\u00e9es. Par exemple, modifier une commande pass\u00e9e, modifier certaines donn\u00e9es personnelles, etc.<\/li>\n<\/ul>\n<p>Et demandes similaires.<\/p>\n<h2>Comment int\u00e9grer un syst\u00e8me CRUD dans un site WordPress ?<\/h2>\n<h3>La solution la plus simple \u2013 essayez de trouver un plugin appropri\u00e9<\/h3>\n<p><strong>Tout d&rsquo;abord, assurez-vous que vous en avez vraiment besoin.<\/strong> De nombreuses t\u00e2ches ne sont pas uniques et vous pouvez probablement trouver un plugin qui r\u00e9pondrait \u00e0 vos besoins. Par exemple, si vous avez besoin d&rsquo;un outil de suivi des bogues, comme mentionn\u00e9 ci-dessus, vous pouvez v\u00e9rifier et t\u00e9l\u00e9charger <a href=\"https:\/\/wordpress.org\/plugins\/really-simple-issue-tracker\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">celui<\/a> -ci ou <a href=\"https:\/\/wordpress.org\/plugins\/bugerator\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">celui-ci<\/a>.<\/p>\n<p>Et si vous avez besoin de quelque chose de plus g\u00e9n\u00e9rique, comme l&rsquo;\u00e9dition de diff\u00e9rentes tables MySQL \u00e0 partir du front-end WordPress, essayez notre plugin <a href=\"https:\/\/wpdatatables.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wpDataTables<\/a> qui est essentiellement un syst\u00e8me CRUD dans WordPress. Vous pouvez voir la liste des fonctionnalit\u00e9s et des exemples de leur fonctionnement <a href=\"https:\/\/wpdatatables.com\/documentation\/general\/features-overview\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ici<\/a>. Ou m\u00eame essayez une version Lite gratuite dans le r\u00e9f\u00e9rentiel de <a href=\"https:\/\/wordpress.org\/plugins\/wpdatatables\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">plugins WordPress<\/a>.<\/p>\n<p>Il convient de noter que wpDataTables n&rsquo;impose aucune limitation sur la structure des donn\u00e9es, le nombre de colonnes ou de lignes, prend en charge de nombreux <a href=\"https:\/\/wpdatatables.com\/documentation\/column-features\/currency-percentage-and-other-columns\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">types de donn\u00e9es<\/a> et <a href=\"https:\/\/wpdatatables.com\/documentation\/front-end-editing\/editor-input-types\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">diff\u00e9rents types d&rsquo;entr\u00e9e d&rsquo;\u00e9diteur<\/a>. Par exemple, certains types sp\u00e9cifiques comme les pi\u00e8ces jointes ou <a href=\"https:\/\/wpdatatables.com\/documentation\/column-features\/datetime-columns\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">DateTime<\/a>. En outre, il permet d&rsquo;\u00e9diter des donn\u00e9es via un <a href=\"https:\/\/wpdatatables.com\/documentation\/front-end-editing\/creating-editable-tables\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00e9diteur de formulaire contextuel<\/a>, avec un <a href=\"https:\/\/wpdatatables.com\/documentation\/front-end-editing\/inline-editing\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00e9diteur en ligne<\/a> ou m\u00eame avec un \u00e9diteur de <a href=\"https:\/\/wpdatatables.com\/documentation\/front-end-editing\/excel-like-editor\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tableur de type Excel<\/a>.<\/p>\n<p>Si vous pensez toujours que vous avez besoin de cr\u00e9er un syst\u00e8me CRUD personnalis\u00e9 dans WordPress, vous devez vous pr\u00e9parer \u00e0 un codage s\u00e9rieux pour le faire.<\/p>\n<h3>D\u00e9marrer un nouveau plugin WordPress<\/h3>\n<p>Si vous pensez qu&rsquo;aucun plugin ne correspond \u00e0 vos besoins, cr\u00e9ez le v\u00f4tre! Ce n&rsquo;est peut-\u00eatre pas aussi effrayant qu&rsquo;il n&rsquo;y para\u00eet \u00e0 premi\u00e8re vue. Commencez par lire <a href=\"http:\/\/code.tutsplus.com\/tutorials\/create-a-custom-wordpress-plugin-from-scratch--net-2668\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ce joli tutoriel<\/a> sur la cr\u00e9ation d&rsquo;un plugin WordPress \u00e0 partir de z\u00e9ro. Et aussi bien s\u00fbr <a href=\"https:\/\/codex.wordpress.org\/Writing_a_Plugin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">celui-ci<\/a> dans WordPress Codex.<\/p>\n<p>La premi\u00e8re \u00e9tape initiale lorsque vous cr\u00e9ez un plugin \u2013 y compris un syst\u00e8me CRUD dans un plugin WordPress \u2013 consiste \u00e0 structurer correctement les fichiers.<br \/>\nL&rsquo;approche habituelle consiste \u00e0 placer le fichier de point d&rsquo;entr\u00e9e CRUD principal dans le r\u00e9pertoire racine du plugin et \u00e0 pr\u00e9parer plusieurs sous-dossiers\u00a0:<\/p>\n<ul>\n<li><strong>Actifs<\/strong> &#8211; tous les javascript, feuilles de style, polices, images et autres actifs statiques qui seront n\u00e9cessaires pour votre syst\u00e8me CRUD\u00a0;<\/li>\n<li><strong>Source<\/strong> &#8211; dossier pour les classes PHP &quot;core&quot; qui ex\u00e9cuteront toutes les fonctionnalit\u00e9s CRUD dans le back-end\u00a0;<\/li>\n<li><strong>Lib<\/strong> &#8211; dossier pour tous les composants tiers que vous souhaitez utiliser dans votre syst\u00e8me CRUD\u00a0;<\/li>\n<li><strong>Mod\u00e8les<\/strong> &#8211; dossier pour les mod\u00e8les HTML qui seront l&rsquo;interface utilisateur de votre syst\u00e8me CRUD.<\/li>\n<\/ul>\n<p>Il peut y en avoir plus (contr\u00f4leurs, gestionnaires de codes courts et autres) &#8211; mais c&rsquo;est un minimum pour commencer.<\/p>\n<h3>Cr\u00e9er le back-end de l&rsquo;\u00e9diteur (classes PHP)<\/h3>\n<p>Tout d&rsquo;abord, vous auriez besoin de la partie back-end\u00a0: un script PHP qui effectuerait r\u00e9ellement les t\u00e2ches CRUD. Pour cela, vous devez le connecter \u00e0 la base de donn\u00e9es WordPress (objet global $wpdb). <a href=\"http:\/\/wp.smashingmagazine.com\/2011\/09\/21\/interacting-with-the-wordpress-database\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Vous pouvez lire ici<\/a> un joli tutoriel sur l&rsquo;utilisation de la base de donn\u00e9es WordPress et de l&rsquo;objet $wpdb dans vos plugins.<\/p>\n<p>Si vous utilisez une base de donn\u00e9es externe, vous devrez par exemple utiliser une <a href=\"https:\/\/php.net\/pdo\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">connexion PDO<\/a> s\u00e9par\u00e9e ou simplement des fonctions PHP <a href=\"http:\/\/www.php.net\/manual\/en\/book.mysqli.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">MySQLi<\/a> int\u00e9gr\u00e9es (si votre moteur de base de donn\u00e9es est MySQL).<\/p>\n<p>Votre t\u00e2che \u00e0 cette \u00e9tape est de pr\u00e9parer un ensemble de classes et de m\u00e9thodes qui accepteront les donn\u00e9es du front-end sous une forme attendue, de les valider et de les <a href=\"https:\/\/codex.wordpress.org\/Validating_Sanitizing_and_Escaping_User_Data\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">nettoyer<\/a> (la d\u00e9sinfection de toutes les entr\u00e9es est une mesure de s\u00e9curit\u00e9 tr\u00e8s importante pour tous les syst\u00e8mes CRUD) et d&rsquo;effectuer les actions <strong>INSERT<\/strong>, <strong>UPDATE<\/strong> et <strong>DELETE<\/strong> sur votre base de donn\u00e9es.<\/p>\n<p>Comme d\u00e9crit \u00e0 l&rsquo;\u00e9tape pr\u00e9c\u00e9dente, ces fichiers &quot;de base&quot; appartiendraient au dossier &quot;source&quot; de votre nouveau plugin CRUD WordPress.<\/p>\n<h3>Cr\u00e9er une interface frontale (HTML, JS, PHP)<\/h3>\n<p>Lorsque les classes et les m\u00e9thodes de gestion de base de donn\u00e9es sont pr\u00e9par\u00e9es, votre plugin aurait besoin d&rsquo;une interface frontale pour l&rsquo;utilisateur avec votre nouveau syst\u00e8me CRUD dans WordPress. La meilleure solution serait de pr\u00e9parer un ensemble de mod\u00e8les dans vos nouveaux fichiers de plug-in et de le sortir o\u00f9 vous en avez besoin avec un shortcode.<\/p>\n<p>Il est logique de toujours garder les mod\u00e8les HTML s\u00e9par\u00e9s du code (approche MVC) et de pr\u00e9parer des fichiers de mod\u00e8les s\u00e9par\u00e9s logiquement, par exemple\u00a0: &quot;edit.tpl.php&quot;, &quot;delete.tpl.php&quot;, &quot;list.tpl.php&quot;. \u00bb, etc. \u2013 un mod\u00e8le pour chaque page ou action CRUD.<\/p>\n<p><a href=\"https:\/\/codex.wordpress.org\/Shortcode_API\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Ici,<\/a> vous pouvez lire un excellent article du codex sur l&rsquo;API WordPress Shortcode.<\/p>\n<h3>Connectez le front-end au back-end avec les appels AJAX (JS)<\/h3>\n<p>Bien s\u00fbr, vous pouvez le faire &quot;\u00e0 l&rsquo;ancienne&quot;, avec de simples soumissions de formulaires et le rechargement de pages. Cependant, de nos jours, ce n&rsquo;est plus une approche courante. L&rsquo;utilisation d&rsquo;AJAX est plut\u00f4t une approche standard, soit via jQuery, soit via d&rsquo;autres biblioth\u00e8ques comme Angular. Notre recommandation est donc de prendre un peu de temps et d&rsquo;examiner l&rsquo;utilisation d&rsquo;AJAX dans vos plugins WordPress, <a href=\"https:\/\/codex.wordpress.org\/AJAX_in_Plugins\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">voici<\/a> un excellent article du Codex sur la fa\u00e7on d&rsquo;utiliser AJAX dans vos plugins &#8211; \u00e0 la fois c\u00f4t\u00e9 administrateur et c\u00f4t\u00e9 frontal.<\/p>\n<p>Vous pouvez mettre le code JS dans le dossier &quot;assets&quot; que vous avez pr\u00e9par\u00e9 \u00e0 la premi\u00e8re \u00e9tape.<\/p>\n<h3>Tester, affiner et d\u00e9boguer<\/h3>\n<p>Lorsque la partie mise en \u0153uvre est termin\u00e9e, prenez un peu de temps et testez votre nouveau syst\u00e8me CRUD dans WordPress. Vous ne pouvez pas rep\u00e9rer tous les bogues d\u00e8s le d\u00e9but, mais r\u00e9p\u00e9ter plusieurs fois les actions de routine CRUD avec diff\u00e9rents exemples (cas &quot;p\u00e9riph\u00e9riques&quot; pr\u00e9f\u00e9rables &#8211; par exemple, de tr\u00e8s grandes quantit\u00e9s de donn\u00e9es, cliquer plusieurs fois sur le m\u00eame bouton, etc.) vous aidera toujours. pour attraper la plupart des bugs &#8211; et ceux-ci se produisent toujours lorsque vous impl\u00e9mentez quelque chose de nouveau.<\/p>\n<h2>CRUD vs REST\u00a0: quelle est la diff\u00e9rence\u00a0?<\/h2>\n<p>REST est un style architectural de cr\u00e9ation d&rsquo;applications en r\u00e9seau bas\u00e9 sur un protocole de communication client-serveur, sans \u00e9tat et pouvant \u00eatre mis en cache, c&rsquo;est-\u00e0-dire le protocole HTTP. CRUD est un acronyme pour CREATE, READ, UPDATE et DELETE, les fonctions de base du stockage persistant en programmation.<\/p>\n<p>Les op\u00e9rations CRUD, c&rsquo;est-\u00e0-dire CREATE, READ, UPDATE, DELETE, sont similaires aux commandes de base REST, c&rsquo;est-\u00e0-dire GET, PUT, POST, DELETE, ce qui conduit \u00e0 une confusion entre les deux. Qu&rsquo;est-ce que CRUD? Qu&rsquo;est-ce que le REPOS\u00a0? Dans CRUD vs REST, quelle est la d\u00e9finition CRUD\u00a0? Est-ce que REST est une simple copie carbone de CRUD ?<\/p>\n<p>Autant de questions tr\u00e8s pertinentes auxquelles cet article entend r\u00e9pondre en d\u00e9tail !<\/p>\n<h3><strong>Comment fonctionne REST\u00a0?<\/strong><\/h3>\n<p>Vous ne pouvez pas comprendre des termes tels que API REST, services REST, matrice CRUD, base de donn\u00e9es CRUD ou programmation REST si vous ne comprenez pas la diff\u00e9rence entre les deux processus en ce qui concerne leur fonctionnement. La confusion dispara\u00eetra une fois que vous conna\u00eetrez cette diff\u00e9rence.<\/p>\n<p>Vous pouvez travailler REST sur n&rsquo;importe quelle ressource, qu&rsquo;il s&rsquo;agisse d&rsquo;un fichier multim\u00e9dia, d&rsquo;un document, d&rsquo;un site Web, etc. Il n&rsquo;y a aucune restriction quant \u00e0 ce sur quoi vous pouvez travailler REST ; vous pouvez utiliser HTML uniquement comme protocole de communication pour pointer les ressources. REST signifie Representational State Transfer.<\/p>\n<p>REST indique que chaque URL distinctive repr\u00e9sente un objet auquel vous pouvez acc\u00e9der via un HTTP GET, ainsi que le modifier et le supprimer via HTTP POST, PUT ou DELETE.<\/p>\n<h3><strong>Comment fonctionne CRUD ?<\/strong><\/h3>\n<p>Vous ne pouvez appliquer CRUD que sur des enregistrements de base de donn\u00e9es et vous ne pouvez pas cr\u00e9er d&rsquo;API CRUD comme vous cr\u00e9ez des API REST. L&rsquo;application CRUD est limit\u00e9e aux bases de donn\u00e9es, c&rsquo;est pourquoi CRUD, contrairement \u00e0 REST, n&rsquo;est pas un style d&rsquo;architecture, mais un cycle. Les applications et les sites Web contiennent tous des cycles CRUD diff\u00e9rents.<\/p>\n<p>Par exemple, un visiteur sur un site Web de commerce \u00e9lectronique peut CR\u00c9ER un compte, METTRE \u00c0 JOUR le compte, LIRE les informations et SUPPRIMER le compte. C&rsquo;est un cycle CRUD complet qui inclut toutes les op\u00e9rations CRUD.<\/p>\n<p>Par exemple, sur le m\u00eame site Web de commerce \u00e9lectronique, un visiteur peut CR\u00c9ER un article dans le panier \u00e9lectronique, puis terminer le cycle CRUD complet en LISANT, METTRE \u00c0 JOUR et m\u00eame SUPPRIMER l&rsquo;article.<\/p>\n<h3><strong>Le fondement et les principes de REST<\/strong><\/h3>\n<p>Les commandes de base du Representational State Transfer &#8211; l&rsquo;acronyme REST &#8211; tournent autour d&rsquo;un objet ou d&rsquo;une ressource, qui peut \u00eatre d\u00e9crit comme tout ce que vous pouvez r\u00e9v\u00e9ler \u00e0 l&rsquo;aide du protocole HTTP. Exemples de ressources REST\u00a0: image, site Web, document, service. Le ciel est la limite.<\/p>\n<p>REST est une interface de programmation d&rsquo;application, ou API, ou une architecture destin\u00e9e au multim\u00e9dia distribu\u00e9. Une API est un service Web qui suit les principes de l&rsquo;architecture REST. Ainsi, REST appelle chaque API via l&rsquo;une des m\u00e9thodes de requ\u00eate HTTP, GET, PUT, POST et DELETE.<\/p>\n<h3><strong>Les six principes directeurs de l&rsquo;architecture RESTful<\/strong><\/h3>\n<ol>\n<li>\n<h3><strong>Mandat client-serveur<\/strong><\/h3>\n<\/li>\n<\/ol>\n<p>Le mandat client-serveur met l&rsquo;accent sur le fait que REST repr\u00e9sente une m\u00e9thode distribu\u00e9e qui repose sur la nature de la s\u00e9paration client-serveur. Un service REST implique plusieurs fonctionnalit\u00e9s et r\u00e9pond aux demandes. Le client fait les demandes et le serveur les accepte ou les refuse.<\/p>\n<ol start=\"2\">\n<li>\n<h3><strong>Apatridie<\/strong><\/h3>\n<\/li>\n<\/ol>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-205612-61e8cbbce0972.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-205612-61e8cbbce0972.jpg\" alt=\"Cr\u00e9ation d&#039;un syst\u00e8me CRUD dans WordPress - Plugin de tables wpDataTables\" ><\/a><\/p>\n<p>L&rsquo;apatridie limite le type de requ\u00eates pouvant \u00eatre soumises entre le consommateur et le serveur. En effet, c&rsquo;est la demande qui initie la communication client-service, o\u00f9 la demande contient toutes les informations n\u00e9cessaires pour que le serveur r\u00e9ponde.<\/p>\n<ol start=\"3\">\n<li>\n<h3><strong>Mise en cache<\/strong><\/h3>\n<\/li>\n<\/ol>\n<p>Le but de la mise en cache d&rsquo;une requ\u00eate est de ne jamais avoir \u00e0 soumettre la m\u00eame requ\u00eate deux fois, car la mise en cache demande au serveur d&rsquo;\u00e9tiqueter les r\u00e9ponses comme pouvant \u00eatre mises en cache ou non. Par cons\u00e9quent, la mise en cache r\u00e9duit les contraintes ou les restrictions g\u00e9n\u00e9r\u00e9es par l&rsquo;apatridie.<\/p>\n<ol start=\"4\">\n<li>\n<h3><strong>Contrat uniforme<\/strong><\/h3>\n<\/li>\n<\/ol>\n<p>Le contrat uniforme exclut l&rsquo;utilisation de plusieurs interfaces ind\u00e9pendantes \u00e0 l&rsquo;int\u00e9rieur d&rsquo;une interface de programmation d&rsquo;application ou d&rsquo;une API. REST s&rsquo;en tient aux principes d&rsquo;un contrat uniforme. Par cons\u00e9quent, une interface REST est partag\u00e9e via des connexions hyperm\u00e9dias.<\/p>\n<ol start=\"5\">\n<li>\n<h3><strong>Syst\u00e8me en couches<\/strong><\/h3>\n<\/li>\n<\/ol>\n<p>Un syst\u00e8me en couches utilise plusieurs couches ind\u00e9pendantes pour d\u00e9velopper et \u00e9tendre l&rsquo;interface. Comme les couches ne peuvent pas se voir, de nouvelles requ\u00eates et intergiciels peuvent \u00eatre ins\u00e9r\u00e9s qui n&rsquo;auront pas d&rsquo;impact sur les commandes initiales et le fonctionnement client-serveur.<\/p>\n<ol start=\"6\">\n<li>\n<h3><strong>Facultatif\u00a0: Code \u00e0 la demande<\/strong><\/h3>\n<\/li>\n<\/ol>\n<p>Alors que le client-serveur, la mise en cache, l&rsquo;apatridie, le contrat uniforme et le syst\u00e8me en couches sont indispensables pour les applications RESTful, le code \u00e0 la demande n&rsquo;est pas obligatoire. Cependant, Code-on-Demand permet \u00e0 la logique des clients de rester ind\u00e9pendante et donc mise \u00e0 jour s\u00e9par\u00e9ment de la logique du serveur.<\/p>\n<h3><strong>Fin des r\u00e9flexions sur CRUD vs REST<\/strong><\/h3>\n<p>CRUD implique les op\u00e9rations essentielles effectu\u00e9es dans le stockage de donn\u00e9es statiques ou les bases de donn\u00e9es, telles que la gestion d&rsquo;enregistrements ou d&rsquo;objets passifs. CRUD manipule essentiellement des donn\u00e9es de base.<\/p>\n<p>REST s&rsquo;appuie sur la repr\u00e9sentation des ressources via des URL uniques, o\u00f9 les ressources sont des abstractions d&rsquo;objets, o\u00f9 le commentaire d&rsquo;un utilisateur peut \u00eatre une ressource, par exemple.<\/p>\n<p>En tant que tel, REST implique plus qu&rsquo;un enregistrement dans une table de commentaires. REST concerne la relation de l&rsquo;enregistrement avec la ressource utilisateur et le message\/commentaire auquel il est attach\u00e9. REST est un style d&rsquo;API de tr\u00e8s haut niveau qui interagit avec un syst\u00e8me complexe.<\/p>\n<hr \/>\n<p>Bien s\u00fbr, cet article n&rsquo;\u00e9tait pas un tutoriel complet \u2013 puisqu&rsquo;il faudrait vingt pages pour en \u00e9crire un. Mais faites-nous savoir si vous avez des questions ou si vous souhaitez voir un exemple sp\u00e9cifique \u00e9tape par \u00e9tape, et nous en cr\u00e9erons un pour vous.<\/p>\n<p>Nous esp\u00e9rons que cela a \u00e9t\u00e9 utile d&rsquo;une certaine mani\u00e8re.<\/p>\n<p>Merci pour la lecture!<\/p>\n<p>Source photo: <a href=\"http:\/\/www.tyseo.net\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">http:\/\/www.tyseo.net<\/a><\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wpdatatables.com\" class=\"external external_icon\">wpdatatables.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cr\u00e9er un syst\u00e8me CRUD dans WordPress peut \u00eatre d\u00e9licat. Dans cet article, nous verrons la d\u00e9finition d&rsquo;un syst\u00e8me CRUD et \u00e0 travers diff\u00e9rentes mani\u00e8res comment le faire.<\/p>\n","protected":false},"author":1,"featured_media":205613,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[811,841,862],"tags":[1167],"class_list":["post-226059","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-plugins-2","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/226059","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=226059"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/226059\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/205613"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=226059"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=226059"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=226059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}