> Mode opératoire pour activer et configurer le module REST Drupal 7.34
1.
Récupérer le core Drupal 7.34
https://www.drupal.org/drupal-7.34-release-notes
2.
Installer Drupal en configuration “standard”
Ici un lien concernant l’installation seule :
3.
Mettre en place le vhost pour redirection (facultatif mais démo friendly,
“drupal-example.com” dans mon cas)
4.
Activer le module REST :
4.1.
Télécharger les modules suivants :
4.1.1.
CTools
(7.x-1.2)
4.1.2.
Devel
(7.x-1.3)
4.1.3.
Libraries
(7.x-2.2)
4.1.4.
OAuth
(7.x-3.1)*
4.1.5.
Services
(7.x-3.3)
4.1.6.
Services Views
(7.x-1.0-beta2+10-dev)
4.1.7.
Views
(7.x-3.5)
4.2.
Les extraire dans sites/all/modules
4.3.
Dans l’administration, accéder à admin/modules, puis activer les modules
suivants :
4.3.1.
Chaos tools
4.3.2.
Libraries
4.3.3.
Services
4.3.4.
Services Views
4.3.5.
REST Server
4.3.6.
Views
4.3.7.
Views UI
5.
Ajouter un Service dans Services UI dans l’administration en accédant à
/Structure/Services/Add, renseigner les champs (cf screenshot) et sauvegarder.
note : dans ma compréhension l’api REST Drupal n’est pleinement accessible que pour un
utilisateur authentifié.
1er champ : jio
2nd champ : REST
3ème champ : api/jio
Champ Session Authentification coché
6.
Configurer les ressources accessibles en cliquant sur “edit ressources”, cocher “files” et
“user” puis sauvegarder
7.
Tester l’accès à l’endpoint
requête GET sur
http://
<domain>
/?q=
<endpoint>
/
8.
Ajouter le verbe “OPTIONS”
Afin de permettre les requêtes sur l’api depuis les navigateurs modernes, il faut ajouter
le verbe “OPTIONS” aux verbes exposés par l’API REST Drupal. En effet, les navigateurs
modernes effectuent une requête discrète de type “OPTIONS” dite “pre-flight” afin de
valider que la requête GET suivante est possible.
Dans le .htaccess, ajouter :
# Send a 200 HTTP response on OPTIONS request
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule .* / [R=200,L]
dans un bloc :
<IfModule mod_headers.c></IfModule>
9.
Optionnel : activer les CORS
9.1.
Méthode .htaccess
Ajouter en fin de fichier :
<IfModule mod_headers.c>
SetEnvIf Origin "^http(s)?://(.+\.)?([NOMDEDOMAINE])$" DYN_ORIGIN=$0
Header set Access-Control-Allow-Origin %{DYN_ORIGIN}e
Header always set Access-Control-Allow-Methods "GET, PUT, POST, OPTIONS, DELETE"
Header always set Access-Control-Allow-Credentials true
Header always set Access-Control-Allow-Headers "Authorization, Origin, Content-Type,
X-CSRF-Token"
</IfModule>
9.2.
méthode module CORS
Télécharger le module
CORS
(7.x-1.3)
Les extraire dans sites/all/modules
Activer dans admin/module
accéder à la configuration du module via configuration/CORS et inscrire dans la vue :
*|*|GET, PUT, POST, DELETE, OPTIONS|Authorization, Accept, Origin, Content-Type, X-CSRF-Token|true