Làm cách nào để xây dựng dữ liệu JSON với thông tin phiên để tạo nút?


11

Tôi đang sử dụng Drupal 7 và mô-đun Dịch vụ 7.x-3.2. Tôi đang sử dụng Postman cho Chrome (ứng dụng khách http) để kiểm tra API.

Những gì tôi muốn làm là đăng nhập người dùng và tạo một nút với người dùng bằng API dịch vụ Drupal.

Tôi đã đăng nhập người dùng bằng yêu cầu JSON POST đến http://example.com/api/user/login .

nhập mô tả hình ảnh ở đây

Tôi đã nhận được kết quả JSON thành công.

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

Sau đó, tôi đã cố gắng tạo một bài viết thông qua API bằng cách gửi yêu cầu JSON POST. (Người dùng có quyền tạo các nút Điều .)

nhập mô tả hình ảnh ở đây

Tôi đã nhận được một phản hồi trái phép 401 .

Tôi đoán tôi cần bao gồm thông tin cookie phiên để gửi yêu cầu POST, để tạo nút.

Tôi có thông tin phiên trả lại trước đó.

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

Làm cách nào tôi có thể sử dụng nó để tạo một yêu cầu JSON POST thành công để tạo một nút?

Câu trả lời:


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

chú ý không có dấu phẩy sau loại thẻ: bài viết để json của bạn hoạt động.


2

Hy vọng điều này sẽ giúp bạn,

  • Để thực hiện các yêu cầu HTTP, tôi sử dụng POSTER bổ trợ Firefox .

    nhập mô tả hình ảnh ở đây

    {
      "type" : "article",
      "title" : "Test article with language",
      "language" : "und"
    }
  • Nếu nút được tạo thành công, bạn sẽ nhận được phản hồi với một liên kết.

    nhập mô tả hình ảnh ở đây

  • Ví dụ

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

  • Bạn có thể tham khảo điều này

  • Tôi đã trả lời Làm thế nào để tôi ĐĂNG một nút mới bằng câu hỏi mô-đun Dịch vụ . Bạn có thể tham khảo để biết thêm thông tin.


-1

Bạn cần đặt cookie="sessionname=sessionid"giá trị trong các tiêu đề, trong đó tên phiên đến từ điểm cuối / người dùng / URL đăng nhập.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.