Odsyłam wiele linków, w tym:
- Moduł usług. Jak zbudować dane JSON z informacjami o sesji w celu utworzenia węzła?
- GitHub - Tworzenie węzła przy użyciu usług 6.3 REST
Próbowałem kilka sposobów POST nowego węzła do witryny Drupal, ale nie udało mi się. Utworzyłem próbkę CCK do przechowywania danych uczniów z imieniem, wiekiem, płcią, DOB i dodałem listę.
Zainstalowałem i skonfigurowałem moduł Usługi (D7) i utworzyłem punkt końcowy usługi w usługach.
Zgodnie z oczekiwaniami, GET to najprostszy sposób na uzyskanie szczegółowych informacji o węźle w JSON. http://localhost/drupal/services/node
po prostu wymieniono wszystkie węzły.
Nadal nie wiem, jak korzystać z metody POST .
Chciałbym szukać studentów, których imię zawiera John . Próbowałem
localhost/drupal/services/node&node[name]=john
. Użyłem wtyczki POST Man dla Chrome bez powodzenia. Próbowałem też innych sposobów.Próbowałem dodać nowego ucznia do witryny bez powodzenia.
Czy ktoś może mi pomóc, aby powyższe działało dobrze?
AKTUALIZACJA :
Próbowałem dodać nowe węzły typu artykułu . Działa dobrze. ale gdy próbuję dodać węzły typu Departament CCK Pokazuje „ s: 22:„ Sprawdzanie poprawności CSRF nie powiodło się ”; „ Oto zrzuty ekranu
Przejrzałem link https://drupal.org/node/2013781
Śledziłem session = session_name = session_id, ale nadal pojawia się błąd.
Odpowiedzi:
Mam nadzieję, że to ci pomoże
Dla Drupal 7
Narzędzia użyte:
Żądania HTTP
Aby wysyłać żądania HTTP, musisz użyć dodatku POSTER do przeglądarki Firefox .
Dwie najczęściej stosowane metody odpowiedzi na żądanie między klientem a serwerem to:
Po pobraniu dodatku. Otwórz Firefox -> Narzędzia -> Plakat
Pamiętaj, aby włączyć uwierzytelnianie sesji . Po prawidłowym skonfigurowaniu usług , przed utworzeniem węzła należy się zalogować . Po zalogowaniu możesz utworzyć węzły.
Do logowania użyj metody POST z adresem URL typu: http://XXXXXXXX.com/demo/rulebook/rulebook_endpoint/user/login
Jeśli jest to prawidłowy użytkownik , zwróci dane użytkownika z identyfikatorem sesji i nazwą . Jeśli nie jest poprawny, zwróci dostęp odmowy
Używając nazwy i identyfikatora sesji w POST HEADER, możemy tworzyć nowe węzły
Teraz po dodaniu HEADERA musisz wysłać żądanie HTTP POST i upewnić się, że użytkownik powinien mieć uprawnienia do utworzenia węzła.
Jeśli węzeł zostanie utworzony, otrzymasz odpowiedź z łączem do węzła
UWAGA: Jeśli chcesz uzyskać odpowiedź w JSON, zawsze powinieneś dołączyć .json na końcu adresu URL. np. http://XXXXXXXX.com/test/endpoint/user.json LUB http://XXXXXXXX.com/test/endpoint/node.json LUB http://XXXXXXXX.com/test/endpoint/user/user_id .json LUB http://XXXXXXXX.com/test/endpoint/node/node_id.json
źródło
Dla Drupal 7 i usług 7.x-3.x
Krok 1:
user.login
Wyślij prośbę o zasób, podając swoją nazwę użytkownika i hasło.Jeśli logowanie się powiedzie, otrzymasz obiekt odpowiedzi z 4 właściwościami:
Zrzut ekranu z listonosza Google Chrome
Krok 2: Wyślij żądanie do
node
2 nagłówkówZrzut ekranu z listonosza Google Chrome
źródło
Jeśli wykonasz test POST do interfejsu API REST , będziesz musiał umieścić wszystko w danych POST , a nie w adresie URL . W programie Listonosz możesz ustawić żądanie publikowania, a następnie wpisywać do
x-www-form-urlencoded
i poniżej, aby dodawać wartości danych. Nie zapomnij dodać statusu, identyfikatora użytkownika, języka, typu, tytułu, a następnie dodatkowych wartości. Adres URL zasobu powinien być tylkoHOST/REST_API_PATH/node
.źródło