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

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

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

Содержание

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

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

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

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

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

 

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

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

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

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

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

  1. В окне 'Проекты' щелкните правой кнопкой мыши подузел 'Модули' RestfulClientPlatformApp и выберите 'Добавить новый'... Откроется мастер создания проектов модулей.
  2. Назовите модуль TwitterClientModule. Примите значения по умолчанию в других полях и нажмите кнопку "Далее". Открывается панель "Основные настройки модуля".
  3. Дайте коду произвольное имя, например, org.my.twitter.friends. Примите значения по умолчанию в других полях и нажмите кнопку "Готово". Теперь TwitterClientModule отображается в узле "Модули" окна "Проекты" приложения на платформе.
  4. Щелкните правой кнопкой мыши узел 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}]. Выберите этот ресурс и нажмите кнопку "ОК".
    Ресурс rest  friends_timeline, выбранный в диалоговом окне 'Доступные ресурсы REST'

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

  9. В качестве типа аутентификации автоматически выбирается тип OAuth. Примите значения по умолчанию и нажмите кнопку "Готово".
    Завершенное диалоговое окно "Создать клиент Java 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 в поле Имя приложения.
  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. Нажмите кнопку "Завершить".
    Панель 'Имя, значок и местоположение' мастера создания окон, в котором отображается префикс имени класса и имя пакета
  4. В представлении "Проект" открывается файл twitterFriendsStatusTopComponent. Справа открывается палитра компонентов пользовательского интерфейса Swing.
    Представление проектирования нового окна и палитра компонентов Swing, в которое еще не добавлены компоненты
  5. Перетащите в область проектирования следующие элементы пользовательского интерфейса:
    Элемент Отображаемый текст Параметры
    Кнопка Получить информацию о состоянии друзей

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

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

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

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

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

  6. Дважды щелкните кнопку 'Вход'. В среде 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"

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

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

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

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

get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2018, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo