App todo gas: WordPress no es solo para web
Según la definición de Wikipedia:
“La interfaz de programación de aplicaciones, abreviada como API del inglés:
Application Programming Interface,​ es un conjunto de subrutinas, funciones y
procedimientos (o métodos, en la programación orientada a objetos) que
ofrece cierta biblioteca para ser utilizado por otro software como una capa de
abstracción.
Una API representa la capacidad de comunicación entre componentes de
software.”
¿Qué es una API-Rest?
¿Qué es una API-Rest?
Por ejemplo:
https://2018.sevilla.wordcamp.org/wp-json/wp/v2/posts
“A las URLs que reciben o retornan información
de un Web API se les llama endpoints”
¿Qué es un End-Point?
Te devuelve todos los tipos de type post que hay en el WordPress que sean
visibles para la API
Get estados
Devuelve los estados de las entradas
Get comentarios
Devuelve los comentarios
/wp-json/wp/v2/types
/wp-json/wp/v2/statuses
Get tipos
/wp-json/wp/v2/comments
Devuelve todas las taxonomías hasta de los custom post type
Get categoría
Devuelve las categorías
Get etiquetas
Devuelve las etiquetas
/wp-json/wp/v2/taxonomies
/wp-json/wp/v2/categories
/wp-json/wp/v2/tags
Get taxonomía
Get usuario
./wp-json/wp/v2/media
Devuelve los archivos subidos a medios
Get páginas
Devuelve las páginas
./wp-json/wp/v2/pages
Get medios
./wp-json/wp/v2/users/<id_usuario>
./wp-json/wp/v2/posts
Get entrada ./wp-json/wp/v2/post/<id>
Devuelve los 10 últimos artículos de WordPress
*Para poder traer más entradas le añadimos ./wp-json/wp/v2/posts/?per_page=50
Devuelve la entrada con el ID que le hemos indicado
El límite está en 100
Get entradas
Get entradas ./wp-json/wp/v2/posts
https://2018.sevilla.wordcamp.org/wp-json/wp/v2/posts
./wp-json/wp/v2/posts
ID del post
https://2018.sevilla.wordcamp.org/wp-json/wp/v2/posts
Get entradas
./wp-json/wp/v2/posts
https://2018.sevilla.wordcamp.org/wp-json/wp/v2/posts
Contenido
Get entradas
URL Entrada
./wp-json/wp/v2/posts
https://2018.sevilla.wordcamp.org/wp-json/wp/v2/posts
ID de usuario autor
Get entradas
./wp-json/wp/v2/users/<id_usuario>
https://2018.sevilla.wordcamp.org/wp-json/wp/v2/users/7425830
Get usuario
./wp-json/wp/v2/users/<id_usuario>
https://2018.sevilla.wordcamp.org/wp-json/wp/v2/users/7425830
Nombre usuario
URL web
Get usuario
./wp-json/wp/v2/users/<id_usuario>
https://2018.sevilla.wordcamp.org/wp-json/wp/v2/users/7425830
URL Avatar
Get usuario
En móvil
/wp/v2/users/7425830
/wp/v2/posts
Campo date
Campo name
Campo except Campo title
Campo _links > wp:attachment
Post ID
En móvil https://2018.sevilla.wordcamp.org/wp-json
Campo author
/wp/v2/posts/3
Campo _links > wp:attachment
Campo content
Campo title
/wp/v2/users/7425830
Campo name
En móvil https://2018.sevilla.wordcamp.org/wp-json
Campo author
Campo date
Campo avatars_URL > 48
Rutas especiales donde vamos a poder definir nuestras
propias funciones y ajustar las llamadas a nuestras
necesidades.
Custom endpoint
Crear los custom endpoint en
un plugin. ¡Nunca en el tema!
register_rest_route( 'wordapp/v1', '/noticias', array(
'methods' => 'GET',
'callback' => 'listar_noticias',
) );
Registrar una ruta propia:
Método de llamada
Función que se
ejecutará
Custom endpoint
Ruta
/wp-json/wordapp/v1/noticiasURL resultante
function listar_noticias(){
$listado_noticias = array();
return $listado_noticias;
}
Función que ejecuta la llamada al endpoint:
Construir un custom endpoint
function listar_noticias(){
$listado_noticias = array();
$args = array(
'numberposts' => 10
);
$posts_array = get_posts( $args );
return $listado_noticias;
}
Construir un custom endpoint
function listar_noticias(){
...
foreach ($posts_array as $entrada){
array_push($listado_noticias,[
]);
}
return $listado_noticias;
}
Construir un custom endpoint
function listar_noticias(){
...
foreach ($posts_array as $entrada){
array_push($listado_noticias,[
‘ID’ => $entrada -> ID,
]);
}
return $listado_noticias;
}
Construir un custom endpoint
function listar_noticias(){
...
foreach ($posts_array as $entrada){
array_push($listado_noticias,[
‘ID’ => $entrada -> ID,
'fechaEntrada' => $entrada ->post_date,
'tituloEntrada' => $entrada ->post_title,
'extractoEntrada' => $entrada ->post_excerpt,
‘nombreAutor’ => get_author_name( $entrada -> post_author),
]);
}
return $listado_noticias;
}
Construir un custom endpoint
register_rest_route( 'WordAPP/v1', '/noticia/(?P<id>d+)', array(
'methods' => 'GET',
'callback' => 'noticia_por_id',
) );
Con parámetros en la URL
Parámetro
Construir un custom endpoint
/wp-json/wordapp/v1/noticia/<id>URL resultante
Método de
llamada
Función que se
ejecutará
Ruta
function noticia_por_id ($data){
$datosNoticia=array();
return $datosNoticia;
}
Construir un custom endpoint
function noticia_por_id($data){
$datosNoticia=array();
$noticia=get_post($data[‘id’]);
return $datosNoticia;
}
Construir un custom endpoint
function noticia_por_id($data){
...
$datosNoticia=[
'fechaEntrada' => $noticia ->post_date,
‘tituloEntrada' => $noticia ->post_title,
'contenidoEntrada' => $noticia ->post_excerpt,
‘nombreAutor’ => get_author_name( $noticia -> post_author),
‘avatarURL’ => get_avatar_url( $noticia -> post_author ),
];
return $datosNoticia;
}
Construir un custom endpoint
Plugin preparado con CE
https://github.com/VictorSTM/PluginAPIWCSevilla
Plugin con los custom endpoints
programados en:
https://wplovescarla.com/
Paco Marchante Víctor Sáenz
@pacomarchante @victorsaenzTM
¡Gracias!

