Domanda

sto usando Drupal 6 e il modulo di servizi di 6.3x, ma io sono in grado di utilizzare completamente questo modulo. Ho permesso anche modulo server riposo. Ho aggiunto un nuovo servizio e ha aggiunto risorse ad esso. Ho aggiunto delle risorse nodo ad esso e io sono in grado di recuperare tutti i nodi in formato JSON

quello che io non sono in grado di capire è: -

  1. L'URI esatte o può essere la procedura di chiamare il metodo getTree in risorsa taxonomy_vocabulary

  2. Come acccess tutti i metodi (CRUD) le funzioni sotto ogni risorsa abilitati

  3. L'url -> mydomain.com/service/rest/node.json funziona per me, ma come posso accedere al metodo getTree ??

Sono bloccato su questo come posti di lavoro sempre ho anche pubblicato sul sito Drupal, ma credo che ci sono persone molto rari che hanno conoscenza di questo.

Modifica: -

http://delvelogic.com/merchant/drupal-6.22 / servizi / resto / taxonomy_vocabulary

Il seguente è il codice Java che sto 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();
    }

Anche se c'è qualche Firefox Add, in modo che io possa effettivamente vedere il metodo di lavoro ??

Modifica Anche in questo caso: -

Ho trovato questo componente aggiuntivo su restclient al lavoro su Firefox

Ho scelto il metodo come post nell'URL ho digitato http://delvelogic.com/merchant/drupal- 6.22 / servizi / resto / taxonomy_vocabulary / getTree

intestazione aggiunto: -

Content-type: application / x-www-form-urlencoded

Accept: application / json

Richiesta del corpo: -

& vid = 1 & parent = 1 & maxdepth = 1

mi dà 404 non trovato senza vocabolario con id 1 trovati Grazie in anticipo

È stato utile?

Soluzione

In base alla documentazione gli URL non devono necessariamente avere .json alla fine, ma credo che questa è un'impostazione che hai cambiato se funziona per le funzioni di nodo. So che non ti piacerà questa risposta (sono abbastanza certo che hai provato prima), ma l'URL è: mydomain.com/service/rest/taxonomy_vocabulary/getTree. Ho anche passato attraverso rispettivo codice di servizio e le rest_server moduli e questo è sicuramente quello che dovrebbe essere.

Per ulteriori sguardo prove al (valido, superato) modulo di prova per i servizi taxonomy_vocabulary:

ServicesResourceTaxonomyTests :: testVocabularyGetTree .

Vedrai che gli URL a cui si accede da questo test superato con successo sono:. $path . '/taxonomy_vocabulary/getTree', dove $path è il percorso del punto finale (cioè mymodule.com/service/rest/)

E 'davvero aiuterebbe se si potesse fornire un collegamento dal vivo anche se in modo che possiamo verificare se il problema è nel codice Java o con Drupal (anche se quest'ultimo sembra molto improbabile).

Modifica

P.S. fare commenti su questa risposta perché ho un sacco di esperienza con modulo i servizi e sono sicuro che posso puntare nella giusta direzione con un po 'più di informazioni. Mi addolora vedere qualcuno alle prese con qualcosa che ho avuto nulla, ma la gioia in passato!

ALTRO EDIT

Questa è la risposta che ricevo da 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>

Avviso il bit <vid>4</vid> ... Sono abbastanza sicuro che il vid si dovrebbe essere cercate è 4, non 1!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a drupal.stackexchange
scroll top