J'ai référé de nombreux liens dont les suivants:
- Module de services. Comment construire les données JSON avec des informations de session pour créer un nœud?
- GitHub - Création d'un nœud à l'aide des services 6.3 REST
J'ai essayé plusieurs façons de POSTER un nouveau nœud sur un site Drupal, mais j'ai échoué. J'ai créé un exemple de CCK pour stocker les données des étudiants avec le nom, l'âge, le sexe, le DOB, et ajouté une liste.
J'ai installé et configuré le module Services (D7) et créé un point de terminaison de service au niveau des services.
Comme prévu, GET est le moyen le plus simple d'obtenir les détails d'un nœud en JSON. http://localhost/drupal/services/node
énumère simplement tous les nœuds.
Je n'arrive toujours pas à comprendre comment utiliser la méthode POST .
Je voudrais rechercher les étudiants dont le nom contient john . J'ai essayé
localhost/drupal/services/node&node[name]=john
. J'ai utilisé le plugin POST Man pour Chrome sans succès. J'ai également essayé d'autres moyens.J'ai essayé d'ajouter un nouvel étudiant au site sans succès.
Quelqu'un peut-il me guider pour que tout fonctionne correctement?
MISE À JOUR :
J'ai essayé d'ajouter de nouveaux nœuds de type article . Cela a bien fonctionné. mais quand j'essaye d'ajouter des noeuds de type Department CCK Il montre " s: 22:" La validation CSRF a échoué "; " Voici les captures d'écran
J'ai parcouru le lien https://drupal.org/node/2013781
J'ai suivi session = session_name = session_id mais j'obtiens toujours une erreur.
Réponses:
J'espère que cela vous aidera,
Pour Drupal 7
Les outils utilisés:
Demandes HTTP
Pour effectuer les requêtes HTTP, vous devez utiliser le module complémentaire Firefox POSTER .
Deux méthodes couramment utilisées pour une demande-réponse entre un client et un serveur sont:
Une fois le module complémentaire téléchargé. Ouvrez Firefox -> Outils -> Affiche
Assurez-vous d'activer l' authentification de session . Une fois les services correctement configurés, avant de créer le nœud, vous devez vous connecter . Une fois connecté, vous pouvez créer les nœuds.
Pour la connexion, utilisez la méthode POST, avec l'URL comme - http://XXXXXXXX.com/demo/rulebook/rulebook_endpoint/user/login
S'il s'agit d'un utilisateur valide, il renverra les détails de l'utilisateur avec l' ID et le nom de la session . S'il n'est pas valide, il retournera Accès refusé
En utilisant le nom et l'ID de la session dans le POST HEADER, nous pouvons créer de nouveaux nœuds
Maintenant, après avoir ajouté l'en-tête, vous devez effectuer une requête HTTP POST et vous assurer que l'utilisateur doit avoir les autorisations pour créer un nœud.
Si le nœud est créé, vous obtiendrez la réponse avec le lien de nœud
REMARQUE: Si vous souhaitez que la réponse soit en JSON, vous devez toujours ajouter .json à la fin de l'URL. par exemple., http://XXXXXXXX.com/test/endpoint/user.json OU http://XXXXXXXX.com/test/endpoint/node.json OU http://XXXXXXXX.com/test/endpoint/user/user_id .json OU http://XXXXXXXX.com/test/endpoint/node/node_id.json
la source
Pour Drupal 7 et Services 7.x-3.x
Étape 1: émettez une demande de publication de
user.login
ressource avec votre nom d'utilisateur et votre mot de passe.Si la connexion réussit, vous obtiendrez un objet de réponse avec 4 propriétés:
Capture d'écran de Google Chrome Postman
Étape 2: émettre une demande de publication
node
avec 2 en-têtesCapture d'écran de Google Chrome Postman
la source
Si vous effectuez un POST sur l' API REST, vous devrez tout mettre en données POST , pas en URL . Dans Postman, vous pouvez définir la demande pour publier, puis saisir
x-www-form-urlencoded
et en dessous que vous pouvez ajouter vos valeurs de données. N'oubliez pas d'ajouter le statut, l'uid, la langue, le type, le titre , puis les valeurs supplémentaires. L'URL de la ressource doit être uniquementHOST/REST_API_PATH/node
.la source