Un Endpoint en WordPress es una URL que nos permite personalizar y expandir la capacidad de la API. Actúa como un punto de acceso personalizado para interactuar con los datos del sitio. Esto significa que puedes definir rutas específicas para recuperar información adaptada a tus necesidades. WordPress nos ofrece una función específica para generar estos puntos de acceso, llamada register_rest_route.
¿Cómo utilizamos la función register_rest_route?
La función register_rest_route es fundamental para crear tus propios Endpoints. Esta función recibe tres parámetros principales:
Namespace: Este parámetro sustituirá la URI wp/v2 de manera predeterminada en WordPress. Actuará como tu espacio de trabajo para todas las rutas personalizadas.
Route: En este, defines los parámetros adicionales que quieres pedir en tu URL personalizada.
Callback Function: Esta es la función que procesará la petición y retornará los datos solicitados.
Existe un cuarto parámetro opcional, llamado override. Permite especificar si queremos que esta función sobreescriba otras con la misma ruta.
¿Cómo se crea un Endpoint en WordPress?
Para crear un Endpoint personalizado que llame a novedades en la página principal, sigue estos pasos:
Define una nueva función en tu archivo functions.php. Llama a esta función, por ejemplo, novedades_api.
Dentro define la función register_rest_route especificando:
Define la ruta que quieres llamar (en este caso, /novedades) añadiendo un atributo dinámico con una expresión regular /d+ para indicar que será un número.
Crea la función de callback, pedido_novedades, que recibe los datos y los procesa.
functionpedido_novedades($data){$cantidad=$data['cantidad'];// proceda a recuperar 'novedades' por la cantidad solicitada}
Finalmente, registra esta ruta en la interfaz de WordPress usando un add_action.
add_action('rest_api_init','novedades_api');
¿Cómo adaptar un AJAX a un Endpoint?
La implementación de un Endpoint en WordPress es similar a las peticiones AJAX, pero con REST API se trabaja de manera más eficiente.
Datos personalizados: A diferencia de AJAX que puede depender de admin-ajax.php, con API REST las respuestas son más estructuradas.
Respuestas estructuradas: Devuelve tus datos en formato JSON, lo cual es ideal para aplicaciones front-end.
Consejos prácticos para utilizar Endpoints en WordPress
Optimiza tus consultas: Siempre pasa solo la cantidad de datos que necesites.
Securidad primero: Valida y sanitiza las entradas del usuario antes de procesarlas.
Versiona tus namespaces: Así mantienes tu API limpia y organizada conforme evoluciones y cambies rutas.
Con estos consejos, estarás en un camino sólido para maximizar el potencial de tus Endpoints en WordPress. No dejes de explorar más sobre REST API, ya que ofrece un vasto campo para innovar y personalizar tu sitio de WordPress. Sigue aprendiendo y mejorando tus habilidades para construir aplicaciones web ricas y personalizadas utilizando WordPress como plataforma. ¡Ánimo y éxito en tu trayecto de aprendizaje!
WP provee una Función para generarlos:
register_rest_route()
Cada endpoint debe ser registrado para empezar a funcionar. Para su registro recibe 3 parámetros
1.** $namespace**,reemplaza el wp-b2 (por defecto de WP), espacio de trabajo para todas nuestras rutas personalizadas
2. $route, el resto de los parámetros que queremos recibir en esa URL
3. $args para indicar el método como se pueden conectar a nuestro url y función de callback que procesa la petición y da el retorno de los datos
4.** $override** que es opcional, permite definir si la función reemplaza a otras si tiene la misma ruta
Excelente review de la clase!! Gracias @Carlos Alberto Navarrete Ulloa !!!
¿Qué son y cómo funcionan los endpoints? en la API
Es una Url que nos permite personalizar y expandir las capacidades de la REST API de Wordpress, esto quiere decir que nos dará una nueva url que nos va a proveer datos personalizados.
Wordpress nos provee una función para generarlo:
register_rest_route() → Cada endpoint debe ser registrado para empezar a funcionar. Para su registro recibe 3 parámetros
$namespace → reemplaza el wp-b2 (por defecto de WP), espacio de trabajo para todas nuestras rutas personalizadas.
$route → el resto de los parámetros que queremos recibir en esa URL.
$args → Para indicar el método como se pueden conectar a nuestro url y función de callback que procesa la petición y da el retorno de los datos.
$override → que es opcional, permite definir si la función reemplaza a otras si tiene la misma ruta.
Esta sería la función que registraría nuestra nueva ruta:
Muy emocionado por ver los resultados!!!! Vamos por lo que sigue!!!
Muy claro. Gracias
Los endpoints son las URLs de un API o un backend que responden a una petición.
La diferencia entre entrypoint y endpoint es que los endpoints no están pensados para interactuar con el usuario final. Usualmente sólo devolverán json, o no devolverán nada.
Tengo un sitio en WP con el plugin Sportpress para equipos deportivos, lo que necesito es traerme datos de una API externa e integrarlos con el plugin. ¿Alguien me puede ayudar con eso? Claro que hay remuneración de por medio. Gracias...
Hola Jesús, cómo estás?
Tené en cuenta que muchas veces es complejo modificar un plugin (siempre depende de su estructura y de las características del mismo).
Recordá que si implementas cambios, luego no podrás seguir actualizandolo ya que se perderían tus cambios. Tal vez sea una mejor idea hacer un plugin separado.
Saludos!
hay forma en visual code de depurar los endpoints?
Hola Coco, cómo estás?
La mejor forma de probar los endpoints es con Postman.
De todas formas, te recomiendo utiliza xDebug para tener un mayor control sobre el flujo de compilación de PHP. Es bastante simple de instalar (depende del sistema operativo) y la última versión de Local lo trae como plugin para hacer una instalación rápida.
De esta forma podrás checkear lo que pasa en el front (desde Postman) y lo que pasa en el servidor (con xDebug).
Saludos!
Por que el primer parametro de register_rest_route(), es pg/v1?
PlatziGifts Version 1
Hola Geraldín!
Es nuestro path de inicio de nuestros endpoints.
Como dice danny, hacemos referencia al acrónimo de Platzi Gifts y a la versión 1.
Sin embargo podría hacerse con otra lógica. Esto es para continuar la lógica aplicada por WordPress, en la cual el path por defecto es wp/v2.
Saludos!
register_rest_route()
Cada endpoint debe ser registrado para
empezar a funcionar. Para su registro recibe
como parámetros $namespace, $route, $args y
$override.
Recordando que una API es un conjunto de definiciones y protocolos que se utiliza para desarrollar e integrar el software de las aplicaciones. API significa interfaz de programación de aplicaciones. Las API permiten que sus productos y servicios se comuniquen con otros, sin necesidad de saber cómo están implementados.
Si quieren saber más sobre Rutas y endpoints les recomiendo leer la documentación de wordpress de REST API, es muy amplia
Los endpoints permiten
personalizar y expandir
las capacidades de la
REST API
Hola a todos,
Soy nuevo en el desarrollo con WP y quisiera preguntar como hacer esta misma operación pero con una función JS.
Ya que me arroja este error:
{"code":"rest_missing_callback_param","message":"Par\u00e1metro(s) que falta(n): username, email, password","data":{"status":400,"params":["username","email","password"]}}
Hola Disson, cómo estás?
No puedo ver tu código, ya que el gist me de error 404, pero por lo que dice el mensaje el problema es que para conectarte con ese endpoint es necesario enviar como parámetro el email, el usuario y la contraseña.
Supongo que debe ser un endpoint de registro, ya que son los 3 parámetros obligatorios apra crear un nuevo usuario.
Saludos!
De forma general, deberemos desarrollar un conjunto de funciones (en este caso, las programaremos en PHP) que realicen las acciones que necesitamos. Estos procesos se denominan Endpoints y se implementarán mediante Callbacks. Un Callback será simplemente una función PHP.
Por otra parte, necesitamos que esas funciones puedan ser invocadas desde el exterior a través de una llamada http, por lo que tendremos que decirle a WordPress que registre una URL concreta, con o sin parámetros, que actúe como frontera entre nuestro WordPress y el resto del mundo. Para que estas funciones sean visibles desde el exterior, deberemos definir una «route«, que no será más que la URL a través de la cual estará disponible el servicio.
Callback
Para procesar una petición utilizaremos una
función de callback que nos permitirá
procesarla y retornar los datos en la ruta
especificada.