Matias Poje
muy floja la explicación
¿Cómo crear una API REST personalizada en WordPress?
WordPress, tan versátil como siempre, permite a los desarrolladores crear APIs REST utilizando sus propias herramientas y funcionalidades integradas. Es ideal para quienes desean tener control sobre el acceso a sus datos y ofrecer experiencias personalizadas. Increíblemente, WordPress ofrece capacidades de API REST por defecto, pero si buscas ir más allá, descubre cómo puedes crear tu propia API personalizada en una plataforma que ya lidera el mundo de los CMS.
¿Qué ofrece la API REST por defecto de WordPress?
WordPress al ser instalado con un tema, ya genera una API REST con funcionalidades integradas. Permite interactuar y extraer información de:
Los datos generados por estas entidades se pueden consumir sin necesidad de escribir código adicional, utilizando simplemente el endpoint wp-json. Esto es ideal para quienes buscan realizar consultas básicas o interfases ligeras.
¿Cómo comenzar a crear una API REST en WordPress?
Empezar a crear tu propia API REST en WordPress implica definir una ruta personalizada y realizar configuraciones en el archivo del plugin. Sigue estos pasos para iniciar:
Creación de la carpeta y archivo para la API:
API dentro de includes.API_registro.php.Incorporación del archivo en el plugin principal:
require_once para incluir el archivo en el plugin principal.plugin_dir_path.require_once plugin_dir_path(__FILE__) . 'includes/API/API_registro.php';
register_rest_route de WordPress.¿Cómo se define una ruta y argumentos en la API?
Al crear una ruta en la API REST, debes definir parámetros específicos que dirigirán el comportamiento y la lógica. Aquí te mostramos cómo puedes estructurarlo:
Definir el namespace: Es la base de la URL y ayuda a organizar funcionalidades.
wp-json/mi-plugin/v1.Definir el route: Es la parte específica de la URL bajo el namespace.
registro.Configurar argumentos: Añadir métodos HTTP y callbacks.
methods: Determina si es accesible por GET, POST, etc.callback: Función que gestiona la lógica de la ruta.add_action('rest_api_init', function() { register_rest_route('mi-plugin/v1', '/registro', array( 'methods' => 'GET', 'callback' => 'mi_callback_funcion', )); });
¿Cómo crear la lógica de la API?
Una vez definida la ruta, necesitas añadir la lógica que procesará las solicitudes. Esto exigiría escribir una función de "callback".
WP_REST_Request como argumento.// Ejemplo simple de Callback function mi_callback_funcion($request) { return new WP_REST_Response("Mi primer API", 200); }
¿Cómo gestionar parámetros y devolver respuestas?
La API te permite interactuar con los parámetros recibidos en la petición. Aquí te mostramos cómo devolverlos:
$request->get_params() para acceder a ellos.function mi_callback_funcion($request) { $params = $request->get_params(); // Accede a los parámetros return new WP_REST_Response($params, 200); }
Con estas configuraciones, tu API personalizada estará lista para usarse. Explora y ajusta estos ejemplos para adaptarlos a tus necesidades y crea soluciones más avanzadas dentro del ecosistema WordPress. ¡Adelante, y libera todo el potencial de tus desarrollos!
Matias Poje
muy floja la explicación
César Luis Amundaray Rodríguez
Falta como un curso o clase que explique mejor las bases de esto.
Diego Castro
Hola Cristian. Tengo este problema:
Este es mi endpoint:
Cristian Ramanzin
Profesor¡Hola!
Por lo que veo en tu código, la URL debería ser "https://alfa.local/wp-json/alfa/registro"
Avisame si eso te funcionó.
Julián Andrés Loaiza Ospina
Osvaldo Del Rosario
es correcto que la url salga de esta forma?
pensaba que el ".php" no deberia salir...
Julian David Sierra Cabrera
No.
Facundo Oubel
TENGO ESTE PROBLEMA
Cristian Ramanzin
Profesor¡Hola, Facu! Eso no es un error, en esa URL te devuelve en formato JSON toda la info del api rest de wordpress. ¿Que querías consultar en esa URL?
Andrés Vega
Me gustaría saber si el profesor utiliza alguna extension en Chrome para que la respuesta Json se visualice mas organizada con la de el.
Jorge Paiva
Me gustaría que mi método retorne esta estructura:
{
"front": {
"HTML": [],
"CSS": [],
"JavaScript": []
},
"back": {
"PHP": [],
"SQL": []
},
"sql": {
"t-sql": [],
"p/sql": []
}
}
Cualquier idea de cómo almacenar esa data será bienvenida.
Benjamin Silva
El esfuerzo en comprender y la necesidad de resolver una situación particular me han permitido llegar hasta acá y comprender lo que está ocurriendo.
Ahora bien, tengo un problema por resolver... creo que es incluso más sencillo que estos niveles profundos, pero estoy varado.
Hay una API que me entrega unos valores, pero para indagarla debo enviarle la URL final, como la que el profesor aca escribió manualmente para ejecutra el metodo GET.
En mi caso, requiero preguntar al usuario un valor vía formulario y ese valor agregarlo a la cadena de la solicitud del Metodo GET antes de hacer el llamado al proveedor de la API. ?
Toda ayuda es valorada... Gracias Profe y compañeros.
Renan Alberto Salazar Salazar
Me gustó mucho esta clase. bastante interesante lo que se explica sobre la API REST de Wordpress.
Andrés Vega
Excelente clase.
Registrando un API
plugin-login.php
require_once plugin_dir_path(__FILE__)."/includes/API/api-registro.php";
/includes/API/api-registro.php
<?php //Contenido estático function plz_registro_callback(){ return "Mi primer API"; } function plz_api_registro(){ register_rest_route( "plz", "registro", array( 'methods' => 'GET', 'callback' => 'plz_registro_callback' ) ); } add_action("rest_api_init", "plz_api_registro");
La función plz_registro_callback() también puede devolver contenido lógico (arrays, usuarios, etc) En este caso devuelve los argumentos del GET pasados por la URL.
function plz_registro_callback($request){ return $request->get_params(); }
Resultado en el navegador:
// 20220207123824 ///wp-json/plz/registro?Nombre=julian&Apellido=Loaiza { "Nombre": "julian", "Apellido": "Loaiza" }