Як побудувати дані JSON з інформацією про сеанс для створення вузла?


11

Я використовую Drupal 7 та модуль Services 7.x-3.2. Я використовую Postman для Chrome (http-клієнт) для тестування API.

Що я хочу зробити - це увійти до користувача та створити вузол з користувачем за допомогою API служби Drupal.

Я ввійшов до користувача із запитом 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"
            }
        }
    }
}

Потім я спробував створити статтю через API, надіславши запит JSON POST. (Користувач має дозвіл на створення вузлів статті .)

введіть тут опис зображення

Я отримав 401 несанкціоновану відповідь.

Я думаю, мені потрібно включити інформацію про файли cookie сеансу, щоб надіслати POST-запит, щоб створити вузол.

Я повернув інформацію про сеанс раніше.

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

Як я можу використовувати його для створення успішного запиту JSON POST для створення вузла?

Відповіді:



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

  • Ви можете посилатися на це

  • Я відповів Як я розміщую новий вузол, використовуючи питання модуля Services . Ви можете звернутися за додатковою інформацією.


-1

Потрібно встановити cookie="sessionname=sessionid"значення в заголовках, де ім'я сеансу походить від кінцевої точки / користувача / вхідної URL-адреси.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.