如何使用用于创建节点的会话信息构造JSON数据?


11

我正在使用Drupal 7和服务模块7.x-3.2。我正在使用Postman for Chrome(http客户端)来测试API。

我想做的是登录用户,并使用Drupal服务API与该用户创建一个节点。

我使用JSON POST请求登录到http://example.com/api/user/login

在此处输入图片说明

我成功获取了JSON结果。

{
    "sessid": "KrZjlcY3rFr8v6iLoskcVQN9DmDWsg5yZqIjBeydEBY",
    "session_name": "SESS9fe39db36ccd7afd64e034fefa0129e1",
    "user": {
        "uid": "31",
        "name": "test_user",
        "mail": "services_user_2@example.com",
        "theme": "",
        "signature": "",
        "signature_format": "filtered_html",
        "created": "1352985941",
        "access": "1352991170",
        "login": 1352991510,
        "status": "1",
        "timezone": "",
        "language": "",
        "picture": null,
        "init": "services_user_2@example.com",
        "data": false,
        "roles": {
            "2": "authenticated user"
        },
        "rdf_mapping": {
            "rdftype": [
                "sioc:UserAccount"
            ],
            "name": {
                "predicates": [
                    "foaf:name"
                ]
            },
            "homepage": {
                "predicates": [
                    "foaf:page"
                ],
                "type": "rel"
            }
        }
    }
}

然后,我尝试通过发送JSON POST请求通过API创建文章。(用户有权创建Article节点。)

在此处输入图片说明

我收到401未经授权的回应。

我想我需要包括会话cookie信息以发送POST请求,以创建一个节点。

我有先前返回的会话信息。

"sessid": "KrZjlcY3rFr8v6iLoskcVQN9DmDWsg5yZqIjBeydEBY",
"session_name": "SESS9fe39db36ccd7afd64e034fefa0129e1",

我如何利用它来发出成功的JSON POST请求以创建节点?

Answers:


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

请注意type:article标记后没有逗号,以便json可以正常工作。


2

希望这个能对您有所帮助,

  • 为了发出HTTP请求,我使用Firefox附加POSTER

    在此处输入图片说明

    {
      "type" : "article",
      "title" : "Test article with language",
      "language" : "und"
    }
  • 如果成功创建了节点,您将获得带有链接的响应。

    在此处输入图片说明

  • 例子

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

  • 你可以参考这个

  • 我已经回答了如何使用服务模块问题发布新节点。您可以参考以获取更多信息。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.