Jak zbudować dane JSON z informacjami o sesji w celu utworzenia węzła?


11

Korzystam z Drupal 7 i modułu Usługi 7.x-3.2. Korzystam z Postman for Chrome (klient http) do testowania interfejsu API.

Chcę zalogować się do użytkownika i utworzyć z nim węzeł za pomocą interfejsu API usługi Drupal.

Zalogowałem użytkownika za pomocą żądania JSON POST na stronie http://example.com/api/user/login .

wprowadź opis zdjęcia tutaj

Z powodzeniem uzyskałem wynik 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"
            }
        }
    }
}

Następnie próbowałem utworzyć artykuł za pośrednictwem interfejsu API, wysyłając żądanie JSON POST. (Użytkownik ma uprawnienia do tworzenia węzłów artykułów ).

wprowadź opis zdjęcia tutaj

Otrzymałem 401 nieautoryzowaną odpowiedź.

Chyba muszę podać informacje o pliku cookie sesji, aby wysłać żądanie POST, aby utworzyć węzeł.

Mam wcześniej zwrócone informacje o sesji.

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

Jak mogę go wykorzystać, aby pomyślnie utworzyć żądanie JSON POST dotyczące utworzenia węzła?

Odpowiedzi:


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

nie zauważaj przecinka po znaczniku type: article, aby twój json działał.


2

Mam nadzieję, że to ci pomoże

  • Aby wysyłać żądania HTTP, korzystam z dodatku POSTER do przeglądarki Firefox .

    wprowadź opis zdjęcia tutaj

    {
      "type" : "article",
      "title" : "Test article with language",
      "language" : "und"
    }
  • Jeśli węzeł zostanie utworzony pomyślnie, otrzymasz odpowiedź z linkiem.

    wprowadź opis zdjęcia tutaj

  • Przykłady

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

  • Można odnieść to

  • Odpowiedziałem: W jaki sposób mogę POST wysłać nowy węzeł za pomocą pytania modułu Usługi? Możesz uzyskać więcej informacji.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.