Estou tendo problemas para obter serviços para reconhecer um POST para /comment.json. Eu tenho um problema semelhante ao criar nós também.
A seguir está o erro que eu recebo: HTTP / 1.1 406 Não aceitável: Faltando comentário de argumento obrigatório
Esta mensagem vem do arquivo: /services/server/rest_server/includes/RESTServer.inc Especificamente, as linhas:
elseif (!isset($info['optional']) || !$info['optional']) {
return services_error(t('Missing required argument !arg', array(
'!arg' => $info['name'],
)), 406);
}
basicamente, parece pensar que o argumento "comment" está ausente (e não é opcional).
Este é um dos muitos bits de JSON que eu forneci (postando um comentário no nó 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"}]
]}}}
É perfeitamente válido (com base em outras verificações JSON online). Ele também corresponde ao que vejo nos exemplos de teste de serviços em /services/test/functional/ServivesResourceCommentTests.test
no entanto, sempre recebo a mesma mensagem de erro. Isso parece semelhante a: Drupal 7 services json node object
que também não foi resolvido. Alguém pode me ajudar com a formatação JSON adequada? Realmente, tudo o que eu quero fazer é passar algo como:
{ nid : 8081 , uid : 17593 ,comment:{comment_body:"test",subject:"test"}}
meus cabeçalhos http parecem ok e o usuário / login funcionou bem.
Você pode me dizer para qual URL você postaria essa string json. Eu tenho procurado por toda a Web alguma documentação sobre como criar um comentário em um nó usando os serviços 3. A documentação deste módulo está completamente ausente. Tentei postar em:
example.com/api/node/{nid}/comments.json
example.com/api/comment.json
example.com/api/comment/create.json
Nada parece funcionar. Sempre recebo "404 não encontrado: não foi possível encontrar o controlador"
EDIT: assim que postei isso, consegui que funcionasse. Se isso ajudar alguém, você postará sua string json em:
example.com/api/comment.json
Se você estiver usando o Poster para testar, defina o tipo de conteúdo como application / json. Ao usar o jquery, certifique-se de definir dataType: 'json'.
fonte
Aqui estão alguns exemplos para criar e atualizar nós e comentários no seguinte formato:
Criação de Nó
? q = ponto final / node.json
{"type": "article", "title": "t8yZUfX2it", "language": "und"}
Atualização do nó
? q = ponto final / nó / 123.json
{"node": {"nid": "123", "title": "9AjrXJhWMI", "language": "und"}}
Criar comentário
? q = ponto final / comment.json
{"assunto": "liJmJfpqMX", "comment_body": {"und": [{"value": "9DyaNZi3lA"}]}, "nid": "18"}
Atualização de comentários
? q = ponto final / comentário / 456.json
{cid: 456, "subject": "hzU27R6daE", "comment_body": {"und": [{"value": "BqZU5DwArD"}]}, "nid": "18"}
fonte
Eu estava tendo problemas semelhantes mesmo quando apenas testava com o poster do plugin do Firefox. Acontece que foram simplesmente os espaços em branco extras e alguma outra formatação simples (como escapes) que estava fazendo isso. Aqui está uma lista do que funciona em meus próprios testes para o que eu precisava:
CRIAR TRABALHOS DE USUÁRIO = terminal / usuário
TRABALHOS DE LOGIN = terminal / usuário / login
CREATE FILE WORKS = ponto final / arquivo
CREATE NODE WORKS = nó de extremidade / nó
fonte