SlideShare une entreprise Scribd logo
1  sur  64
Télécharger pour lire hors ligne
WP API : LA REVIEW TECHNIQUE
WORDCAMP PARIS 2016
QUI SUIS-JE ?
Développeur PHP et JavaScript
Développeur avec WordPress depuis 6 ans
Directeur technique à @be_api
REST
Un ensemble de bonne pratiques pour la construction d'une
API
Chaque contenu est défini comme une ressource
Utilisation des verbes HTTP
Des "routes" claires et formatées
RÉCUPÉRER LES DERNIERS
ARTICLES
GET monsite.fr/wp­json/wp/v2/posts
RÉCUPÉRER LE CONTENU D'UN
ARTICLE
GET monsite.fr/wp­json/wp/v2/posts/15/
METTRE À JOUR UN CONTENU
POST|PUT|PATCH monsite.fr/wp­json/wp/v2/posts/15/
4.4 -> 4.5
LA WP API
Le projet
ou pas...
3 CLASSES 4.4
WP_REST_Server
WP_REST_Request
WP_REST_Response
WP_REST_REQUEST
Requête du client
Contient toutes les constantes magiques
Sanitize les données
Valide les paramètres
WP_REST_SERVER
Contient les verbes autorisés
Récupère une WP_REST_Request
dispatch sur les controllers
Attend une WP_REST_Response
Sert la WP_REST_Response
WP_REST_RESPONSE
Etend WP_HTTP_Response
Contient les données retournées par les controllers
Ajoute les "links" d'une ressource
collection
description du type de contenu
taxonomies
meta
...
source : https://hmn.md/uploads/2016/01/Talking-to-25-of-the-Web.pdf
CLASSES 4.5
Base : WP_REST_Controller
12 Classes pour les controlleurs des contenus
WP_REST_CONTROLLER
Classe abstraite
1 méthode à redéfinir : register_routes
12 méthodes implémentables
get_items
get_item
create_item
update_item
delete_item
....
RÉCUPÉRER UN CONTENU :
GET_ITEM
MAIS D'ABORD :
GET_ITEM_PERMISSIONS_CHECK
MAIS D'ABORD :
CHECK_READ_PERMISSIONS
MÊME PRINCIPE POUR
create
update
delete
QUELQUES MÉTHODES
IMPORTANTES
get_item_schema
prepare_item_for_response
prepare_links
GET_ITEM_SCHEMA
Basé sur http://json-schema.org/
Décrit l'objet retourné
Propriétés et fonctions
Filtre les valeurs au moment du retour
PREPARE_ITEM_FOR_RESPONSE
Récupère les données avant retour
Filtre en fonction du contexte (view, edit) et du schema
Ajoute les champs additionnels
Ajoute les 'links'
Retourne une WP_REST_Response
PREPARE_LINKS
Hypermedia (HAL)
Liaison forte entre les contenus
API auto découvrable
author, collection, enclosure, related, replies, up
?_embed
WP_REST_POSTS_CONTROLLER
ETENDABLE ET COMPATIBLE TOUT
TYPE DE CONTENU ET TAXONOMIE
TYPE DE CONTENU
show_in_rest : bool
rest_base : string
rest_controller_class : WP_REST_Posts_Controller
TAXONOMIE
show_in_rest : bool
rest_base : string
rest_controller_class : WP_REST_Terms_Controller
INITIALISATION DES ROUTES
create_initial_rest_routes
Types de contenus
Taxonomies
Champs personnalisés
Révisions
Collection des type de contenus
Collection des taxonomies
Collection des status
Utilisateurs
Commentaires
...
EXEMPLE PHP
ADAPTATION : BEA POST VIEW
COUNTER
Compteur de vues par jour, mois, semaine, année
admin-ajax.php vs Rest API
ROUTES
Namespace et version
POST monsite.fr/wp­json/bea­post­view­counter/1.0/{post_id}
GET monsite.fr/wp­json/bea­post­view­counter/1.0/{post_id}
BEA_PVC_COUNTER_REST_CONTRO
LLER
register_routes
get_item
create_item
create_item_permissions_check
prepare_item_for_database
monsite.fr/wp­json/
INTÉGRER DANS MA RÉPONSE POST
FIELD
monsite.fr/wp­json/wp/v2/posts/{post_id}/
EMBED
monsite.fr/wp­json/wp/v2/posts/{post_id}/?_embed  
monsite.fr/wp­json/bea­post­view­counter/1.0/{post_id}/
EXEMPLE JAVASCRIPT
CRÉATION : EDITEUR FRONT OFFICE
Modifier le titre et l'image depuis le front office
PHP
56 lignes, 1 classe
JAVASCRIPT
111 lignes bien indentées
wp-api.js + jQuery + Backbone + Underscore
RÉCUPÉRER LES DONNÉES
monsite.fr/wp­json/wp/v2/posts/{post_id}/
CLICK
FOCUSOUT
CONCLUSION
Etendable
Authentifications
WP CLI
Possibilités infinies
E-Commerce
Multilingue
Posts to posts
Advanced custom fields
Objet connecté
Dashboard dynamique
DES QUESTIONS ?

