{"id":23162,"date":"2024-06-10T15:43:32","date_gmt":"2024-06-10T13:43:32","guid":{"rendered":"https:\/\/monraspberry.com\/?p=23162"},"modified":"2024-07-02T14:59:39","modified_gmt":"2024-07-02T12:59:39","slug":"creer-un-systeme-de-vote-electronique-avec-raspberry-pi","status":"publish","type":"post","link":"https:\/\/monraspberry.com\/es\/creer-un-systeme-de-vote-electronique-avec-raspberry-pi\/","title":{"rendered":"Cr\u00e9er un syst\u00e8me de vote \u00e9lectronique avec Raspberry Pi"},"content":{"rendered":"<h3 class=\"wp-block-heading\">Introducci\u00f3n<\/h3>\n\n\n\n<p>Dans cet article, nous allons cr\u00e9er un syst\u00e8me de vote \u00e9lectronique en utilisant un Raspberry Pi et Raspbian. Ce projet est id\u00e9al pour les \u00e9coles, les petites organisations ou tout environnement n\u00e9cessitant un syst\u00e8me de vote simple, fiable et s\u00e9curis\u00e9.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Mat\u00e9riel N\u00e9cessaire<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A <a href=\"https:\/\/monraspberry.com\/es\/cat\/frambuesa-pi-3-pi-2\/\" data-type=\"link\" data-id=\"https:\/\/monraspberry.com\/cat\/raspberry-pi-3-pi-2\/\">Raspberry Pi<\/a> (mod\u00e8le 3 ou sup\u00e9rieur recommand\u00e9)<\/li>\n\n\n\n<li>Une carte microSD (au moins 8 Go) avec Raspbian install\u00e9<\/li>\n\n\n\n<li>Un \u00e9cran et un clavier pour le Raspberry Pi<\/li>\n\n\n\n<li>Une connexion Internet pour t\u00e9l\u00e9charger les paquets n\u00e9cessaires<\/li>\n\n\n\n<li>Un lecteur de carte RFID et des cartes RFID (facultatif mais recommand\u00e9 pour l&#8217;identification des \u00e9lecteurs)<\/li>\n\n\n\n<li>C\u00e2bles et alimentation pour le Raspberry Pi<\/li>\n\n\n\n<li>Breadboard et c\u00e2blage pour les connexions (si utilisation de p\u00e9riph\u00e9riques suppl\u00e9mentaires)<\/li>\n\n\n\n<li>Un bo\u00eetier pour le Raspberry Pi (facultatif mais recommand\u00e9 pour la protection)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Installation de Raspbian<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>T\u00e9l\u00e9chargez la derni\u00e8re version de Raspbian depuis le site officiel de Raspberry Pi : <a href=\"https:\/\/www.raspberrypi.org\/downloads\/raspbian\/\" rel=\"nofollow noopener\" target=\"_blank\">Raspbian Download<\/a>.<\/li>\n\n\n\n<li>Utilisez un outil comme Balena Etcher pour flasher l&#8217;image de Raspbian sur votre carte microSD.<\/li>\n\n\n\n<li>Ins\u00e9rez la carte microSD dans le Raspberry Pi, connectez l&#8217;\u00e9cran, le clavier, et l&#8217;alimentation, puis d\u00e9marrez le Raspberry Pi.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Configuration Initiale<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Lancez le terminal et mettez \u00e0 jour votre syst\u00e8me : <code>sudo apt update sudo apt upgrade<\/code><\/li>\n\n\n\n<li>Installez les paquets n\u00e9cessaires pour le d\u00e9veloppement : <code>sudo apt install python3 python3-pip python3-gpiozero<\/code><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Configuration du Serveur Web<\/h3>\n\n\n\n<p>Nous allons utiliser Flask pour cr\u00e9er une application web qui servira d&#8217;interface pour notre syst\u00e8me de vote.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Pourquoi Flask ?<\/h4>\n\n\n\n<p>Flask est un micro-framework web en Python qui est l\u00e9ger, facile \u00e0 utiliser et parfait pour les petites applications comme notre syst\u00e8me de vote. Il nous permet de cr\u00e9er des routes simples et de rendre des templates HTML, ce qui est exactement ce dont nous avons besoin.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Installation de Flask<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Installez Flask : <code>pip3 install flask<\/code><\/li>\n\n\n\n<li>Cr\u00e9ez un dossier pour votre projet et naviguez dedans : <code>mkdir voting_system cd voting_system<\/code><\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Cr\u00e9ation de l&#8217;Application Flask<\/h4>\n\n\n\n<p>Cr\u00e9ez un fichier <code>app.py<\/code> avec le contenu suivant :<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nfrom flask import Flask, render_template, request, redirect, url_for\n\napp = Flask(__name__)\n\n# Dictionnaire pour stocker les \u00e9lecteurs et leurs votes\nvoters = {}\n# Dictionnaire pour stocker les votes par candidat\nvotes = {&quot;Candidate1&quot;: 0, &quot;Candidate2&quot;: 0, &quot;Candidate3&quot;: 0}\n\n@app.route(&#039;\/&#039;)\ndef index():\n    # Rendre le template index.html avec les votes actuels\n    return render_template(&#039;index.html&#039;, votes=votes)\n\n@app.route(&#039;\/vote&#039;, methods=&#x5B;&#039;POST&#039;])\ndef vote():\n    # R\u00e9cup\u00e9rer l&#039;ID de l&#039;\u00e9lecteur et le candidat choisi depuis le formulaire\n    voter_id = request.form&#x5B;&#039;voter_id&#039;]\n    candidate = request.form&#x5B;&#039;candidate&#039;]\n\n    # V\u00e9rifier si l&#039;\u00e9lecteur a d\u00e9j\u00e0 vot\u00e9\n    if voter_id in voters:\n        return &quot;Voter has already voted&quot;\n\n    # Enregistrer le vote\n    voters&#x5B;voter_id] = candidate\n    votes&#x5B;candidate] += 1\n\n    # Rediriger vers la page d&#039;accueil\n    return redirect(url_for(&#039;index&#039;))\n\nif __name__ == &#039;__main__&#039;:\n    app.run(host=&#039;0.0.0.0&#039;, port=5000)\n\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\">Explication du Code<\/h4>\n\n\n\n<p><strong>Importations et Configuration Initiale<\/strong>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nfrom flask import Flask, render_template, request, redirect, url_for\napp = Flask(__name__)\n\n<\/pre><\/div>\n\n\n<p>Ici, nous importons Flask et les fonctions n\u00e9cessaires. Nous cr\u00e9ons une instance de l&#8217;application Flask.<\/p>\n\n\n\n<p><strong>Stockage des Votes<\/strong>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nvoters = {}\nvotes = {&quot;Candidate1&quot;: 0, &quot;Candidate2&quot;: 0, &quot;Candidate3&quot;: 0}\n\n<\/pre><\/div>\n\n\n<p>Nous utilisons deux dictionnaires: <code>voters<\/code> pour enregistrer quels \u00e9lecteurs ont vot\u00e9 et <code>votes<\/code> pour compter les votes de chaque candidat.<\/p>\n\n\n\n<p><strong>Route de la Page d&#8217;Accueil<\/strong>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n@app.route(&#039;\/&#039;)\ndef index():\n    return render_template(&#039;index.html&#039;, votes=votes)\n\n<\/pre><\/div>\n\n\n<p>La fonction <code>index<\/code> rend la page d&#8217;accueil en passant les votes actuels au template.<\/p>\n\n\n\n<p><strong>Route pour le Vote<\/strong>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n@app.route(&#039;\/vote&#039;, methods=&#x5B;&#039;POST&#039;])\ndef vote():\n    voter_id = request.form&#x5B;&#039;voter_id&#039;]\n    candidate = request.form&#x5B;&#039;candidate&#039;]\n\n    if voter_id in voters:\n        return &quot;Voter has already voted&quot;\n\n    voters&#x5B;voter_id] = candidate\n    votes&#x5B;candidate] += 1\n\n    return redirect(url_for(&#039;index&#039;))\n\n<\/pre><\/div>\n\n\n<p>La fonction <code>vote<\/code> g\u00e8re les requ\u00eates POST. Elle r\u00e9cup\u00e8re l&#8217;ID de l&#8217;\u00e9lecteur et le candidat choisi, v\u00e9rifie si l&#8217;\u00e9lecteur a d\u00e9j\u00e0 vot\u00e9, enregistre le vote et redirige vers la page d&#8217;accueil.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Cr\u00e9ation du Template HTML<\/h4>\n\n\n\n<p>Cr\u00e9ez un dossier <code>templates<\/code> et \u00e0 l&#8217;int\u00e9rieur, cr\u00e9ez un fichier <code>index.html<\/code> :<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&amp;lt;!DOCTYPE html&gt;\n&amp;lt;html&gt;\n&amp;lt;head&gt;\n    &amp;lt;title&gt;Voting System&amp;lt;\/title&gt;\n&amp;lt;\/head&gt;\n&amp;lt;body&gt;\n    &amp;lt;h1&gt;Vote for Your Candidate&amp;lt;\/h1&gt;\n    &amp;lt;form action=&quot;\/vote&quot; method=&quot;post&quot;&gt;\n        &amp;lt;label for=&quot;voter_id&quot;&gt;Voter ID:&amp;lt;\/label&gt;\n        &amp;lt;input type=&quot;text&quot; id=&quot;voter_id&quot; name=&quot;voter_id&quot; required&gt;&amp;lt;br&gt;&amp;lt;br&gt;\n        &amp;lt;label for=&quot;candidate&quot;&gt;Choose a candidate:&amp;lt;\/label&gt;\n        &amp;lt;select id=&quot;candidate&quot; name=&quot;candidate&quot;&gt;\n            &amp;lt;option value=&quot;Candidate1&quot;&gt;Candidate1&amp;lt;\/option&gt;\n            &amp;lt;option value=&quot;Candidate2&quot;&gt;Candidate2&amp;lt;\/option&gt;\n            &amp;lt;option value=&quot;Candidate3&quot;&gt;Candidate3&amp;lt;\/option&gt;\n        &amp;lt;\/select&gt;&amp;lt;br&gt;&amp;lt;br&gt;\n        &amp;lt;input type=&quot;submit&quot; value=&quot;Vote&quot;&gt;\n    &amp;lt;\/form&gt;\n    &amp;lt;h2&gt;Current Votes&amp;lt;\/h2&gt;\n    &amp;lt;ul&gt;\n        {% for candidate, count in votes.items() %}\n            &amp;lt;li&gt;{{ candidate }}: {{ count }}&amp;lt;\/li&gt;\n        {% endfor %}\n    &amp;lt;\/ul&gt;\n&amp;lt;\/body&gt;\n&amp;lt;\/html&gt;\n\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\">Explication du Template<\/h4>\n\n\n\n<p><strong>Formulaire de Vote<\/strong>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&amp;lt;form action=&quot;\/vote&quot; method=&quot;post&quot;&gt;\n    &amp;lt;label for=&quot;voter_id&quot;&gt;Voter ID:&amp;lt;\/label&gt;\n    &amp;lt;input type=&quot;text&quot; id=&quot;voter_id&quot; name=&quot;voter_id&quot; required&gt;&amp;lt;br&gt;&amp;lt;br&gt;\n    &amp;lt;label for=&quot;candidate&quot;&gt;Choose a candidate:&amp;lt;\/label&gt;\n    &amp;lt;select id=&quot;candidate&quot; name=&quot;candidate&quot;&gt;\n        &amp;lt;option value=&quot;Candidate1&quot;&gt;Candidate1&amp;lt;\/option&gt;\n        &amp;lt;option value=&quot;Candidate2&quot;&gt;Candidate2&amp;lt;\/option&gt;\n        &amp;lt;option value=&quot;Candidate3&quot;&gt;Candidate3&amp;lt;\/option&gt;\n    &amp;lt;\/select&gt;&amp;lt;br&gt;&amp;lt;br&gt;\n    &amp;lt;input type=&quot;submit&quot; value=&quot;Vote&quot;&gt;\n&amp;lt;\/form&gt;\n\n<\/pre><\/div>\n\n\n<p>Le formulaire permet \u00e0 l&#8217;\u00e9lecteur d&#8217;entrer son ID et de choisir un candidat. Les donn\u00e9es sont envoy\u00e9es \u00e0 la route <code>\/vote<\/code> via POST.<\/p>\n\n\n\n<p><strong>Affichage des Votes Actuels<\/strong>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&amp;lt;h2&gt;Current Votes&amp;lt;\/h2&gt;\n&amp;lt;ul&gt;\n    {% for candidate, count in votes.items() %}\n        &amp;lt;li&gt;{{ candidate }}: {{ count }}&amp;lt;\/li&gt;\n    {% endfor %}\n&amp;lt;\/ul&gt;\n\n<\/pre><\/div>\n\n\n<p>Cette section affiche le nombre de votes actuels pour chaque candidat en utilisant la boucle <code>for<\/code> de Jinja2 pour it\u00e9rer sur les \u00e9l\u00e9ments du dictionnaire <code>votes<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lancer l&#8217;Application<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Lancez votre application Flask : <code>python3 app.py<\/code><\/li>\n\n\n\n<li>Acc\u00e9dez \u00e0 l&#8217;interface web en ouvrant votre navigateur et en allant \u00e0 l&#8217;adresse <code>http:\/\/&lt;IP_DU_RASPBERRY_PI&gt;:5000<\/code>.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Utilisation d&#8217;un Lecteur de Cartes RFID (Facultatif)<\/h3>\n\n\n\n<p>Pour une s\u00e9curit\u00e9 accrue, vous pouvez utiliser un lecteur de carte RFID pour l&#8217;identification des \u00e9lecteurs.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Pourquoi Utiliser un Lecteur de Carte RFID ?<\/h4>\n\n\n\n<p>L&#8217;utilisation d&#8217;un lecteur de carte RFID ajoute une couche de s\u00e9curit\u00e9 en s&#8217;assurant que chaque \u00e9lecteur est identifi\u00e9 de mani\u00e8re unique et que les votes ne peuvent pas \u00eatre falsifi\u00e9s par des utilisateurs non autoris\u00e9s.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Installation du Lecteur de Carte RFID<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Installez les biblioth\u00e8ques n\u00e9cessaires pour le lecteur RFID : <code>pip3 install mfrc522<\/code><\/li>\n\n\n\n<li>Connectez le lecteur RFID au Raspberry Pi en suivant les instructions du fabricant.<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Int\u00e9gration du Lecteur RFID dans l&#8217;Application Flask<\/h4>\n\n\n\n<p>Modifiez le fichier <code>app.py<\/code> pour inclure la lecture des cartes RFID :<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nfrom flask import Flask, render_template, request, redirect, url_for\nfrom mfrc522 import SimpleMFRC522\nimport RPi.GPIO as GPIO\n\napp = Flask(__name__)\nreader = SimpleMFRC522()\n\nvoters = {}\nvotes = {&quot;Candidate1&quot;: 0, &quot;Candidate2&quot;: 0, &quot;Candidate3&quot;: 0}\n\n@app.route(&#039;\/&#039;)\ndef index():\n    return render_template(&#039;index.html&#039;, votes=votes)\n\n@app.route(&#039;\/vote&#039;, methods=&#x5B;&#039;POST&#039;])\ndef vote():\n    try:\n        # Lecture de l&#039;ID de la carte RFID\n        id, text = reader.read()\n        voter_id = str(id)\n        candidate = request.form&#x5B;&#039;candidate&#039;]\n\n        if voter_id in voters:\n            return &quot;Voter has already voted&quot;\n\n        voters&#x5B;voter_id] = candidate\n        votes&#x5B;candidate] += 1\n\n        return redirect(url_for(&#039;index&#039;))\n    finally:\n        GPIO.cleanup()\n\nif __name__ == &#039;__main__&#039;:\n    app.run(host=&#039;0.0.0.0&#039;, port=5000)\n\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\">Explication des Modifications<\/h4>\n\n\n\n<p><strong>Importations Suppl\u00e9mentaires<\/strong>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nfrom mfrc522 import SimpleMFRC522\nimport RPi.GPIO as GPIO\n\n<\/pre><\/div>\n\n\n<p>Nous importons les modules n\u00e9cessaires pour le lecteur RFID.<\/p>\n\n\n\n<p><strong>Initialisation du Lecteur RFID<\/strong>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nreader = SimpleMFRC522()\n\n<\/pre><\/div>\n\n\n<p><strong>Lecture de l&#8217;ID de la Carte RFID<\/strong>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ntry:\n    id, text = reader.read()\n    voter_id = str(id)\n    candidate = request.form&#x5B;&#039;candidate&#039;]\n\n    if voter_id in voters:\n        return &quot;Voter has already voted&quot;\n\n    voters&#x5B;voter_id] = candidate\n    votes&#x5B;candidate] += 1\n\n    return redirect(url_for(&#039;index&#039;))\nfinally:\n    GPIO.cleanup()\n\n<\/pre><\/div>\n\n\n<p>Nous lisons l&#8217;ID de la carte RFID lorsque l&#8217;\u00e9lecteur vote, et nous utilisons cet ID comme identifiant unique de l&#8217;\u00e9lecteur. La m\u00e9thode <code>GPIO.cleanup()<\/code> est utilis\u00e9e pour nettoyer les pins GPIO apr\u00e8s la lecture.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusi\u00f3n<\/h3>\n\n\n\n<p>Vous avez maintenant un syst\u00e8me de vote \u00e9lectronique fonctionnel bas\u00e9 sur Raspberry Pi et Flask. Ce projet peut \u00eatre \u00e9tendu pour inclure des fonctionnalit\u00e9s suppl\u00e9mentaires telles que l&#8217;authentification multifactorielle, l&#8217;enregistrement des votes dans une base de donn\u00e9es, et l&#8217;analyse des r\u00e9sultats des \u00e9lections. Avec ce tutoriel, vous avez une base solide pour d\u00e9velopper un syst\u00e8me de vote s\u00e9curis\u00e9 et fiable.<\/p>","protected":false},"excerpt":{"rendered":"<p>Introduction Dans cet article, nous allons cr\u00e9er un syst\u00e8me de vote \u00e9lectronique en utilisant un Raspberry Pi et Raspbian. Ce projet est id\u00e9al pour les \u00e9coles, les petites organisations ou tout environnement n\u00e9cessitant un syst\u00e8me de vote simple, fiable et s\u00e9curis\u00e9. Mat\u00e9riel N\u00e9cessaire Installation de Raspbian Configuration Initiale Configuration du Serveur Web Nous allons utiliser [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":23163,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[308],"tags":[],"class_list":["post-23162","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutos"],"featured_image_src":{"landsacpe":["https:\/\/monraspberry.com\/wp-content\/uploads\/2024\/06\/DALL\u00b7E-2024-06-10-15.17.15-An-illustrated-step-by-step-guide-showing-the-setup-of-an-electronic-voting-system-using-Raspberry-Pi.-The-image-includes-a-Raspberry-Pi-connected-to-.webp",779,445,false],"list":["https:\/\/monraspberry.com\/wp-content\/uploads\/2024\/06\/DALL\u00b7E-2024-06-10-15.17.15-An-illustrated-step-by-step-guide-showing-the-setup-of-an-electronic-voting-system-using-Raspberry-Pi.-The-image-includes-a-Raspberry-Pi-connected-to-.webp",463,265,false],"medium":["https:\/\/monraspberry.com\/wp-content\/uploads\/2024\/06\/DALL\u00b7E-2024-06-10-15.17.15-An-illustrated-step-by-step-guide-showing-the-setup-of-an-electronic-voting-system-using-Raspberry-Pi.-The-image-includes-a-Raspberry-Pi-connected-to--300x171.webp",300,171,true],"full":["https:\/\/monraspberry.com\/wp-content\/uploads\/2024\/06\/DALL\u00b7E-2024-06-10-15.17.15-An-illustrated-step-by-step-guide-showing-the-setup-of-an-electronic-voting-system-using-Raspberry-Pi.-The-image-includes-a-Raspberry-Pi-connected-to-.webp",1792,1024,false]},"jetpack_featured_media_url":"https:\/\/monraspberry.com\/wp-content\/uploads\/2024\/06\/DALL\u00b7E-2024-06-10-15.17.15-An-illustrated-step-by-step-guide-showing-the-setup-of-an-electronic-voting-system-using-Raspberry-Pi.-The-image-includes-a-Raspberry-Pi-connected-to-.webp","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/monraspberry.com\/es\/wp-json\/wp\/v2\/posts\/23162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monraspberry.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/monraspberry.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/monraspberry.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/monraspberry.com\/es\/wp-json\/wp\/v2\/comments?post=23162"}],"version-history":[{"count":0,"href":"https:\/\/monraspberry.com\/es\/wp-json\/wp\/v2\/posts\/23162\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/monraspberry.com\/es\/wp-json\/wp\/v2\/media\/23163"}],"wp:attachment":[{"href":"https:\/\/monraspberry.com\/es\/wp-json\/wp\/v2\/media?parent=23162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/monraspberry.com\/es\/wp-json\/wp\/v2\/categories?post=23162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/monraspberry.com\/es\/wp-json\/wp\/v2\/tags?post=23162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}