Comment puis-je construire les données JSON avec des informations de session pour créer un nœud?

11

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 du service Drupal.

J'ai connecté l'utilisateur avec la demande JSON POST à http://example.com/api/user/login .

entrez la description de l'image ici

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"
            }
        }
    }
}

Ensuite, j'ai essayé de créer un article via l'API en envoyant la demande JSON POST. (L'utilisateur est autorisé à créer des nœuds d' article .)

entrez la description de l'image ici

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 effectuer une requête POST JSON réussie pour créer un nœud?

gilzero
la source

Réponses:

2
{
   "title": "Just another drupal Post",
   "type": "Article"
}

remarquez pas de virgule après la balise type: article pour que votre json fonctionne.

Sunny Patel
la source
2

J'espère que cela vous aidera,

  • Pour effectuer les requêtes HTTP, j'utilise le module complémentaire Firefox POSTER .

    entrez la description de l'image ici

    {
      "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.

    entrez la description de l'image ici

  • 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 référer ceci

  • J'ai répondu Comment puis-je POSTER un nouveau nœud à l'aide de la question du module Services . Vous pouvez vous référer pour plus d'informations.

inizio
la source
-1

Vous devez définir la cookie="sessionname=sessionid"valeur dans les en-têtes, où le nom de session provient de l'URL du point de terminaison / utilisateur / connexion.

Gholave ​​Ranjeett Vijaykumar
la source