{"id":64696,"date":"2022-12-16T14:12:07","date_gmt":"2022-12-16T13:12:07","guid":{"rendered":"https:\/\/kinsta.com\/fr\/?p=64696&#038;preview=true&#038;preview_id=64696"},"modified":"2024-10-04T12:21:13","modified_gmt":"2024-10-04T11:21:13","slug":"routes-laravel","status":"publish","type":"post","link":"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/","title":{"rendered":"Ma\u00eetriser les routes de Laravel"},"content":{"rendered":"<p>Lorsqu&rsquo;il s&rsquo;agit du backend, les d\u00e9veloppeurs rencontrent \u00e9ventuellement des routes. Les routes peuvent \u00eatre consid\u00e9r\u00e9es comme l&rsquo;\u00e9pine dorsale du backend puisque chaque requ\u00eate que le serveur re\u00e7oit est redirig\u00e9e vers un contr\u00f4leur par le biais d&rsquo;une liste de routage qui fait correspondre les demandes aux contr\u00f4leurs ou aux actions.<\/p>\n<p><a href=\"https:\/\/kinsta.com\/fr\/blog\/qu-est-ce-que-laravel\/\">Laravel<\/a> nous cache de nombreux d\u00e9tails d&rsquo;impl\u00e9mentation et est livr\u00e9 avec beaucoup de sucre syntaxique pour aider les d\u00e9veloppeurs, nouveaux ou exp\u00e9riment\u00e9s, \u00e0 d\u00e9velopper leurs applications web.<\/p>\n<p>Voyons de plus pr\u00e8s comment g\u00e9rer les routes dans Laravel.<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc><\/p>\n<h2>Backend Routing et Cross-Site Scripting dans Laravel<\/h2>\n<p>Sur un serveur, il existe des routes publiques et priv\u00e9es. Les routes publiques peuvent \u00eatre une source d&rsquo;inqui\u00e9tude en raison de la possibilit\u00e9 de cross-site scripting (XSS), un type d&rsquo;<a href=\"https:\/\/kinsta.com\/fr\/blog\/injections-sql\/\">attaque par injection<\/a> qui peut vous rendre, vous et vos utilisateurs, <a href=\"https:\/\/kinsta.com\/fr\/blog\/types-de-logiciels-malveillants\/\">vuln\u00e9rables aux acteurs malveillants<\/a>.<\/p>\n<p>Le probl\u00e8me est qu&rsquo;un utilisateur peut \u00eatre redirig\u00e9 d&rsquo;une route qui ne n\u00e9cessite pas de jeton de session vers une route qui en n\u00e9cessite un &#8211; et il aura toujours acc\u00e8s sans le jeton.<\/p>\n\n<p>La fa\u00e7on la plus simple de r\u00e9soudre ce probl\u00e8me est d&rsquo;appliquer un nouvel en-t\u00eate HTTP, en ajoutant \u00ab referrer \u00bb \u00e0 l&rsquo;itin\u00e9raire pour att\u00e9nuer ce sc\u00e9nario :<\/p>\n<pre><code class=\"language-php\">'main' =&gt; [\n  'path' =&gt; '\/main',\n  'referrer' =&gt; 'required,refresh-empty',\n  'target' =&gt; ControllerDashboardController::class . '::mainAction'\n]<\/code><\/pre>\n<h2>Routage de base de Laravel<\/h2>\n<p>Dans <a href=\"https:\/\/kinsta.com\/fr\/blog\/laravel-9\/\">Laravel<\/a>, les routes permettent aux utilisateurs d&rsquo;acheminer la req\u00eate appropri\u00e9e vers le contr\u00f4leur souhait\u00e9. La route Laravel la plus basique accepte un Uniform Asset Identifier (votre chemin de route) et une fermeture qui peut \u00eatre \u00e0 la fois une fonction ou une classe.<\/p>\n<p>Dans Laravel, les routes sont cr\u00e9\u00e9es dans les fichiers <strong>web.php<\/strong> et <strong>api.php<\/strong>. Laravel est livr\u00e9 avec deux routes par d\u00e9faut : une pour le WEB et une pour l&rsquo;API.<\/p>\n<p>Ces routes r\u00e9sident dans le dossier <strong>routes\/<\/strong>, mais elles sont charg\u00e9es dans le fichier <strong>Providers\/RouteServiceProvider.php<\/strong>.<\/p>\n<figure style=\"width: 875px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/laravel-route-provider-default.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/laravel-route-provider-default.png\" alt=\"\u00c9tat par d\u00e9faut du fournisseur de services de routes de Laravel.\" width=\"875\" height=\"628\"><\/a><figcaption class=\"wp-caption-text\">\u00c9tat par d\u00e9faut du fournisseur de services de routes de Laravel.<\/figcaption><\/figure>\n<p>Au lieu de proc\u00e9der ainsi, nous pouvons charger les routes directement dans <strong>RouteServiceProvider.php<\/strong>, en sautant compl\u00e8tement le dossier <strong>routes\/<\/strong>.<\/p>\n<figure style=\"width: 875px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/loading-laravel-routes-directly.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/loading-laravel-routes-directly.png\" alt=\"Chargement des routes Laravel directement dans le fournisseur.\" width=\"875\" height=\"413\"><\/a><figcaption class=\"wp-caption-text\">Chargement des routes Laravel directement dans le fournisseur.<\/figcaption><\/figure>\n<h3>Redirections<\/h3>\n<p>Lorsque nous d\u00e9finissons une route, nous souhaitons g\u00e9n\u00e9ralement rediriger l&rsquo;utilisateur qui y acc\u00e8de, et les raisons en sont tr\u00e8s vari\u00e9es. Cela peut \u00eatre parce qu&rsquo;il s&rsquo;agit d&rsquo;une route obsol\u00e8te et que nous avons chang\u00e9 le backend ou le serveur, ou parce que nous voulons installer l&rsquo;<a href=\"https:\/\/kinsta.com\/fr\/docs\/reglages-utilisateur\/connexion\/#enable-twofactor-authentication-2fa\">authentification \u00e0 deux facteurs (2FA)<\/a>, etc.<\/p>\n<p>Laravel dispose d&rsquo;un moyen facile de le faire. Gr\u00e2ce \u00e0 la simplicit\u00e9 du framework, nous pouvons utiliser la m\u00e9thode de redirection sur la fa\u00e7ade Route, qui accepte la route d&rsquo;entr\u00e9e et la route vers laquelle \u00eatre redirig\u00e9.<\/p>\n<p>En option, nous pouvons donner le code d&rsquo;\u00e9tat pour la redirection comme troisi\u00e8me param\u00e8tre. La m\u00e9thode <code>permanentRedirect<\/code> fera la m\u00eame chose que la m\u00e9thode <code>redirect<\/code>, sauf qu&rsquo;elle renverra toujours un <a href=\"https:\/\/kinsta.com\/fr\/blog\/codes-statut-http\/\">code d&rsquo;\u00e9tat 301<\/a> :<\/p>\n<pre><code class=\"language-php\">\/\/ Simple redirect\nRoute::redirect(\"\/class\", \"\/myClass\");\n\n\/\/ Redirect with custom status\nRoute::redirect(\"\/home\", \"\/office\", 305);\n\n\/\/ Route redirect with 301 status code\nRoute::permanentRedirect(\"\/home\", \"office\");<\/code><\/pre>\n<p>A l&rsquo;int\u00e9rieur des routes de redirection, il nous est interdit d&rsquo;utiliser les mots-cl\u00e9s \u00ab destination \u00bb et \u00ab status \u00bb comme param\u00e8tres car ils sont r\u00e9serv\u00e9s par Laravel.<\/p>\n<pre><code class=\"language-php\">\/\/ Illegal to use\nRoute::redirect(\"\/home\", \"\/office\/{status}\");<\/code><\/pre>\n<h3>Vues<\/h3>\n<p>Les vues sont les fichiers .<strong>blade.php<\/strong> que nous utilisons pour rendre le frontend de notre application Laravel. Elles utilisent le moteur de templating blade, et c&rsquo;est la mani\u00e8re par d\u00e9faut de construire une application full-stack en utilisant uniquement Laravel.<\/p>\n<p>Si nous voulons que notre route renvoie une vue, nous pouvons simplement utiliser la m\u00e9thode view sur la fa\u00e7ade Route. Elle accepte un param\u00e8tre de route, un nom de vue et un tableau facultatif de valeurs \u00e0 transmettre \u00e0 la vue.<\/p>\n<pre><code class=\"language-php\">\/\/ When the user accesses my-domain.com\/homepage\n\/\/ the homepage.blade.php file will be rendered\nRoute::view(\"\/homepage\", \"homepage\");<\/code><\/pre>\n<p>Supposons que notre vue veuille dire \u00ab Hello, <code>{name}<\/code>\u00bb en passant un tableau optionnel avec ce param\u00e8tre. Nous pouvons le faire avec le code suivant (si le param\u00e8tre manquant est requis dans la vue, la requ\u00eate \u00e9chouera et lancera une erreur) :<\/p>\n<pre><code class=\"language-php\">Route::view('\/homepage', 'homepage', ['name' =&gt; \"Kinsta\"]);<\/code><\/pre>\n<h3>Liste de routes<\/h3>\n<p>Au fur et \u00e0 mesure que la taille de votre application augmente, le nombre de requ\u00eates qui doivent \u00eatre achemin\u00e9es augmente \u00e9galement. Et avec un grand volume d&rsquo;informations peut venir une grande confusion.<\/p>\n<p>C&rsquo;est l\u00e0 que le site <code>artisan route:list command<\/code> peut nous aider. Il fournit une vue d&rsquo;ensemble de toutes les routes qui sont d\u00e9finies dans l&rsquo;application, leurs middlewares et leurs contr\u00f4leurs.<\/p>\n<pre><code class=\"language-php\">php artisan route:list<\/code><\/pre>\n<p>Il affichera une liste de toutes les routes sans les middlewares. Pour cela, nous devons utiliser le drapeau <code>-v<\/code>:<\/p>\n<pre><code class=\"language-php\"><code>php artisan route:list -v<\/code><\/code><\/pre>\n<p>Dans une situation o\u00f9 vous utilisez une conception pilot\u00e9e par le domaine o\u00f9 vos routes ont des noms sp\u00e9cifiques dans leurs chemins, vous pouvez utiliser les capacit\u00e9s de filtrage de cette commande comme suit :<\/p>\n<pre><code class=\"language-php\">php artisan route:list \u2013path=api\/account<\/code><\/pre>\n<p>Ceci montrera seulement les routes qui commencent par <strong>api\/account<\/strong>.<\/p>\n<p>D&rsquo;autre part, nous pouvons demander \u00e0 Laravel d&rsquo;exclure ou d&rsquo;inclure des routes d\u00e9finies par des tiers en utilisant les options <code>\u2013except-vendor<\/code> ou <code>\u2013only-vendor<\/code>.<\/p>\n<h2>Param\u00e8tres des routes<\/h2>\n<p>Parfois, vous pouvez avoir besoin de capturer des segments de l&rsquo;URI avec la route, comme un ID utilisateur ou un jeton. Nous pouvons le faire en d\u00e9finissant un param\u00e8tre de route, qui est toujours encadr\u00e9 par des accolades (<code>{}<\/code>) et ne doit comporter que des caract\u00e8res alphab\u00e9tiques.<\/p>\n<p>Si nos routes ont des d\u00e9pendances dans leurs callbacks, le conteneur de services Laravel les injectera automatiquement :<\/p>\n<pre><code class=\"language-php\">use IlluminateHttpRequest;\nuse Controllers\/DashboardController;\nRoute::post('\/dashboard\/{id}, function (Request $request, string $id) {\n  return 'User:' . $id;\n}\nRoute::get('\/dashboard\/{id}, DashboardController.php);<\/code><\/pre>\n<h3>Param\u00e8tres n\u00e9cessaires<\/h3>\n<p>Les param\u00e8tres n\u00e9cessaires de Laravel sont des param\u00e8tres dans les routes que nous ne sommes pas autoris\u00e9s \u00e0 ignorer lorsque nous effectuons un appel. Sinon, une erreur sera d\u00e9clench\u00e9e :<\/p>\n<pre><code class=\"language-php\">Route::post(\"\/gdpr\/{userId}\", GetGdprDataController.php\");<\/code><\/pre>\n<p>Maintenant, dans le <strong>GetGdprDataController.php<\/strong>, nous aurons un acc\u00e8s direct au param\u00e8tre<strong> $userId<\/strong>.<\/p>\n<pre><code class=\"language-php\">public function __invoke(int $userId) {\n  \/\/ Use the userId that we received\u2026\n}<\/code><\/pre>\n<p>Une route peut prendre un nombre quelconque de param\u00e8tres. Ils sont inject\u00e9s dans les callbacks\/contr\u00f4leurs de la route en fonction de l&rsquo;ordre dans lequel ils sont list\u00e9s :<\/p>\n<pre><code class=\"language-php\"> \/\/ api.php\nRoute::post('\/gdpr\/{userId}\/{userName}\/{userAge}', GetGdprDataController.php);\n\/\/ GetGdprDataController.php\npublic function __invoke(int $userId, string $userName, int $userAge) {\n  \/\/ Use the parameters\u2026\n}<\/code><\/pre>\n<h3>Param\u00e8tres facultatifs<\/h3>\n<p>Dans une situation o\u00f9 nous voulons faire quelque chose sur une route lorsque seul un param\u00e8tre est pr\u00e9sent et rien d&rsquo;autre, le tout sans affecter l&rsquo;application enti\u00e8re, nous pouvons ajouter un param\u00e8tre optionnel. Ces param\u00e8tres facultatifs sont signal\u00e9s par l&rsquo;adresse <code>?<\/code> qui leur est accol\u00e9e :<\/p>\n<pre><code class=\"language-php\"> Route::get('\/user\/{age?}', function (int $age = null) {\n  if (!$age) Log::info(\"User doesn't have age set\");\n  else Log::info(\"User's age is \" . $age);\n}\nRoute::get('\/user\/{name?}', function (int $name = \"John Doe\") {\n  Log::info(\"User's name is \" . $name);\n}<\/code><\/pre>\n<h3>Route Wildcard<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/fr\/blog\/laravel-9\/\">Laravel<\/a> nous fournit un moyen de filtrer ce \u00e0 quoi doivent ressembler nos param\u00e8tres facultatifs ou n\u00e9cessaires.<\/p>\n<p>Disons que nous voulons une cha\u00eene de caract\u00e8res d&rsquo;un ID utilisateur. Nous pouvons le valider ainsi au niveau de la route en utilisant la m\u00e9thode <code>where<\/code>.<\/p>\n<p>La m\u00e9thode <code>where<\/code> accepte le nom du param\u00e8tre et la r\u00e8gle regex qui sera appliqu\u00e9e \u00e0 la validation. Par d\u00e9faut, elle prend le premier param\u00e8tre, mais si nous en avons plusieurs, nous pouvons passer un tableau avec le nom du param\u00e8tre comme cl\u00e9 et la r\u00e8gle comme valeur, et Laravel les analysera tous pour nous :<\/p>\n<pre><code class=\"language-php\">Route::get('\/user\/{age}', function (int $age) {\n  \/\/\n}-&gt;where('age', '[0-9]+');\nRoute::get('\/user\/{age}', function (int $age) {\n  \/\/\n}-&gt;where('[0-9]+');\nRoute::get('\/user\/{age}\/{name}', function (int $age, string $name) {\n  \/\/\n}-&gt;where(['age' =&gt; '[0-9]+', 'name' =&gt; '[a-z][A-z]+');<\/code><\/pre>\n<p>Nous pouvons aller plus loin et appliquer la validation \u00e0 toutes les routes de notre application en utilisant la m\u00e9thode <code>pattern<\/code> sur la fa\u00e7ade <code>Route<\/code>:<\/p>\n<pre><code class=\"language-php\"> Route::pattern('id', '[0-9]+');<\/code><\/pre>\n<p>Cela validera chaque param\u00e8tre de <code>id<\/code> avec cette expression regex. Et une fois que nous l&rsquo;avons d\u00e9finie, elle sera automatiquement appliqu\u00e9e \u00e0 toutes les routes utilisant ce nom de param\u00e8tre.<\/p>\n<p>Comme nous pouvons le voir, Laravel utilise le caract\u00e8re <code>\/<\/code> comme s\u00e9parateur dans le chemin. Si nous voulons l&rsquo;utiliser dans le chemin, nous devons l&rsquo;autoriser explicitement \u00e0 faire partie de notre espace r\u00e9serv\u00e9 en utilisant une regex <code>where<\/code>.<\/p>\n<pre><code class=\"language-php\"> Route::get('\/find\/{query}', function ($query) {\n  \/\/\n})-&gt;where('query', , '.*');<\/code><\/pre>\n<p>Le seul inconv\u00e9nient est qu&rsquo;il ne sera pris en charge que dans le dernier segment du chemin.<\/p>\n<h2>Routes nomm\u00e9es<\/h2>\n<p>Comme son nom l&rsquo;indique, nous pouvons nommer les routes, ce qui permet de <a href=\"https:\/\/kinsta.com\/fr\/blog\/description-url\/\">g\u00e9n\u00e9rer des URL<\/a> ou des redirections pour des routes sp\u00e9cifiques.<\/p>\n<h3>Comment cr\u00e9er des routes nomm\u00e9es<\/h3>\n<p>Une fa\u00e7on simple de cr\u00e9er une route nomm\u00e9e est fournie par la m\u00e9thode <code>name<\/code> encha\u00een\u00e9e sur la fa\u00e7ade <code>Route<\/code>. Le nom de chaque route doit \u00eatre unique :<\/p>\n<pre><code class=\"language-php\"> Route::get('\/', function () {\n})-&gt;name(\"homepage\");<\/code><\/pre>\n<h2>Groupes de routes<\/h2>\n<p>Les groupes de routes vous permettent de partager des attributs de route comme les intergiciels sur un grand nombre de routes sans avoir \u00e0 les red\u00e9finir sur chaque route.<\/p>\n<h3>Middleware<\/h3>\n<p>L&rsquo;attribution d&rsquo;un intergiciel \u00e0 toutes les routes que nous avons nous permet de les combiner dans un groupe, d&rsquo;abord en utilisant la m\u00e9thode <code>group<\/code>. Une chose \u00e0 consid\u00e9rer est que les intergiciels sont ex\u00e9cut\u00e9s dans l&rsquo;ordre dans lequel ils sont appliqu\u00e9s au groupe :<\/p>\n<pre><code class=\"language-php\"> Route:middleware(['AuthMiddleware', 'SessionMiddleware'])-&gt;group(function () {\n  Route::get('\/', function() {} );\n  Route::post('\/upload-picture', function () {} );\n});<\/code><\/pre>\n<h3>Contr\u00f4leurs<\/h3>\n<p>Lorsqu&rsquo;un groupe utilise le m\u00eame contr\u00f4leur, nous pouvons utiliser la m\u00e9thode <code>controller<\/code> pour d\u00e9finir le contr\u00f4leur commun \u00e0 toutes les routes de ce groupe. Nous devons maintenant sp\u00e9cifier la m\u00e9thode que l&rsquo;itin\u00e9raire appellera.<\/p>\n<pre><code class=\"language-php\"> Route::controller(UserController::class)-&gt;group(function () {\n  Route::get('\/orders\/{userId}', 'getOrders');\n  Route::post('\/order\/{id}', 'postOrder');\n});<\/code><\/pre>\n<h3>Routage de sous-domaines<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/fr\/blog\/sous-domaine-wordpress\/\">Un nom de sous-domaine<\/a> est un \u00e9l\u00e9ment d&rsquo;information suppl\u00e9mentaire ajout\u00e9 au d\u00e9but du nom de domaine d&rsquo;un site web. Cela permet aux sites web de s\u00e9parer et d&rsquo;organiser leur contenu pour des fonctions sp\u00e9cifiques, comme les boutiques en ligne, les blogs, les pr\u00e9sentations, etc. du reste du site web.<\/p>\n<p>Nos routes peuvent \u00eatre utilis\u00e9es pour g\u00e9rer le routage des sous-domaines. Nous pouvons attraper le domaine et une partie du sous-domaine pour les utiliser dans notre contr\u00f4leur et notre route. Avec l&rsquo;aide de la m\u00e9thode <code>domain<\/code> sur la fa\u00e7ade <code>Route<\/code>, nous pouvons regrouper nos routes sous un seul domaine :<\/p>\n<pre><code class=\"language-php\"> Route::domain('{store}.enterprise.com')-&gt;group(function() {\n  Route::get('order\/{id}', function (Account $account, string $id) {\n    \/\/ Your Code\n  }\n});<\/code><\/pre>\n<h3>Pr\u00e9fixes et pr\u00e9fixes de nom<\/h3>\n<p>Lorsque nous avons un groupe de routes, au lieu de les modifier une par une, nous pouvons utiliser les utilitaires suppl\u00e9mentaires que Laravel fournit, tels que <code>prefix<\/code> et <code>name<\/code> sur la fa\u00e7ade <code>Route<\/code>.<\/p>\n<p>La m\u00e9thode <code>prefix<\/code> peut \u00eatre utilis\u00e9e pour pr\u00e9fixer chaque route du groupe avec un URI donn\u00e9, et la m\u00e9thode <code>name<\/code> peut \u00eatre utilis\u00e9e pour pr\u00e9fixer chaque nom de route avec une cha\u00eene donn\u00e9e.<\/p>\n<p>Cela nous permet de cr\u00e9er de nouvelles choses comme des routes d&rsquo;administration sans avoir \u00e0 modifier chaque nom ou pr\u00e9fixe pour les identifier :<\/p>\n<pre><code class=\"language-php\"> Route::name('admin.\")-&gt;group(function() {\n  Route::prefix(\"admin\")-&gt;group(function() {\n    Route::get('\/get')-&gt;name('get');\n    Route::put('\/put')-&gt;name(put');\n    Route::post('\/post')-&gt;name('post');\n  });\n});<\/code><\/pre>\n<p>Maintenant, les URI de ces routes seront <code>admin\/get<\/code>, <code>admin\/put<\/code>, <code>admin\/post<\/code>, et les noms <code>admin.get<\/code>, <code>admin.put<\/code>, et <code>admin.post<\/code>.<\/p>\n<h2>Mise en cache des routes<\/h2>\n<p>Lors du d\u00e9ploiement de l&rsquo;application sur les serveurs de production, un bon <a href=\"https:\/\/kinsta.com\/fr\/blog\/developpeur-laravel\/\">d\u00e9veloppeur Laravel<\/a> tirera parti du cache des routes de Laravel.<\/p>\n<h3>Qu&rsquo;est-ce que la mise en cache des routes ?<\/h3>\n<p>La mise en cache des routes diminue le temps n\u00e9cessaire \u00e0 l&rsquo;enregistrement de toutes les routes de l&rsquo;application.<\/p>\n<p>En ex\u00e9cutant <code>php artisan route:cache<\/code> une instance de <code>Illuminate\/Routing\/RouteCollection<\/code> est g\u00e9n\u00e9r\u00e9e, et apr\u00e8s avoir \u00e9t\u00e9 encod\u00e9e, la sortie s\u00e9rialis\u00e9e est \u00e9crite dans <code>bootstrap\/cache.routes.php<\/code>.<\/p>\n<p>D\u00e9sormais, toute autre requ\u00eate <a href=\"https:\/\/kinsta.com\/fr\/blog\/laravel-caching\/\">chargera ce fichier de cache<\/a> s&rsquo;il existe. Par cons\u00e9quent, notre application ne doit plus analyser et convertir les entr\u00e9es du fichier de route en objets <code>Illuminate\/Routing\/Route<\/code> dans <code>Illuminate\/Routing\/RouteCollection<\/code>.<\/p>\n<h3>Pourquoi il est important d&rsquo;utiliser la mise en cache des routes<\/h3>\n<p>En n&rsquo;utilisant pas la fonction de mise en cache des routes fournie par Laravel, votre application risque de fonctionner plus lentement qu&rsquo;elle ne le pourrait, ce qui pourrait \u00e0 son tour diminuer les ventes, la r\u00e9tention des utilisateurs et la <a href=\"https:\/\/kinsta.com\/fr\/blog\/badges-de-confiance\/\">confiance dans votre marque<\/a>.<\/p>\n<p>En fonction de l&rsquo;\u00e9chelle de votre projet et du nombre de routes, l&rsquo;ex\u00e9cution d&rsquo;une simple commande de mise en cache des routes peut <a href=\"https:\/\/kinsta.com\/fr\/blog\/test-vitesse-site-web\/\">acc\u00e9l\u00e9rer votre application<\/a> de 130 % \u00e0 500 % &#8211; un gain consid\u00e9rable pour un effort quasi-nul.<\/p>\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>Le routage est l&rsquo;\u00e9pine dorsale du d\u00e9veloppement backend. Le framework Laravel excelle dans ce domaine en fournissant une mani\u00e8re verbeuse de d\u00e9finir et de g\u00e9rer les routes.<\/p>\n<p>Le d\u00e9veloppement peut en effet \u00eatre accessible \u00e0 tous et contribuer \u00e0 <a href=\"https:\/\/kinsta.com\/fr\/blog\/methodes-optimisation-performances-laravel\/\">acc\u00e9l\u00e9rer une application<\/a> du simple fait qu&rsquo;elle est construite en Laravel.<\/p>\n<p>Quels autres trucs et astuces avez-vous rencontr\u00e9s concernant les routes Laravel ? Faites-nous en part dans la section des commentaires !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lorsqu&rsquo;il s&rsquo;agit du backend, les d\u00e9veloppeurs rencontrent \u00e9ventuellement des routes. Les routes peuvent \u00eatre consid\u00e9r\u00e9es comme l&rsquo;\u00e9pine dorsale du backend puisque chaque requ\u00eate que le serveur &#8230;<\/p>\n","protected":false},"author":267,"featured_media":64697,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[433,903,791],"topic":[986],"class_list":["post-64696","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-laravel","tag-laravel-routes","tag-php-frameworks","topic-laravel"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ma\u00eetriser les routes de Laravel<\/title>\n<meta name=\"description\" content=\"Le routage est l&#039;un des aspects les plus importants de toute application backend. Utilisez ce guide pour acqu\u00e9rir une bonne maitrise des routes et du routage de Laravel.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ma\u00eetriser les routes de Laravel\" \/>\n<meta property=\"og:description\" content=\"Le routage est l&#039;un des aspects les plus importants de toute application backend. Utilisez ce guide pour acqu\u00e9rir une bonne maitrise des routes et du routage de Laravel.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstafrance\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-16T13:12:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-04T11:21:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/12\/laravel-routes.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Coman Cosmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Le routage est l&#039;un des aspects les plus importants de toute application backend. Utilisez ce guide pour acqu\u00e9rir une bonne maitrise des routes et du routage de Laravel.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/12\/laravel-routes.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Coman Cosmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/\"},\"author\":{\"name\":\"Coman Cosmin\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/aa307e51da3929c7aead1f4b4439f3da\"},\"headline\":\"Ma\u00eetriser les routes de Laravel\",\"datePublished\":\"2022-12-16T13:12:07+00:00\",\"dateModified\":\"2024-10-04T11:21:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/\"},\"wordCount\":2066,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/12\/laravel-routes.jpg\",\"keywords\":[\"laravel\",\"laravel routes\",\"php frameworks\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/\",\"name\":\"Ma\u00eetriser les routes de Laravel\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/12\/laravel-routes.jpg\",\"datePublished\":\"2022-12-16T13:12:07+00:00\",\"dateModified\":\"2024-10-04T11:21:13+00:00\",\"description\":\"Le routage est l'un des aspects les plus importants de toute application backend. Utilisez ce guide pour acqu\u00e9rir une bonne maitrise des routes et du routage de Laravel.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/12\/laravel-routes.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/12\/laravel-routes.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinsta.com\/fr\/sujets\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Ma\u00eetriser les routes de Laravel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/fr\/#website\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstafrance\/\",\"https:\/\/x.com\/kinsta_fr\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/aa307e51da3929c7aead1f4b4439f3da\",\"name\":\"Coman Cosmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ede71ae86b38c64bcf00417fd17a686b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ede71ae86b38c64bcf00417fd17a686b?s=96&d=mm&r=g\",\"caption\":\"Coman Cosmin\"},\"description\":\"Cosmin Coman is a technology writer and developer with over 3 years of experience. Apart from writing for Kinsta, he has assisted in research at nuclear physics facilities and universities. Tech-savvy and integrated into the community, he always comes up with innovative solutions.\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/author\/comancosmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ma\u00eetriser les routes de Laravel","description":"Le routage est l'un des aspects les plus importants de toute application backend. Utilisez ce guide pour acqu\u00e9rir une bonne maitrise des routes et du routage de Laravel.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/","og_locale":"fr_FR","og_type":"article","og_title":"Ma\u00eetriser les routes de Laravel","og_description":"Le routage est l'un des aspects les plus importants de toute application backend. Utilisez ce guide pour acqu\u00e9rir une bonne maitrise des routes et du routage de Laravel.","og_url":"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2022-12-16T13:12:07+00:00","article_modified_time":"2024-10-04T11:21:13+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/12\/laravel-routes.jpg","type":"image\/jpeg"}],"author":"Coman Cosmin","twitter_card":"summary_large_image","twitter_description":"Le routage est l'un des aspects les plus importants de toute application backend. Utilisez ce guide pour acqu\u00e9rir une bonne maitrise des routes et du routage de Laravel.","twitter_image":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/12\/laravel-routes.jpg","twitter_creator":"@kinsta_fr","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Coman Cosmin","Dur\u00e9e de lecture estim\u00e9e":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/"},"author":{"name":"Coman Cosmin","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/aa307e51da3929c7aead1f4b4439f3da"},"headline":"Ma\u00eetriser les routes de Laravel","datePublished":"2022-12-16T13:12:07+00:00","dateModified":"2024-10-04T11:21:13+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/"},"wordCount":2066,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/12\/laravel-routes.jpg","keywords":["laravel","laravel routes","php frameworks"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/","url":"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/","name":"Ma\u00eetriser les routes de Laravel","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/12\/laravel-routes.jpg","datePublished":"2022-12-16T13:12:07+00:00","dateModified":"2024-10-04T11:21:13+00:00","description":"Le routage est l'un des aspects les plus importants de toute application backend. Utilisez ce guide pour acqu\u00e9rir une bonne maitrise des routes et du routage de Laravel.","breadcrumb":{"@id":"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/#primaryimage","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/12\/laravel-routes.jpg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/12\/laravel-routes.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/fr\/blog\/routes-laravel\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinsta.com\/fr\/sujets\/laravel\/"},{"@type":"ListItem","position":3,"name":"Ma\u00eetriser les routes de Laravel"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/fr\/#website","url":"https:\/\/kinsta.com\/fr\/","name":"Kinsta\u00ae","description":"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es","publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/fr\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstafrance\/","https:\/\/x.com\/kinsta_fr","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/aa307e51da3929c7aead1f4b4439f3da","name":"Coman Cosmin","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ede71ae86b38c64bcf00417fd17a686b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ede71ae86b38c64bcf00417fd17a686b?s=96&d=mm&r=g","caption":"Coman Cosmin"},"description":"Cosmin Coman is a technology writer and developer with over 3 years of experience. Apart from writing for Kinsta, he has assisted in research at nuclear physics facilities and universities. Tech-savvy and integrated into the community, he always comes up with innovative solutions.","url":"https:\/\/kinsta.com\/fr\/blog\/author\/comancosmin\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/64696","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/users\/267"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/comments?post=64696"}],"version-history":[{"count":7,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/64696\/revisions"}],"predecessor-version":[{"id":64731,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/64696\/revisions\/64731"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/64696\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/64696\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/64696\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/64696\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/64696\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/64696\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/64696\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/64696\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/64696\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/64696\/translations\/dk"},{"href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/64696\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media\/64697"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media?parent=64696"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/tags?post=64696"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/topic?post=64696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}