corner imagecorner image
IDEPlatformPluginsDocs & SupportCommunityPartners

Создание клиентов служб RESTful в модулях NetBeans

Начиная с версии 6.9 среды IDE NetBeans в проектах доступна собственная поддержка REST. Код клиента RESTful теперь можно напрямую генерировать в модулях NetBeans. Также можно добавлять код клиента Jersey RESTful в Java или приложение.

В этом учебном курсе будет создано приложение на платформе NetBeans, использующее службу Twitter "What Are You Doing" и отображающее список статусных сообщений друзей в Twitter. Вначале нужно создать приложение на платформе. Выберите библиотеки, нужные для приложения. Затем создайте модуль NetBeans. Наконец, добавьте в модуль клиент RESTful и базовые элементы отображения. В клиенте используется авторизация OAuth.

Содержание

Содержимое данной страницы относится к среде IDE NetBeans 6.9-7.1

Для работы с этим учебным курсом требуются следующее программное обеспечение и материалы.

Программное обеспечение или материал Требуемая версия
Среда IDE NetBeans Загружаемый комплект Java ЕЕ
Комплект для разработчика на языке Java (JDK) версия 6 или 7

Создание приложения на платформе

К приложению на платформе NetBeans можно добавить библиотеки среды IDE NetBeans. В этом разделе будет создано приложение на платформе и добавлены необходимые библиотеки.

 

Создание набора модулей:

  1. Щелкните "Создать проект" (Ctrl-Shift-N в Linux и Windows, ⌘-Shift-N в MacOS). Откроется мастер создания проекта.
  2. Выберите категорию "Модули NetBeans". Затем выберите проект "Приложение для платформы NetBeans". Нажмите кнопку Next ("Далее").
  3. Присвойте проекту имя RestfulClientPlatformApp. Выберите местоположение для проекта. Подтвердите остальные значения по умолчанию и нажмите кнопку "Готово". Проект RestfulClientPlatformApp отображается в окне "Проекты".
  4. В окне "Проекты" щелкните правой кнопкой мыши узел проекта RestfulClientPlatformApp и выберите пункт "Свойства". Откроется диалоговое окно "Проекты".
  5. В диалоговом окне "Свойства" выберите категорию "Библиотеки". Обратите внимание, что включены только библиотеки платформы.
  6. Разверните узел библиотек Enterprise. Отметьте флажок "Включен" для объекта "Библиотеки веб-служб RESTful".
    Свойства набора с выбранными для включения библиотеками RESTful WS
  7. Кнопка "Разрешить" выделяется красным, поскольку библиотеки веб-служб RESTful зависят от других библиотек, не включенных в набор. Нажмите кнопку "Разрешить", чтобы включить эти библиотеки.
  8. Нажмите кнопку "ОК". Приложение на платформе готово к созданию клиентского модуля.

Создание клиентского модуля

Всего нескольких действий достаточно для создания модуля, являющегося клиентом для службы "Что вы делаете?" Twitter. Службы Twitter регистрируются "как есть" в диспетчере веб-служб среды IDE NetBeans. Можно добавить дополнительные

Создание модуля и функциональных возможностей клиента:

  1. В окне "Проекты" щелкните правой кнопкой мыши подузел "Модули" узла RestfulClientPlatformApp и выберите пункт "Добавить...". Открывается мастер "Новый модуль проекта".
  2. Назовите модуль TwitterClientModule. Примите значения по умолчанию в других полях и нажмите кнопку "Далее". Открывается панель "Основные настройки модуля".
  3. Дайте коду произвольное имя, например, org.my.twitter.friends. Примите значения по умолчанию в других полях и нажмите кнопку "Готово". Теперь TwitterClientModule отображается в узле "Модули" окна "Проекты" приложения на платформе.
  4. Щелкните правой кнопкой мыши узел TwitterClientModule и выберите пункт "Открыть проект". Узел TwitterClientModule теперь отображается на уровне корня окна "Проекты".
    Окно "Проекты" с корневым узлом TwitterClientModule
  5. Выберите созданный узел TwitterClientModule. Запустите мастер создания файла (Ctrl-N/⌘-N или значок "Создать файл" или контекстное меню узла).
  6. В мастере "Создать файл" выберите категорию "Веб-службы" и тип файла "Клиент RESTful Java". Нажмите кнопку "Далее". Открывается панель "Новый клиент RESTful Java".
  7. Назовите класс TwitterClient и дайте ему произвольное имя пакета или выберите ранее созданное имя.
    В мастере "Новый клиент RESTful" отображается имя класса и пакета
  8. В разделе "Выберите ресурс REST" выберите "Зарегистрировано в IDE". Нажмите кнопку "Обзор" и выберите Twitter > Twitter OAuth > [statuses] > [friends_timeline.{format}]. Выберите этот ресурс и нажмите кнопку "ОК".
    Ресурс "friends_timeline rest resource", выбранный в диалоговом окне "Доступные ресурсы REST"

    Примечание: в среде IDE можно регистрировать дополнительные веб-службы. Перейдите к окну "Службы", щелкните правой кнопкой мыши узел "Веб-службы" и выберите "Добавить веб-службу". Можно добавить локальный файл или URL-адрес RESTful.
    Команда "Добавить веб-службу" диспетчера веб-служб, окно "Службы"

  9. В качестве типа аутентификации автоматически выбирается тип OAuth. Примите значения по умолчанию и нажмите кнопку "Готово".
    Заполненное окно мастера "Новый клиент RESTful"
  10. Открывается окно предупреждения. Отображается запрос, требуется ли генерировать артефакты Java из схемы XML в файле WADL. Нажмите кнопку "Да".
  11. Может отобразиться другой запрос на добавление модулей в путь класса. Нажмите кнопку "ОК".
    Диалоговое окно предупреждения об отсутствующих зависимостях
  12. Чтобы добавить модули в путь класса, щелкните узел TwitterClientModule правой кнопкой мыши и выберите команды "Свойства проекта". Перейдите к разделу "Библиотеки" и добавьте модули с помощью "Добавить зависимость". Эта кнопка позволяет открыть список зависимостей модуля для обзора.
    Окно свойств модуля клиента Twitter, раздел "Библиотеки"

