J'utilise Drupal 7 et le module Services 7.x-3.2. J'utilise Postman pour Chrome (un client http) pour tester l'API.
Ce que je veux faire, c'est connecter un utilisateur et créer un nœud avec l'utilisateur à l'aide de l'API de service Drupal.
J'ai connecté l'utilisateur avec JSON POST demande à http://example.com/api/user/login .
J'ai réussi à obtenir le résultat JSON.
{
"sessid": "KrZjlcY3rFr8v6iLoskcVQN9DmDWsg5yZqIjBeydEBY",
"session_name": "SESS9fe39db36ccd7afd64e034fefa0129e1",
"user": {
"uid": "31",
"name": "test_user",
"mail": "[email protected]",
"theme": "",
"signature": "",
"signature_format": "filtered_html",
"created": "1352985941",
"access": "1352991170",
"login": 1352991510,
"status": "1",
"timezone": "",
"language": "",
"picture": null,
"init": "[email protected]",
"data": false,
"roles": {
"2": "authenticated user"
},
"rdf_mapping": {
"rdftype": [
"sioc:UserAccount"
],
"name": {
"predicates": [
"foaf:name"
]
},
"homepage": {
"predicates": [
"foaf:page"
],
"type": "rel"
}
}
}
}
J'ai ensuite essayé de créer un article via l'API en envoyant la requête JSON POST. (L'utilisateur a la permission de créer Article nœuds.)
J'ai reçu une réponse 401 non autorisée .
Je suppose que je dois inclure les informations de cookie de session pour envoyer la demande POST, pour créer un nœud.
J'ai les informations de session précédemment retournées.
"sessid": "KrZjlcY3rFr8v6iLoskcVQN9DmDWsg5yZqIjBeydEBY",
"session_name": "SESS9fe39db36ccd7afd64e034fefa0129e1",
Comment puis-je l'utiliser pour réussir une requête JSON POST pour la création d'un nœud?
{
"title": "Just another drupal Post",
"type": "Article"
}
remarquez pas de virgule après la balise type: article pour que votre json fonctionne.
J'espère que cela vous aidera,
Pour faire les requêtes HTTP, j'utilise le module complémentaire Firefox POSTER .
{
"type" : "article",
"title" : "Test article with language",
"language" : "und"
}
Si le nœud est créé avec succès, vous obtiendrez une réponse avec un lien.
Exemples
{
"type": "article",
"title": "Test article",
"body": {
"und": [{
"value": "test body!"
}]
},
"language" : "und"
}
{
"title":"Review",
"type":"establishment_review",
"field_establishment":[
{
"nid":{
"nid":"[nid:26686]"
}
}
],
"field_fivestar_value":[
{
"rating":"20",
"target":"0"
}
],
"field_review":[
{
"value":"comments about the restaurant"
}
]
}
Vous pouvez vous référer ceci
J'ai répondu Comment puis-je POST un nouveau nœud en utilisant le module Services question. Vous pouvez vous référer pour plus d'informations.