Вопрос

Я использую Drupal 6 и Services 6.3x модуль, но я не могу полностью использовать этот модуль. Я также включил модуль сервера REST. Я добавил новую услугу и добавил к нему ресурсы. Я добавил к нему ресурс узла и могу получить все узлы в формате JSON

Я не могу понять:-

  1. Точный URI или может быть процедура для вызова gettree метод в ресурсе Taxonomy_vocabulary

  2. Как выполнить все методы (CRUD) функции под каждым включенным ресурсом

  3. URL -> myDomain.com/service/rest/node.json работает для меня, но как я могу получить доступ к методу gettree ??

Я застрял на этом, как навсегда, я даже опубликовал работу на сайте Drupal, но я думаю, что есть очень редкие люди, которые знают об этом.

Редактировать :-

Живая ссылка есть http://delvelogic.com/merchant/drupal-6.22/services/rest/taxonomy_vocabulary

Ниже приведено код Java, который я использую:-

    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();
    }

Также, если есть какое -то добавление Firefox, чтобы я мог увидеть работающий метод?

Редактировать снова:-

Я обнаружил, что это добавление на restclient поработала над Firefox

Я выбираю метод в качестве поста в URL, который я набрал http://delvelogic.com/merchant/drupal-6.22/services/rest/taxonomy_vocabulary/gettree

Добавлен заголовок:-

Тип контента: приложение/x-www-form-urlencoded

Принять: приложение/json

Запросить тело:-

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

Это дает мне 404, не найденное без словарного запаса с идентификатором 1

Это было полезно?

Решение

Согласно документации, URL -адреса не обязательно должны иметь .json в конце, но я думаю, что это настройка, которую вы изменили, если он работает для функций узла. Я знаю, что вам не понравится этот ответ (я совершенно уверен, что вы пробовали его раньше), но URL -адрес: mydomain.com/service/rest/taxonomy_vocabulary/getTree. Анкет Я даже прошел через соответствующий код модулей Service и REST_SERVER, и это определенно то, чем он должен быть.

Для получения дополнительной доказательства (действительный, пройденный) тестовый модуль для Services Taskononomy_vocabulary:

ServicesResourcetAxonomyTests :: testVocabularygetTree.

Вы увидите, что URL -адреса, доступ к которому успешно прошел тест, доступны: $path . '/taxonomy_vocabulary/getTree', куда $path это путь к конечной точке (т.е. mymodule.com/service/rest/).

Это действительно поможет, если бы вы могли предоставить живую ссылку, поэтому мы можем проверить, есть ли проблема в вашем коде Java или с Drupal (хотя последний кажется очень маловероятным).

РЕДАКТИРОВАТЬ

PS прокомментируйте этот ответ, так как у меня есть большой опыт работы с модулем услуг, и я уверен, что смогу указать вам в правильном направлении с помощью немного больше информации. Мне больно видеть, как кто -то борется с чем -то, с чем у меня не было ничего, кроме радости в прошлом!

Еще одно редактирование

Это ответ, от которого я получаю 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>

Обратите внимание на <vid>4</vid> немного ... я почти уверен vid Вы должны искать 4, нет 1!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с drupal.stackexchange
scroll top