Contenu connexe

En vedette

Localize e seja localizado WordCamp BH
Localize e seja localizado WordCamp BHLocalize e seja localizado WordCamp BH
Localize e seja localizado WordCamp BH
WordCampBH
 

En vedette (20)

Conception de thèmes WordPress : construire et optimiser son espace de travail
Conception de thèmes WordPress : construire  et optimiser son espace de travailConception de thèmes WordPress : construire  et optimiser son espace de travail
Conception de thèmes WordPress : construire et optimiser son espace de travail
 
How to make your WordPress website multilingual - WordCamp Paris 2016
How to make your WordPress website multilingual - WordCamp Paris 2016How to make your WordPress website multilingual - WordCamp Paris 2016
How to make your WordPress website multilingual - WordCamp Paris 2016
 
Tester le niveau d'accessibilité d'un thème WordPress
Tester le niveau d'accessibilité d'un thème WordPressTester le niveau d'accessibilité d'un thème WordPress
Tester le niveau d'accessibilité d'un thème WordPress
 
Un design réussi
Un design réussiUn design réussi
Un design réussi
 
À quel prix vendre un site WordPress ?
À quel prix vendre un site WordPress ?À quel prix vendre un site WordPress ?
À quel prix vendre un site WordPress ?
 
Accelerating Sales - Marketing Lessons for Commercial WordPress Plugins
Accelerating Sales - Marketing Lessons for Commercial WordPress PluginsAccelerating Sales - Marketing Lessons for Commercial WordPress Plugins
Accelerating Sales - Marketing Lessons for Commercial WordPress Plugins
 
Les clés pour réussir son site WordPress - SeoMix au WordCamp Paris 2016
Les clés pour réussir son site WordPress - SeoMix au WordCamp Paris 2016Les clés pour réussir son site WordPress - SeoMix au WordCamp Paris 2016
Les clés pour réussir son site WordPress - SeoMix au WordCamp Paris 2016
 
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
 
Building an Autonomous Website
Building an Autonomous WebsiteBuilding an Autonomous Website
Building an Autonomous Website
 
Home viva do design da interface até a programação do sistema
Home viva  do design da interface até a programação do sistemaHome viva  do design da interface até a programação do sistema
Home viva do design da interface até a programação do sistema
 
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
Dicas para Workflow WordPress + JavaScript - WordCamp SalvadorDicas para Workflow WordPress + JavaScript - WordCamp Salvador
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
 
WordPress para Redatores, Jornalistas, Publicitários e Blogueiros
WordPress para Redatores, Jornalistas, Publicitários e BlogueirosWordPress para Redatores, Jornalistas, Publicitários e Blogueiros
WordPress para Redatores, Jornalistas, Publicitários e Blogueiros
 
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
 
