{"id":1973,"date":"2024-10-09T11:37:53","date_gmt":"2024-10-09T03:37:53","guid":{"rendered":"https:\/\/www.openbyt.com\/persuasion-is-often-more-effectual-than-force-2"},"modified":"2024-10-17T19:56:16","modified_gmt":"2024-10-17T11:56:16","slug":"persuasion-is-often-more-effectual-than-force-2","status":"publish","type":"post","link":"https:\/\/www.openbyt.com\/es\/la-persuasion-suele-ser-mas-eficaz-que-la-fuerza-2","title":{"rendered":"Dominar la API REST de WordPress: Autenticaci\u00f3n e Integraci\u00f3n"},"content":{"rendered":"<p><strong>\u00bfQu\u00e9 es la API REST?<\/strong><\/p><p><strong>API REST (Interfaz de programaci\u00f3n de aplicaciones de transferencia de estado representacional) <\/strong>es un conjunto de reglas que permite que diferentes sistemas de software se comuniquen a trav\u00e9s de Internet. Imagine una API como un puente que conecta dos sistemas, permiti\u00e9ndoles solicitar y compartir informaci\u00f3n.<\/p><figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.23.43-An-illustration-of-how-a-REST-API-works.-Include-a-visual-representation-of-an-API-as-a-bridge-connecting-two-systems-a-client-and-a-server-with-ar.webp\" alt=\"\" class=\"wp-image-2249\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.23.43-An-illustration-of-how-a-REST-API-works.-Include-a-visual-representation-of-an-API-as-a-bridge-connecting-two-systems-a-client-and-a-server-with-ar.webp 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.23.43-An-illustration-of-how-a-REST-API-works.-Include-a-visual-representation-of-an-API-as-a-bridge-connecting-two-systems-a-client-and-a-server-with-ar-600x600.webp 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.23.43-An-illustration-of-how-a-REST-API-works.-Include-a-visual-representation-of-an-API-as-a-bridge-connecting-two-systems-a-client-and-a-server-with-ar-100x100.webp 100w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.23.43-An-illustration-of-how-a-REST-API-works.-Include-a-visual-representation-of-an-API-as-a-bridge-connecting-two-systems-a-client-and-a-server-with-ar-300x300.webp 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.23.43-An-illustration-of-how-a-REST-API-works.-Include-a-visual-representation-of-an-API-as-a-bridge-connecting-two-systems-a-client-and-a-server-with-ar-150x150.webp 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.23.43-An-illustration-of-how-a-REST-API-works.-Include-a-visual-representation-of-an-API-as-a-bridge-connecting-two-systems-a-client-and-a-server-with-ar-768x768.webp 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>Desglosemos los componentes de una API REST:<\/p><ul class=\"wp-block-list\"><li><strong>API (Interfaz de programaci\u00f3n de aplicaciones)<\/strong>: Una API es como el men\u00fa de un restaurante. Proporciona una lista de operaciones que un cliente puede solicitar, y el servidor (como un chef) realiza estas operaciones y devuelve la respuesta.<\/li>\n\n<li><strong>REST (Transferencia de Estado Representacional)<\/strong>: REST es un conjunto de directrices para construir servicios web que funcionan a trav\u00e9s de HTTP, utilizando operaciones est\u00e1ndar como GET, POST, PUT y DELETE.<\/li><\/ul><figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.26.03-An-illustration-depicting-an-API-as-a-menu-in-a-restaurant.-Show-a-client-customer-selecting-from-a-menu-of-operations-with-a-server-chef-perform.webp\" alt=\"\" class=\"wp-image-2251\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.26.03-An-illustration-depicting-an-API-as-a-menu-in-a-restaurant.-Show-a-client-customer-selecting-from-a-menu-of-operations-with-a-server-chef-perform.webp 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.26.03-An-illustration-depicting-an-API-as-a-menu-in-a-restaurant.-Show-a-client-customer-selecting-from-a-menu-of-operations-with-a-server-chef-perform-600x600.webp 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.26.03-An-illustration-depicting-an-API-as-a-menu-in-a-restaurant.-Show-a-client-customer-selecting-from-a-menu-of-operations-with-a-server-chef-perform-100x100.webp 100w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.26.03-An-illustration-depicting-an-API-as-a-menu-in-a-restaurant.-Show-a-client-customer-selecting-from-a-menu-of-operations-with-a-server-chef-perform-300x300.webp 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.26.03-An-illustration-depicting-an-API-as-a-menu-in-a-restaurant.-Show-a-client-customer-selecting-from-a-menu-of-operations-with-a-server-chef-perform-150x150.webp 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.26.03-An-illustration-depicting-an-API-as-a-menu-in-a-restaurant.-Show-a-client-customer-selecting-from-a-menu-of-operations-with-a-server-chef-perform-768x768.webp 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p><strong _msttexthash=\"32972290\" _msthash=\"186\">\u00bfC\u00f3mo funciona una API REST?<\/strong><\/p><p>La API REST permite a los clientes (como su navegador o una aplicaci\u00f3n) enviar peticiones a los servidores y recibir datos a cambio. Desglosemos c\u00f3mo funciona paso a paso:<\/p><ol class=\"wp-block-list\"><li><strong>Solicitud del cliente<\/strong>: El cliente (su aplicaci\u00f3n) env\u00eda una solicitud HTTP a una URL espec\u00edfica del servidor. Esta URL representa un recurso (por ejemplo, un usuario, un producto, etc.).<ul class=\"wp-block-list\"><li>Ejemplo: GET <code>https:\/\/api.example.com\/users<\/code> solicita la lista de usuarios.<\/li><\/ul><\/li>\n\n<li><strong>Procesamiento del servidor<\/strong>: El servidor recibe la solicitud, la procesa, recupera los datos (normalmente de una base de datos) y prepara una respuesta.<\/li>\n\n<li><strong>Respuesta del servidor<\/strong>: El servidor env\u00eda una respuesta HTTP de vuelta al cliente. Esta respuesta incluye:<ul class=\"wp-block-list\"><li><strong>C\u00f3digo de estado<\/strong>: Para indicar si la solicitud ha tenido \u00e9xito (por ejemplo, 200 OK para el \u00e9xito, 404 Not Found si el recurso no existe).<\/li>\n\n<li><strong>Datos<\/strong>: Normalmente en formato JSON, representa el recurso solicitado.<\/li><\/ul><\/li><\/ol><figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.28.59-An-illustration-showing-the-process-of-a-client-sending-a-request-to-a-server.-Include-visuals-for-Client-Request-with-an-arrow-pointing-to-a-Serve.webp\" alt=\"\" class=\"wp-image-2252\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.28.59-An-illustration-showing-the-process-of-a-client-sending-a-request-to-a-server.-Include-visuals-for-Client-Request-with-an-arrow-pointing-to-a-Serve.webp 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.28.59-An-illustration-showing-the-process-of-a-client-sending-a-request-to-a-server.-Include-visuals-for-Client-Request-with-an-arrow-pointing-to-a-Serve-600x600.webp 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.28.59-An-illustration-showing-the-process-of-a-client-sending-a-request-to-a-server.-Include-visuals-for-Client-Request-with-an-arrow-pointing-to-a-Serve-100x100.webp 100w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.28.59-An-illustration-showing-the-process-of-a-client-sending-a-request-to-a-server.-Include-visuals-for-Client-Request-with-an-arrow-pointing-to-a-Serve-300x300.webp 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.28.59-An-illustration-showing-the-process-of-a-client-sending-a-request-to-a-server.-Include-visuals-for-Client-Request-with-an-arrow-pointing-to-a-Serve-150x150.webp 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.28.59-An-illustration-showing-the-process-of-a-client-sending-a-request-to-a-server.-Include-visuals-for-Client-Request-with-an-arrow-pointing-to-a-Serve-768x768.webp 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p><strong>Autenticaci\u00f3n b\u00e1sica:<\/strong> \u00bfQu\u00e9 es y por qu\u00e9 es importante?<\/p><p><strong>Autenticaci\u00f3n b\u00e1sica<\/strong> es una forma sencilla de que los usuarios verifiquen su identidad cuando solicitan una API. En este m\u00e9todo, el cliente env\u00eda el nombre de usuario y la contrase\u00f1a codificados en la cabecera de la solicitud, que el servidor valida a continuaci\u00f3n.<\/p><p><strong>\u00bfPor qu\u00e9 es importante?<\/strong>: La autenticaci\u00f3n garantiza que s\u00f3lo los usuarios autorizados tengan acceso a los recursos, impidiendo que los usuarios no autorizados accedan.<\/p><p><strong>\u00bfC\u00f3mo funciona?<\/strong>: Cuando un cliente env\u00eda una solicitud al servidor, incluye un <code>Autorizaci\u00f3n<\/code> con las credenciales codificadas en Base64.<\/p><p><strong>Ejemplo\uff1a<\/strong><\/p><pre class=\"wp-block-code\"><code>Autorizaci\u00f3n: Basic dXNlcm5hbWU6cGFzc3dvcmQ=<\/code><\/pre><p>El servidor descodifica esta cabecera y comprueba si el nombre de usuario y la contrase\u00f1a son v\u00e1lidos.<\/p><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.34.10-An-illustration-explaining-Basic-Authentication-for-REST-API.-Show-a-simplified-visual-of-a-client-user-sending-an-HTTP-request-to-a-server-with-an.webp\" alt=\"\" class=\"wp-image-2255\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.34.10-An-illustration-explaining-Basic-Authentication-for-REST-API.-Show-a-simplified-visual-of-a-client-user-sending-an-HTTP-request-to-a-server-with-an.webp 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.34.10-An-illustration-explaining-Basic-Authentication-for-REST-API.-Show-a-simplified-visual-of-a-client-user-sending-an-HTTP-request-to-a-server-with-an-600x600.webp 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.34.10-An-illustration-explaining-Basic-Authentication-for-REST-API.-Show-a-simplified-visual-of-a-client-user-sending-an-HTTP-request-to-a-server-with-an-100x100.webp 100w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.34.10-An-illustration-explaining-Basic-Authentication-for-REST-API.-Show-a-simplified-visual-of-a-client-user-sending-an-HTTP-request-to-a-server-with-an-300x300.webp 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.34.10-An-illustration-explaining-Basic-Authentication-for-REST-API.-Show-a-simplified-visual-of-a-client-user-sending-an-HTTP-request-to-a-server-with-an-150x150.webp 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.34.10-An-illustration-explaining-Basic-Authentication-for-REST-API.-Show-a-simplified-visual-of-a-client-user-sending-an-HTTP-request-to-a-server-with-an-768x768.webp 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p><strong>M\u00e9todos de autenticaci\u00f3n para la API REST de WordPress<\/strong><\/p><p>Cuando trabaje con el <strong>API REST de WordPress<\/strong>, se pueden utilizar varios m\u00e9todos de autenticaci\u00f3n para asegurar las solicitudes:<\/p><p><strong>1\uff1aAutenticaci\u00f3n b\u00e1sica<\/strong><\/p><ul class=\"wp-block-list\"><li>Este m\u00e9todo se utiliza a menudo para pruebas y aplicaciones sencillas. Usted env\u00eda su nombre de usuario y contrase\u00f1a de WordPress en las cabeceras de la solicitud.<\/li>\n\n<li><strong>Consejo sobre plugins<\/strong>: Para utilizar la autenticaci\u00f3n b\u00e1sica con WordPress, puede utilizar la opci\u00f3n <a href=\"https:\/\/github.com\/WP-API\/Basic-Auth\" target=\"_blank\" rel=\"noreferrer noopener\">Plugin de autenticaci\u00f3n b\u00e1sica<\/a>. Este m\u00e9todo no se recomienda para entornos de producci\u00f3n por motivos de seguridad.<\/li><\/ul><p><strong>2\uff1aAutenticaci\u00f3n de cookies<\/strong><\/p><ul class=\"wp-block-list\"><li>La autenticaci\u00f3n mediante cookies se utiliza cuando se desea que el usuario que ha iniciado sesi\u00f3n en ese momento acceda a la API. Cuando un usuario inicia sesi\u00f3n en WordPress, se crea una cookie de sesi\u00f3n y la API utiliza esta cookie para autenticar al usuario.<\/li>\n\n<li><strong>Caso pr\u00e1ctico<\/strong>: Suele utilizarse para aplicaciones JavaScript frontales que se ejecutan en el mismo dominio que el sitio de WordPress.<\/li><\/ul><p><strong>3\uff1aOAuth Autenticaci\u00f3n<\/strong><\/p><ul class=\"wp-block-list\"><li>OAuth es un m\u00e9todo m\u00e1s seguro que permite a las aplicaciones de terceros acceder a la API REST de WordPress en nombre de los usuarios sin compartir sus contrase\u00f1as.<\/li>\n\n<li><strong>Ejemplo de plugin<\/strong>: Puede utilizar el plugin de servidor OAuth 1.0a para WordPress para implementar la autenticaci\u00f3n basada en OAuth.<\/li><\/ul><p><strong>4\uff1aContrase\u00f1as de aplicaci\u00f3n<\/strong><\/p><ul class=\"wp-block-list\"><li>WordPress tambi\u00e9n admite <strong>Contrase\u00f1as de aplicaciones<\/strong>que son contrase\u00f1as \u00fanicas para el acceso a la API. Puede generar contrase\u00f1as de aplicaci\u00f3n en su panel de control de WordPress, y estas contrase\u00f1as se pueden utilizar para la autenticaci\u00f3n.<\/li>\n\n<li><strong>C\u00f3mo generar<\/strong>: Vaya a su perfil de usuario en WordPress, despl\u00e1cese hasta la secci\u00f3n Contrase\u00f1as de la aplicaci\u00f3n y genere una nueva contrase\u00f1a.<\/li><\/ul><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.41.26-An-illustration-comparing-different-WordPress-REST-API-authentication-methods.-Include-visual-representations-for-Basic-Authentication-username-and-p.webp\" alt=\"\" class=\"wp-image-2257\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.41.26-An-illustration-comparing-different-WordPress-REST-API-authentication-methods.-Include-visual-representations-for-Basic-Authentication-username-and-p.webp 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.41.26-An-illustration-comparing-different-WordPress-REST-API-authentication-methods.-Include-visual-representations-for-Basic-Authentication-username-and-p-600x600.webp 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.41.26-An-illustration-comparing-different-WordPress-REST-API-authentication-methods.-Include-visual-representations-for-Basic-Authentication-username-and-p-100x100.webp 100w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.41.26-An-illustration-comparing-different-WordPress-REST-API-authentication-methods.-Include-visual-representations-for-Basic-Authentication-username-and-p-300x300.webp 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.41.26-An-illustration-comparing-different-WordPress-REST-API-authentication-methods.-Include-visual-representations-for-Basic-Authentication-username-and-p-150x150.webp 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.41.26-An-illustration-comparing-different-WordPress-REST-API-authentication-methods.-Include-visual-representations-for-Basic-Authentication-username-and-p-768x768.webp 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p><strong>Maximizar el desarrollo con la API REST de WordPress<\/strong><\/p><p>La API REST de WordPress puede crear potentes aplicaciones web al permitirle interactuar con su sitio de WordPress desde fuera del panel de control de WordPress. He aqu\u00ed c\u00f3mo puede maximizar el desarrollo:<\/p><p><strong>1\uff1aPuntos finales personalizados:<\/strong> Puede crear puntos finales personalizados para exponer datos adicionales de su sitio WordPress que pueden no estar disponibles por defecto.<\/p><ul class=\"wp-block-list\"><li><strong>C\u00f3mo crear<\/strong>: Utilice el <code>register_rest_route()<\/code> en su tema o plugin de WordPress para a\u00f1adir nuevos puntos finales.<\/li><\/ul><p>Ejemplo:<\/p><pre class=\"wp-block-code\"><code>add_action('rest_api_init', function() {\n  register_rest_route('myplugin\/v1', '\/custom-data\/', array(\n    'methods' =&gt; 'GET',\n    'callback' =&gt; 'my_custom_data_callback',\n  ));\n});\n\nfunction mi_datos_personalizados_callback() {\n  return new WP_REST_Response(array('datos' =&gt; '\u00a1Hola, mundo!'), 200);\n}<\/code><\/pre><p><strong>2\uff1aIntegraci\u00f3n de JavaScript:<\/strong> Utilice JavaScript para enviar solicitudes a la API REST y crear experiencias de usuario din\u00e1micas e interactivas. Por ejemplo, puede crear una aplicaci\u00f3n React o Vue.js que interact\u00fae con su backend de WordPress a trav\u00e9s de la API REST.<\/p><p><strong>Ejemplo pr\u00e1ctico<\/strong>: Imagine construir un sistema de comentarios personalizado en el que los usuarios puedan publicar comentarios sin recargar la p\u00e1gina, todo ello interactuando con la API REST a trav\u00e9s de JavaScript.<\/p><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.50.24-A-realistic-illustration-of-a-developer-working-on-WordPress-REST-API.-The-scene-includes-a-modern-workspace-with-a-developer-sitting-at-a-desk-in-fr.webp\" alt=\"\" class=\"wp-image-2258\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.50.24-A-realistic-illustration-of-a-developer-working-on-WordPress-REST-API.-The-scene-includes-a-modern-workspace-with-a-developer-sitting-at-a-desk-in-fr.webp 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.50.24-A-realistic-illustration-of-a-developer-working-on-WordPress-REST-API.-The-scene-includes-a-modern-workspace-with-a-developer-sitting-at-a-desk-in-fr-600x600.webp 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.50.24-A-realistic-illustration-of-a-developer-working-on-WordPress-REST-API.-The-scene-includes-a-modern-workspace-with-a-developer-sitting-at-a-desk-in-fr-100x100.webp 100w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.50.24-A-realistic-illustration-of-a-developer-working-on-WordPress-REST-API.-The-scene-includes-a-modern-workspace-with-a-developer-sitting-at-a-desk-in-fr-300x300.webp 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.50.24-A-realistic-illustration-of-a-developer-working-on-WordPress-REST-API.-The-scene-includes-a-modern-workspace-with-a-developer-sitting-at-a-desk-in-fr-150x150.webp 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.50.24-A-realistic-illustration-of-a-developer-working-on-WordPress-REST-API.-The-scene-includes-a-modern-workspace-with-a-developer-sitting-at-a-desk-in-fr-768x768.webp 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p><strong>Env\u00edo de solicitudes autenticadas con JavaScript<\/strong><\/p><p>Para enviar solicitudes autenticadas utilizando JavaScript, debe incluir las credenciales o tokens correctos en las cabeceras de la solicitud. Por ejemplo:<\/p><pre class=\"wp-block-code\"><code>fetch('https:\/\/api.example.com\/users', {\n  m\u00e9todo: 'GET',\n  cabeceras: {\n    'Authorization': 'Basic ' + btoa('username:password'),\n    'Content-Type': 'application\/json'\n  }\n})\n  .then(respuesta =&gt; respuesta.json())\n  .then(datos =&gt; console.log(datos));<\/code><\/pre><p>En este ejemplo, la funci\u00f3n btoa() codifica las credenciales en Base64 para la autenticaci\u00f3n primaria.<\/p><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.54.03-An-illustration-showing-a-developer-using-JavaScript-to-send-authenticated-requests-to-a-REST-API.-Include-a-visual-of-a-computer-screen-with-JavaScri.webp\" alt=\"\" class=\"wp-image-2259\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.54.03-An-illustration-showing-a-developer-using-JavaScript-to-send-authenticated-requests-to-a-REST-API.-Include-a-visual-of-a-computer-screen-with-JavaScri.webp 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.54.03-An-illustration-showing-a-developer-using-JavaScript-to-send-authenticated-requests-to-a-REST-API.-Include-a-visual-of-a-computer-screen-with-JavaScri-600x600.webp 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.54.03-An-illustration-showing-a-developer-using-JavaScript-to-send-authenticated-requests-to-a-REST-API.-Include-a-visual-of-a-computer-screen-with-JavaScri-100x100.webp 100w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.54.03-An-illustration-showing-a-developer-using-JavaScript-to-send-authenticated-requests-to-a-REST-API.-Include-a-visual-of-a-computer-screen-with-JavaScri-300x300.webp 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.54.03-An-illustration-showing-a-developer-using-JavaScript-to-send-authenticated-requests-to-a-REST-API.-Include-a-visual-of-a-computer-screen-with-JavaScri-150x150.webp 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-16.54.03-An-illustration-showing-a-developer-using-JavaScript-to-send-authenticated-requests-to-a-REST-API.-Include-a-visual-of-a-computer-screen-with-JavaScri-768x768.webp 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p><strong>Autenticaci\u00f3n de cookies<\/strong><\/p><p>Al trabajar con la autenticaci\u00f3n mediante cookies, puede utilizar las cookies de sesi\u00f3n del usuario conectado a WordPress para acceder a la API REST. Aqu\u00ed tiene un ejemplo paso a paso de c\u00f3mo funciona:<\/p><ol class=\"wp-block-list\"><li><strong>Inicio de sesi\u00f3n del usuario<\/strong> El usuario inicia sesi\u00f3n en su sitio de WordPress, y WordPress establece una cookie de autenticaci\u00f3n en el navegador del usuario.<\/li>\n\n<li><strong>Enviar solicitudes<\/strong>: Cuando su c\u00f3digo JavaScript solicita la API REST, el navegador incluye la cookie en las cabeceras de la solicitud, y WordPress sabe qu\u00e9 usuario est\u00e1 realizando la solicitud.<\/li><\/ol><p><strong>Env\u00edo de solicitudes con la API HTTP de WordPress<\/strong><\/p><p>Tambi\u00e9n puede utilizar el <strong>API HTTP de WordPress<\/strong> para enviar peticiones desde su sitio WordPress. La API HTTP es un conjunto de funciones que WordPress proporciona para interactuar con las API REST.<\/p><p>Ejemplo de env\u00edo de una solicitud GET:<\/p><pre class=\"wp-block-code\"><code>$response = wp_remote_get('https:\/\/api.example.com\/users');\nif (is_wp_error($response)) {\n  $error_message = $response-&gt;get_error_message();\n  echo \"Algo ha ido mal: $error_message\";\n} else {\n  $body = wp_remote_retrieve_body($response);\n  echo $body;\n}<\/code><\/pre><p>Este ejemplo utiliza la funci\u00f3n wp_remote_get() para enviar una solicitud GET a una API externa y recuperar la respuesta.<\/p><h3 class=\"wp-block-heading\">Resumen<\/h3><p>En esta gu\u00eda, cubrimos:<\/p><ul class=\"wp-block-list\"><li><strong>Qu\u00e9 es la API REST,<\/strong> y \u00bfc\u00f3mo permite que los distintos sistemas se comuniquen?<\/li>\n\n<li><strong>C\u00f3mo funciona la API REST<\/strong>, incluyendo c\u00f3mo se realizan y procesan las solicitudes.<\/li>\n\n<li><strong>M\u00e9todos de autenticaci\u00f3n<\/strong>, como la autenticaci\u00f3n b\u00e1sica, la autenticaci\u00f3n de cookies, OAuth y las contrase\u00f1as de aplicaciones, y por qu\u00e9 son esenciales.<\/li>\n\n<li><strong>Autenticaci\u00f3n de la API REST de WordPress<\/strong>, incluyendo c\u00f3mo utilizar JavaScript y PHP para enviar peticiones autenticadas.<\/li><\/ul><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.00.52-A-clear-and-engaging-illustration-summarizing-the-use-of-WordPress-REST-API-for-development.-Show-a-developer-at-a-computer-screen-creating-custom-end.webp\" alt=\"\" class=\"wp-image-2262\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.00.52-A-clear-and-engaging-illustration-summarizing-the-use-of-WordPress-REST-API-for-development.-Show-a-developer-at-a-computer-screen-creating-custom-end.webp 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.00.52-A-clear-and-engaging-illustration-summarizing-the-use-of-WordPress-REST-API-for-development.-Show-a-developer-at-a-computer-screen-creating-custom-end-600x600.webp 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.00.52-A-clear-and-engaging-illustration-summarizing-the-use-of-WordPress-REST-API-for-development.-Show-a-developer-at-a-computer-screen-creating-custom-end-100x100.webp 100w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.00.52-A-clear-and-engaging-illustration-summarizing-the-use-of-WordPress-REST-API-for-development.-Show-a-developer-at-a-computer-screen-creating-custom-end-300x300.webp 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.00.52-A-clear-and-engaging-illustration-summarizing-the-use-of-WordPress-REST-API-for-development.-Show-a-developer-at-a-computer-screen-creating-custom-end-150x150.webp 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.00.52-A-clear-and-engaging-illustration-summarizing-the-use-of-WordPress-REST-API-for-development.-Show-a-developer-at-a-computer-screen-creating-custom-end-768x768.webp 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><h3 class=\"wp-block-heading\">PREGUNTAS FRECUENTES: Preguntas comunes sobre la API REST y la autenticaci\u00f3n<\/h3><ol class=\"wp-block-list\"><li><strong>\u00bfPuedo utilizar la API REST sin autenticaci\u00f3n?<\/strong><ul class=\"wp-block-list\"><li>S\u00ed, pero s\u00f3lo para datos p\u00fablicos. Para cualquier dato sensible, necesita una autenticaci\u00f3n adecuada.<\/li><\/ul><\/li>\n\n<li><strong>\u00bfEs segura la autenticaci\u00f3n b\u00e1sica?<\/strong><ul class=\"wp-block-list\"><li>La autenticaci\u00f3n b\u00e1sica no es segura para producci\u00f3n porque las credenciales est\u00e1n codificadas, no encriptadas. Es m\u00e1s adecuada para pruebas o a trav\u00e9s de HTTPS.<\/li><\/ul><\/li>\n\n<li><strong>\u00bfPara qu\u00e9 sirven las contrase\u00f1as de las aplicaciones?<\/strong><ul class=\"wp-block-list\"><li>Las contrase\u00f1as de aplicaciones autentican las solicitudes de API sin compartir su contrase\u00f1a principal de WordPress. Ayudan a integrar aplicaciones de terceros.<\/li><\/ul><\/li><\/ol><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.03.17-An-illustration-summarizing-common-questions-about-REST-API-and-authentication-for-WordPress.-Include-visual-representations-of-key-FAQ-items_-using-R.webp\" alt=\"\" class=\"wp-image-2263\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.03.17-An-illustration-summarizing-common-questions-about-REST-API-and-authentication-for-WordPress.-Include-visual-representations-of-key-FAQ-items_-using-R.webp 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.03.17-An-illustration-summarizing-common-questions-about-REST-API-and-authentication-for-WordPress.-Include-visual-representations-of-key-FAQ-items_-using-R-600x600.webp 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.03.17-An-illustration-summarizing-common-questions-about-REST-API-and-authentication-for-WordPress.-Include-visual-representations-of-key-FAQ-items_-using-R-100x100.webp 100w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.03.17-An-illustration-summarizing-common-questions-about-REST-API-and-authentication-for-WordPress.-Include-visual-representations-of-key-FAQ-items_-using-R-300x300.webp 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.03.17-An-illustration-summarizing-common-questions-about-REST-API-and-authentication-for-WordPress.-Include-visual-representations-of-key-FAQ-items_-using-R-150x150.webp 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.03.17-An-illustration-summarizing-common-questions-about-REST-API-and-authentication-for-WordPress.-Include-visual-representations-of-key-FAQ-items_-using-R-768x768.webp 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><h3 class=\"wp-block-heading\">Pr\u00f3ximos pasos<\/h3><ul class=\"wp-block-list\"><li><strong>Autenticaci\u00f3n de pr\u00e1cticas<\/strong>: Pruebe a implementar diferentes m\u00e9todos de autenticaci\u00f3n en un sitio local de WordPress.<\/li>\n\n<li><strong>Crear puntos finales personalizados<\/strong>: Experimente con la creaci\u00f3n de puntos finales personalizados en WordPress para ampliar la funcionalidad de su API REST.<\/li>\n\n<li><strong>Integraci\u00f3n de JavaScript y PHP<\/strong>: Practique el env\u00edo de peticiones utilizando JavaScript (como fetch) y PHP (utilizando la API HTTP de WordPress).<\/li>\n\n<li><strong>Utilice Postman para realizar pruebas<\/strong>: Utilice herramientas como <a href=\"https:\/\/www.postman.com\/\" target=\"_blank\" rel=\"noopener\">Cartero<\/a> para probar sus puntos finales de la API REST y practicar el env\u00edo de solicitudes autenticadas.<\/li><\/ul><p>Feliz codificaci\u00f3n, \u00a1y a seguir explorando! La API REST es una herramienta poderosa, y entender c\u00f3mo utilizarla desbloquear\u00e1 un sinf\u00edn de posibilidades en el desarrollo web.<\/p><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.04.49-An-illustration-summarizing-next-steps-for-practicing-WordPress-REST-API-development.-Show-a-developers-workspace-with-elements-like-practicing-diffe.webp\" alt=\"\" class=\"wp-image-2264\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.04.49-An-illustration-summarizing-next-steps-for-practicing-WordPress-REST-API-development.-Show-a-developers-workspace-with-elements-like-practicing-diffe.webp 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.04.49-An-illustration-summarizing-next-steps-for-practicing-WordPress-REST-API-development.-Show-a-developers-workspace-with-elements-like-practicing-diffe-600x600.webp 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.04.49-An-illustration-summarizing-next-steps-for-practicing-WordPress-REST-API-development.-Show-a-developers-workspace-with-elements-like-practicing-diffe-100x100.webp 100w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.04.49-An-illustration-summarizing-next-steps-for-practicing-WordPress-REST-API-development.-Show-a-developers-workspace-with-elements-like-practicing-diffe-300x300.webp 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.04.49-An-illustration-summarizing-next-steps-for-practicing-WordPress-REST-API-development.-Show-a-developers-workspace-with-elements-like-practicing-diffe-150x150.webp 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/DALL\u00b7E-2024-10-10-17.04.49-An-illustration-summarizing-next-steps-for-practicing-WordPress-REST-API-development.-Show-a-developers-workspace-with-elements-like-practicing-diffe-768x768.webp 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>","protected":false},"excerpt":{"rendered":"<p>\u00bfQu\u00e9 es la API REST? REST API (Representational State Transfer Application Programming Interface) es un conjunto de reglas que permite a diferentes sistemas de software comunicarse a trav\u00e9s de...<\/p>","protected":false},"author":1,"featured_media":3107,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33,78],"tags":[191,193,192,190],"class_list":["post-1973","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-rest-api","category-rest-api-use","tag-authenticationmethods","tag-javascriptintegration","tag-webdevelopment","tag-wordpressrestapi",""],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.openbyt.com\/es\/wp-json\/wp\/v2\/posts\/1973","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.openbyt.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.openbyt.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.openbyt.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.openbyt.com\/es\/wp-json\/wp\/v2\/comments?post=1973"}],"version-history":[{"count":11,"href":"https:\/\/www.openbyt.com\/es\/wp-json\/wp\/v2\/posts\/1973\/revisions"}],"predecessor-version":[{"id":3191,"href":"https:\/\/www.openbyt.com\/es\/wp-json\/wp\/v2\/posts\/1973\/revisions\/3191"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.openbyt.com\/es\/wp-json\/wp\/v2\/media\/3107"}],"wp:attachment":[{"href":"https:\/\/www.openbyt.com\/es\/wp-json\/wp\/v2\/media?parent=1973"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.openbyt.com\/es\/wp-json\/wp\/v2\/categories?post=1973"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.openbyt.com\/es\/wp-json\/wp\/v2\/tags?post=1973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}