Tengo problemas para obtener servicios para reconocer una POST a /comment.json. Tengo un problema similar con la creación de nodos también.
El siguiente es el error que obtengo: HTTP / 1.1 406 No aceptable: falta el comentario de argumento requerido
Este mensaje proviene del archivo: /services/server/rest_server/includes/RESTServer.inc Específicamente, las líneas:
elseif (!isset($info['optional']) || !$info['optional']) {
return services_error(t('Missing required argument !arg', array(
'!arg' => $info['name'],
)), 406);
}
básicamente, parece pensar que falta el argumento "comentario" (y no es opcional).
Este es uno de los muchos bits de JSON que le he dado (publicar un comentario en el nodo 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"}]
]}}}
Es perfectamente válido (basado en otras comprobaciones JSON en línea). También coincide con lo que veo en los ejemplos de prueba de servicios en /services/test/functional/ServivesResourceCommentTests.test
Sin embargo, siempre recibo el mismo mensaje de error. Esto parece similar a: Drupal 7 services json node object
que tampoco está resuelto. ¿Alguien puede ayudarme con el formato JSON adecuado? Realmente, todo lo que quiero hacer es pasarle algo como:
{ nid : 8081 , uid : 17593 ,comment:{comment_body:"test",subject:"test"}}
mis encabezados http parecen estar bien y usuario / inicio de sesión funcionó bien.
¿Puede decirme en qué URL publicaría esta cadena json? He estado buscando en toda la web algún tipo de documentación sobre cómo crear un comentario en un nodo utilizando los servicios 3. La documentación en este módulo es completamente insuficiente. He intentado publicar en:
example.com/api/node/{nid}/comments.json
example.com/api/comment.json
example.com/api/comment/create.json
Nada parece funcionar. Siempre aparece "404 No encontrado: no se pudo encontrar el controlador"
EDITAR: tan pronto como publiqué esto, lo puse a trabajar. Si ayudará a alguien más, publique su cadena json en:
example.com/api/comment.json
Si está utilizando Poster para probar, asegúrese de establecer el tipo de contenido en application / json. Cuando use jquery, asegúrese de establecer dataType: 'json'.
fuente
Aquí hay algunos ejemplos para crear y actualizar nodos y comentarios en el siguiente formato:
Crear nodo
? q = punto final / nodo.json
{"type": "article", "title": "t8yZUfX2it", "language": "und"}
Actualización de nodo
? q = punto final / nodo / 123.json
{"nodo": {"nid": "123", "título": "9AjrXJhWMI", "idioma": "und"}}
Comentario Crear
? q = punto final / comentario.json
{"subject": "liJmJfpqMX", "comment_body": {"und": [{"value": "9DyaNZi3lA"}]}, "nid": "18"}
Actualización de comentarios
? q = punto final / comentario / 456.json
{cid: 456, "subject": "hzU27R6daE", "comment_body": {"und": [{"value": "BqZU5DwArD"}]}, "nid": "18"}
fuente
Tenía problemas similares incluso cuando solo probaba con el póster del complemento de Firefox. Resulta que lo que estaba haciendo era simplemente los espacios en blanco adicionales y algún otro formato simple (como escapes). Aquí hay una lista de lo que funciona en mis propias pruebas para lo que necesitaba:
CREAR TRABAJOS DE USUARIO = punto final / usuario
LOGIN WORKS = punto final / usuario / inicio de sesión
CREAR TRABAJOS DE ARCHIVO = punto final / archivo
CREAR TRABAJOS DE NODO = punto final / nodo
fuente