Building Accessible Websites in WordPress - Birmingham WordCamp 2014
Building Accessible Websites in WordPress - Birmingham WordCamp 2014Building Accessible Websites in WordPress - Birmingham WordCamp 2014
Building Accessible Websites in WordPress - Birmingham WordCamp 2014
 
Como criar conteúdo de qualidade contínuamente sem burn-out
Como criar conteúdo de qualidade contínuamente sem burn-outComo criar conteúdo de qualidade contínuamente sem burn-out
Como criar conteúdo de qualidade contínuamente sem burn-out
 
Pesquisas com usuários, o que desenvolvedores também precisam saber!
Pesquisas com usuários, o que desenvolvedores também precisam saber! Pesquisas com usuários, o que desenvolvedores também precisam saber!
Pesquisas com usuários, o que desenvolvedores também precisam saber!
 
Customizing the WP Admin for fun and profit
Customizing the WP Admin for fun and profitCustomizing the WP Admin for fun and profit
Customizing the WP Admin for fun and profit
 
Localize e seja localizado WordCamp BH
Localize e seja localizado WordCamp BHLocalize e seja localizado WordCamp BH
Localize e seja localizado WordCamp BH
 
WordPress em sua estratégia de marketing
WordPress em sua estratégia de marketingWordPress em sua estratégia de marketing
WordPress em sua estratégia de marketing
 
Os recursos mais fodásticos do painel administrativo do WordPress
Os recursos mais fodásticos do painel administrativo do WordPressOs recursos mais fodásticos do painel administrativo do WordPress
Os recursos mais fodásticos do painel administrativo do WordPress
 

Similaire à Wordcamp paris 2016 - La REST API, une review technique

Mini projet individuel php
Mini projet individuel phpMini projet individuel php
Mini projet individuel php
Khadim Mbacké
 

Similaire à Wordcamp paris 2016 - La REST API, une review technique (20)

Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web services
 
Talk API Platform NextJS client generator
Talk API Platform NextJS client generatorTalk API Platform NextJS client generator
Talk API Platform NextJS client generator
 
REST : Modèle de maturité de Richardson, Pour évaluer la RESTitude de votre API
REST : Modèle de maturité de Richardson, Pour évaluer la RESTitude de votre APIREST : Modèle de maturité de Richardson, Pour évaluer la RESTitude de votre API
REST : Modèle de maturité de Richardson, Pour évaluer la RESTitude de votre API
 
Enrichir vos contenus Wordpress avec les API - WPTech 2015
Enrichir vos contenus Wordpress avec les API - WPTech 2015Enrichir vos contenus Wordpress avec les API - WPTech 2015
Enrichir vos contenus Wordpress avec les API - WPTech 2015
 
Services rest & jersey
Services rest & jerseyServices rest & jersey
Services rest & jersey
 
Web dev open door
Web dev   open doorWeb dev   open door
Web dev open door
 
Service WEB de type REST avec Java
Service WEB de type REST avec JavaService WEB de type REST avec Java
Service WEB de type REST avec Java
 
Spring Ioc.pdf
Spring Ioc.pdfSpring Ioc.pdf
Spring Ioc.pdf
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
 
eServices-Tp5: api management
eServices-Tp5: api managementeServices-Tp5: api management
eServices-Tp5: api management
 
Investir sur son API web (in French)
Investir sur son API web (in French)Investir sur son API web (in French)
Investir sur son API web (in French)
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
API : l'architecture REST
API : l'architecture RESTAPI : l'architecture REST
API : l'architecture REST
 
Mini projet individuel php
Mini projet individuel phpMini projet individuel php
Mini projet individuel php
 
cours j2ee -présentation
cours  j2ee -présentationcours  j2ee -présentation
cours j2ee -présentation
 
Les bases complètes d'un site WordPress optimisé
Les bases complètes d'un site WordPress optimiséLes bases complètes d'un site WordPress optimisé
Les bases complètes d'un site WordPress optimisé
 
Controller_Rest.pptx
Controller_Rest.pptxController_Rest.pptx
Controller_Rest.pptx
 

Wordcamp paris 2016 - La REST API, une review technique