Mam problem z uzyskaniem przez usługi rozpoznania testu POST w pliku /comment.json. Mam podobny problem z tworzeniem węzłów.
Występuje błąd: HTTP / 1.1 406 Not Acceptable: brak wymaganego komentarza argumentu
Ta wiadomość pochodzi z pliku: /services/server/rest_server/include/RESTServer.inc W szczególności wiersze:
elseif (!isset($info['optional']) || !$info['optional']) {
return services_error(t('Missing required argument !arg', array(
'!arg' => $info['name'],
)), 406);
}
w zasadzie wydaje się, że brakuje argumentu „komentarz” (i nie jest opcjonalny).
To jeden z wielu bitów JSON, które mu podałem (komentując węzeł 8801)
{name:"test",language:"und",cid:"0",pid:"0",uid:"17593",nid:"8801",
comment:{subject:"Subject of the comment, if not entered it will be auto-generated",
comment_body:
{und:[
[{value:"value of the field comment in the comment, remember that in D7 we can create fields for comments too", format: "full_html"}]
]}}}
Jest całkowicie poprawny (na podstawie innych czeków JSON online). Pasuje również do tego, co widzę w przykładach testów usług na /services/test/functional/ServivesResourceCommentTests.test
zawsze jednak pojawia się ten sam komunikat o błędzie. Wygląda to podobnie do: Obiekt węzła json usługi Drupal 7
co również jest nierozwiązane. Czy ktoś może mi pomóc z właściwym formatowaniem JSON? Naprawdę wszystko, co chcę zrobić, to przekazać coś w stylu:
{ nid : 8081 , uid : 17593 ,comment:{comment_body:"test",subject:"test"}}
moje nagłówki http wydają się być prawidłowe, a użytkownik / login działał poprawnie.
Czy możesz mi powiedzieć, pod jaki adres URL chcesz opublikować ten ciąg json. Szukałem w Internecie jakiejś dokumentacji, jak utworzyć komentarz do węzła za pomocą usług 3. W dokumentacji tego modułu zupełnie brakuje. Próbowałem pisać do:
przyklad.com/api/node/{nid}/comments.json
example.com/api/comment.json
example.com/api/comment/create.json
Wydaje się, że nic nie działa. Zawsze pojawia się komunikat „404 Not Found: Nie można znaleźć kontrolera”
EDYCJA: jak tylko to opublikowałem, zacząłem działać. Jeśli to pomoże komukolwiek, kto opublikuje swój ciąg json do:
example.com/api/comment.json
Jeśli używasz Poster do testowania, ustaw typ zawartości na application / json. Podczas korzystania z jquery upewnij się, że ustawiłeś dataType: „json”.
źródło
Oto kilka przykładów tworzenia i aktualizowania węzłów i komentarzy w następującym formacie:
Węzeł Utwórz
? q = punkt końcowy / node.json
{„type”: „article”, „title”: „t8yZUfX2it”, „language”: „und”}
Aktualizacja węzła
? q = punkt końcowy / węzeł / 123.json
{„node”: {„nid”: „123”, „title”: „9AjrXJhWMI”, „language”: „und”}}
Komentarz Utwórz
? q = punkt końcowy / komentarz.json
{„subject”: „liJmJfpqMX”, „comment_body”: {„und”: [{„value”: „9DyaNZi3lA”}]}, „nid”: „18”}
Aktualizacja komentarza
? q = punkt końcowy / komentarz / 456.json
{cid: 456, „subject”: „hzU27R6daE”, „comment_body”: {„und”: [{„value”: „BqZU5DwArD”}]}, „nid”: „18”}
źródło
Podobne problemy występowały nawet podczas testowania plakatu z wtyczką Firefox. Okazuje się, że robiły to po prostu dodatkowe białe znaki i inne proste formatowanie (takie jak znaki specjalne). Oto lista tego, co działa w moich własnych testach na to, czego potrzebowałem:
CREATE USER WORKS = punkt końcowy / użytkownik
LOGIN WORKS = punkt końcowy / użytkownik / login
CREATE FILE WORKS = punkt końcowy / plik
CREATE NODE WORKS = punkt końcowy / węzeł
źródło