Класс TwitterClient создается и открывается в редакторе. Класс TwitterClient имеет сложную структуру и содержит следующие поля, методы и внутренние классы:

  • CONSUMER_KEY: строка Consumer Key
  • CONSUMER_SECRET: строка Consumer Sectret
  • initOAuth(): метод для инициализации OAuth
  • getFriendsTimeline(): метод, соответствующий методу HTTP getFriendsTimeline (из ресурса REST) 
  • makeOAuthRequestUnique(): используется для нескольких вызовов API в одном сеансе
  • login: используется для входа в приложение Twitter (принудительная авторизация). Этот метод вызывает два дополнительных метода: getOAuthAccessToken и getOAuthRequestToken.

После этого ключи OAuth передаются с сайта Twitter и добавляются в клиент TwitterClient.

Получение ключей OAuth с сайта Twitter

Чтобы обеспечить доступ приложения платформы NetBeans к данным Twitter, необходимо получить с сайта Twitter ключи CUSTOMER и CUSTOMER_SECRET, а также строку подтверждения. Эти ключи необходимы, так как на сайте Twitter используется авторизация OAuth. При этом метод OAuth предполагает вызов со стороны веб-приложения на сервере. Чтобы получить ключи авторизации, необходимо зарегистрировать фиктивное веб-приложение.

Получение ключей OAuth с сайта Twitter:

  1. Откройте обозреватель. Перейдите на страницу Twitter > Приложения и щелкните Зарегистрировать новое приложение . Предварительно следует войти в учетную запись Twitter. Если у вас есть несколько учетных записей, убедитесь в том, что выполнен вход в верную запись.
  2. Введите NB Platform Friends Application в поле Application Name.
  3. Введите описание в поле Description. Это необходимый параметр. Например, можно ввести следующее описание: "NetBeans Platform application calling the friends_timeline operation".
  4. Введите произвольный URL-адрес в поле Application Website.
  5. Выберите значение Client для параметра Application Type.
  6. Выберите переключатель Read and Write для параметра Default Access Type .
  7. Не изменяйте другие значения по умолчанию и нажмите кнопку Save. Откроется страница обозревателя с подробными сведениями о зарегистрированном приложении. Найдите параметры Consumer key и Consumer secret.
  8. Скопируйте параметр Consumer key из обозревателя. Перейдите в среду IDE и скопируйте строку, в которой устанавливается параметр CONSUMER_KEY. Вставьте значение ключа Consumer key между кавычками.
    Клиент TwitterClient с расположением CONSUMER_KEY и CONSUMER_SECRET
  9. Скопируйте и вставьте ключ Consumer secret key из обозревателя в клиент TwitterClient. Сохраните изменения.

Проектирование окна

Для завершения работы над проектом требуется добавить окно. Заполните окно компонентами пользовательского интерфейса и добавьте действие, чтобы нажатие на кнопку приводило к отображению статусов друзей.