Más contenido relacionado

PDF
Laravel vc
PPTX
Objetos Implicitos
PDF
Api De Google Calendar
ODP
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
PDF
Servicios web
PDF
Clase 5 controller
PPTX
Evidencia sesión virtual “funciones php”
Laravel vc
Objetos Implicitos
Api De Google Calendar
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Servicios web
Clase 5 controller
Evidencia sesión virtual “funciones php”

Similar a App todo gas: WordPress no es solo para web (20)

ODP
Desarrollando un API con REST
PDF
Rest clase 4 - curso front-end 2014 - open webinars
PDF
RESTful Para todos by Diego Sapriza
PDF
5.2. api-rest
PDF
REST - deSymfony2012
PDF
WORKSHOP I: Introducción a API REST
PDF
T final modulo_1
PPTX
S4-PD2-2.2. REST
PDF
Rest Conf Rails
PPTX
Taller definición de apis
PPTX
S4-PD2-REST-REST FULL
PPTX
Tecnologias Web Semantica
PDF
PDF
Paper ieee
PDF
Postman.pdf
PPTX
Desarrollo dirigido por modelo de servicios web REST
PDF
DOCX
Arquitectura Rest
Desarrollando un API con REST
Rest clase 4 - curso front-end 2014 - open webinars
RESTful Para todos by Diego Sapriza
5.2. api-rest
REST - deSymfony2012
WORKSHOP I: Introducción a API REST
T final modulo_1
S4-PD2-2.2. REST
Rest Conf Rails
Taller definición de apis
S4-PD2-REST-REST FULL
Tecnologias Web Semantica
Paper ieee
Postman.pdf
Desarrollo dirigido por modelo de servicios web REST
Arquitectura Rest
Publicidad

Último (20)

PDF
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...
DOCX
Trabajo informatica joel torres 10-.....................
DOCX
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
PPTX
Uso responsable de la tecnología - EEST N°1
DOCX
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
PPTX
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
PDF
Final Tecno .pdfjdhdjsjdhsjshshhshshshhshhhhhhh
PDF
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
PPTX
Curso de generación de energía mediante sistemas solares
PDF
Distribucion de frecuencia exel (1).pdf
DOCX
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
PDF
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
PPTX
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
PDF
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
PPTX
Tema 1 Taller de tecnologia y proceso tecnologico.pptx
PPTX
la-historia-de-la-medicina Edna Silva.pptx
PPTX
Reconocimiento-Automatico-de-Placas-Vehiculares-con-IA.pptx
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
DOCX
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...
Trabajo informatica joel torres 10-.....................
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
Uso responsable de la tecnología - EEST N°1
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
Final Tecno .pdfjdhdjsjdhsjshshhshshshhshhhhhhh
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
Curso de generación de energía mediante sistemas solares
Distribucion de frecuencia exel (1).pdf
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
Tema 1 Taller de tecnologia y proceso tecnologico.pptx
la-historia-de-la-medicina Edna Silva.pptx
Reconocimiento-Automatico-de-Placas-Vehiculares-con-IA.pptx
TRABAJO DE TECNOLOGIA.pdf...........................
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
Presentacion de Alba Curso Auditores Internos ISO 19011
Publicidad

App todo gas: WordPress no es solo para web