Pregunta

Estoy usando el módulo Drupal 6 y Services 6.3x, pero no puedo usar este módulo por completo. También he habilitado el módulo de servidor REST. Agregué un nuevo servicio y le agregué recursos. Te agregué el recurso de nodo y puedo obtener todos los nodos en formato JSON

Lo que no puedo entender es:-

  1. El URI exacto o puede ser el procedimiento para llamar al método GetTree en Taxonomy_Vocabulary Recurse

  2. Cómo acceder a todas las funciones de métodos (CRUD) en cada recurso habilitado

  3. La URL -> mydomain.com/service/rest/node.json funciona para mí, pero ¿cómo puedo acceder al método gettree?

Estoy atrapado en esto como para siempre, incluso he publicado trabajos en el sitio de Drupal, pero supongo que hay personas muy raras que tienen conocimiento sobre esto.

Editar :-

Live Link es http://delvelogic.com/merchant/drupal-6.22/services/rest/taxonomy_vocabulary

El siguiente es el código Java que estoy usando:-

    DefaultHttpClient httpClient = new DefaultHttpClient();
    HttpResponse response = null;  
    HttpPost postMethod = new HttpPost("http://delvelogic.com/merchant/drupal-6.22/rest/taxonomy_vocabulary/getTree.json");
    postMethod.addHeader("Content-type", "application/x-www-form-urlencoded");
    postMethod.addHeader("Accept","application/json");
  //  postMethod.addHeader("Authorization", "basic " + Base64.encodeBytes(("admin"+":"+"admin123").getBytes()));
 //   httpClient.getCredentialsProvider().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT));

     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();  
     nameValuePairs.add(new BasicNameValuePair("vid", ""+1));
     nameValuePairs.add(new BasicNameValuePair("parent", ""+1));
     nameValuePairs.add(new BasicNameValuePair("maxdepth",""+1));
    // nameValuePairs.add(new BasicNameValuePair())
    try{
     postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));  
     response = httpClient.execute(postMethod); 

     InputStream input = response.getEntity().getContent();
      BufferedReader rd = new BufferedReader(new InputStreamReader(input),input.toString().length());
     String line;
     StringBuilder sb =  new StringBuilder();
     while ((line = rd.readLine()) != null) {
            sb.append(line);
     }
     rd.close();
     uploadresponse = sb.toString();

     Log.d("Response", ""+uploadresponse);
    }catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }

¿Además, si hay algún Firefox, para que pueda ver el método funcionando?

Editar de nuevo:-

He encontrado este complemento RestClient para trabajar en Firefox

Elijo el método como publicación en la URL que escribí http://delvelogic.com/merchant/drupal-6.22/services/rest/taxonomy_vocabulary/gettree

encabezado agregado:-

Tipo de contenido: aplicación/x-www-form-urlencoded

Aceptar: solicitud/JSON

Solicitud de cuerpo:-

& Vid = 1 & Parent = 1 & maxdepth = 1

me da 404 no encontrado sin vocabulario con id 1 encontrado gracias de antemano

¿Fue útil?

Solución

Según la documentación, las URL no deberían necesariamente tener .json al final, pero supongo que esta es una configuración que ha cambiado si está funcionando para las funciones de nodo. Sé que no te va a gustar esta respuesta (estoy bastante seguro de que la has probado antes) pero la URL es: mydomain.com/service/rest/taxonomy_vocabulary/getTree. Incluso he pasado por el código respectivo de los módulos de servicio y REST_SERVER y eso es definitivamente lo que debería ser.

Para obtener más pruebas, vea el módulo de prueba (válido y aprobado) para los servicios taxonomy_vocabulary:

ServicesResourCetaxonomyTests :: testVocabularyGetTree.

Verá que las URL a las que se accede por esta prueba aprobada con éxito es: $path . '/taxonomy_vocabulary/getTree', dónde $path es el camino hacia el punto final (es decir mymodule.com/service/rest/).

Sin embargo, realmente ayudaría si pudiera proporcionar un enlace en vivo para que podamos probar si el problema está en su código Java o con Drupal (aunque este último parece muy poco probable).

EDITAR

PD: comente esta respuesta, ya que tengo mucha experiencia con el módulo de servicios y estoy seguro de que puedo señalarlo en la dirección correcta con un poco más de información. ¡Me duele ver a alguien que lucha con algo con lo que no he tenido nada más que alegría en el pasado!

Otra edición

Esta es la respuesta que obtengo http://delvelogic.com/merchant/drupal-6.22/services/rest/taxonomy_vocabulary:

<?xml version="1.0" encoding="utf-8"?>
  <result>
    <nodes/>
    <module>taxonomy</module>
    <name></name>
    <help></help>
    <relations>0</relations>
    <hierarchy>0</hierarchy>
    <multiple>0</multiple>
    <required>0</required>
    <tags>0</tags>
    <weight>0</weight>
    <vid>4</vid>
  </result>

Observe la <vid>4</vid> Bit ... Estoy bastante seguro de que el vid Deberías estar buscando es 4, no 1!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a drupal.stackexchange
scroll top