Проектирование окна:

  1. В окне "Проекты" щелкните правой кнопкой мыши узел модуля и выберите "Создать > Окно". Открывается мастер "Новое окно" с панелью "Основные настройки".
  2. На панели "Основные настройки", выберите позицию окна editor, выберите параметр "Открывать при запуске приложения" и нажмите кнопку "Далее". Откроется панель "Имя, значок и расположение".
  3. В поле "Префикс имен классов" введите twitterFriendsStatus. Выберите пакет org.my.twitter.friends. Нажмите кнопку Finish ("Готово").
    Панель "Имя, значок и расположение" мастера "Новое окно", отображается префикс имени класса и имя пакета
  4. В представлении "Проект" открывается файл twitterFriendsStatusTopComponent. Справа открывается палитра компонентов пользовательского интерфейса Swing.
    Представление "Проект" нового окна и палитра компонентов Swing, компоненты еще не добавлены
  5. Перетащите в область проектирования следующие элементы пользовательского интерфейса:
    Элемент Отображаемый текст Параметры
    Кнопка Get Friends' Statuses

    Измените имя переменной на getStatusesButton.

    Отмените выбор свойства enabled

    Отмените выбор свойства enabled

    Кнопка Log in Измените имя переменной на loginButton
    Панель прокрутки --  
    Текстовая область -- Перетащите на панель прокрутки

    Измените размер текстового поля и окна с прокруткой и расположите кнопки произвольным образом.
    Представление "Проект" нового окна после заполнения

  6. Дважды щелкните кнопку Login. В среде IDE создается метод действия для кнопки и редактор переключается на представление "Источник" с выбранным методом действия.
  7. Введите или скопируйте следующий код в тело метода действия кнопки Login. Этот код запускает метод входа приложения в Twitter, включает кнопку getStatuses и отключает кнопку Login. Вход приложения должен осуществляться только один раз. Обратите внимание на то, что для вызова метода входа в систему создание экземпляра клиента TwitterClient необязательно.
    private void loginButtonActionPerformed(java.awt.event.ActionEvent evt) {                                   
       TwitterClient.login();
       getStatusesButton.setEnabled(true);
       loginButton.setEnabled(false);
    } 
  8. Дважды щелкните кнопку getStatuses. В среде IDE создается метод действия для кнопки и редактор переключается на представление "Источник" с выбранным методом действия.
  9. Вставьте или введите следующий код обработки в тело метода действия кнопки getStatuses. Этот код создает экземпляр клиента TwitterClient и инициализирует OAuth с помощью маркеров, созданных методом login. Затем код вызывает getFriendsTimeline, получает список статусов, добавляет строку с именем пользователя и текстом к каждому из статусов, а затем передает полученную строку в текстовую область.
    private void getStatusesButtonActionPerformed(java.awt.event.ActionEvent evt) {                                         
    TwitterClient client = new TwitterClient("xml");
    client.initOAuth();
    Statuses response = client.getFriendsTimeline(Statuses.class, null, null, null, "10");
    response.getStatus().size();
    String text = "";
    for (StatusType st : response.getStatus()) {
    text += st.getUser().getName() + ": " + st.getText() + "\n";
    }
    jTextArea1.setText(text);
    }
  10. Отображаются значки предупреждений для классов, которые не были найдены. Нажмите Ctrl-Shift-I (⌘-Shift-I на MacOS). Откроется диалоговое окно Fix All Imports ("Исправление всех операторов импорта"). Выберите классы twitter.twitteroauth.twitterresponse. Нажмите кнопку "ОК".
    Диалоговое окно "Исправление всех операторов импорта" с правильными классами для импорта

Приложение создано. Выполните приложение RestfulClientPlatformApp. Отображается платформа NetBeans с созданным окном в разделе "Вывод". Щелкните "Регистрация" и откроется диалоговое окно с ссылкой, щелкнув которую можно авторизовать приложение на доступ к данным.

Диалог для авторизации OAuth на передачу данных в приложение

Щелкните ссылку. В обозревателе откроется окно Twitter с запросом на разрешение доступа к данным Twitter. Нажмите кнопку Allow. На странице отобразится ПИН-код. Скопируйте ПИН-код и вставьте его в поле строки подтверждения диалогового окна проверки подлинности. Нажмите кнопку "ОК".

Кнопка Log In ("Регистрация") теперь отключена, а кнопка Get Friends' Statuses ("Получить информацию о состоянии друзей") включена. Нажмите Get Friends' Statuses ("Получить информацию о состоянии друзей") и появится список последних сообщений о состоянии ваших друзей в Twitter.

Выполнение приложения, отображаются статусные сообщения

Дополнительные упражнения

Ниже приведены дополнительные ресурсы для изучения:

  • Добавьте к модулю другое окно с помощью других методов интерфейса API friends_timeline.
  • Добавьте к проекту другой модуль с помощью другого ресурса Twitter.
  • Изучите пример модуля Facebook в разделе "Создать проект > Примеры > Модули NetBeans > Пример модуля Facebook"

Дополнительные сведения

Дополнительные сведения о разработке приложений для Java EE в среде IDE NetBeans приведены в следующих материалах:

Для того, чтобы иметь возможность оставлять комментарии и предложения, обращаться за поддержкой и получать информацию о последних достижениях в области функциональных возможностей разработки для Java EE с помощью среды IDE NetBeans, подпишитесь на список рассылки .

Оставить комментарии и предложения, обратиться за поддержкой и получить информацию о последних достижениях в области разработки приложений RCP на платформе NetBeans можно в списке рассылки .