Начало работы с веб-службами RESTful

REST (REpresentational State Transfer, передача состояния представления) является архитектурным стилем для распределенных систем данных гипермедиа, например, World Wide Web. В основе архитектуры RESTful лежит принцип определения ресурсов по универсальным идентификаторам ресурсов (Universal Resource Identifiers, URI). Управление этими ресурсами осуществляется с помощью стандартного интерфейса, например HTTP, а обмен информацией происходит с помощью представлений этих ресурсов. В этом учебном руководстве сначала вкратце описывается REST, а затем описывается, как IDE NetBeans поддерживает этот стиль архитектуры.

Содержание

Содержимое на этой странице применимо к IDE NetBeans 7.2, 7.3, 7.4 и 8.0

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

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

Oracle WebLogic Server 11g-12c
или GlassFish Server Open Source Edition 3.x или 4.x
(Не работает в Tomcat, если не установлен подключаемый модуль поддержки EJB)

База данных jdbc/sample на
сервере базы данных Java DB (Derby) или сервере базы данных MySQL.
сервер базы данных

В ДБ Java (Derby) база данных jdbc/образец базы данных создается IDE NetBeans
при установке IDE с сервером приложений GlassFish.

На MySQL среда IDE заполняет пример базы данных после создания его на сервере MySQL изнутри IDE.

Сервер GlassFish можно установить через Интернет и пи распространении IDE NetBeans с помощью Java EE. Также можно воспользоваться страницей загрузок сервера GlassFish.

Важно! Для проектов Java EE 6 и Java EE 7 требуется GlassFish Server или Oracle WebLogic Server 12c.

Введение

Веб-службы RESTful представляют собой службы, созданные с помощью архитектурного стиля RESTful. Создание веб-служб с применением подхода RESTful становится популярной альтернативой использованию технологий развертывания служб в сети Интернет на основе SOAP, поскольку этот подход отличается простотой и удобством, а также предоставляет возможность передачи данных непосредственно по HTTP.

Среда IDE поддерживает быструю разработку веб-служб RESTful при помощи JSR 311 (интерфейса API Java для веб-служб RESTful (JAX-РТС)) и Jersey (примера реализации JAX-РТС).

Для получения более подробных данных обратитесь к разделу

Помимо создания веб-служб RESTful среда IDE также поддерживает тестирование, создание клиентских приложений с возможностью доступа к веб-службам RESTful и создание кода для вызова веб-служб (как RESTful, так и служб на основе SOAP).

Ниже приведен список возможностей RESTful, предоставляемых средой IDE:

  1. быстрое создание веб-служб RESTful на основе классов объектов JPA и шаблонов;
  2. быстрое создание кода для вызова веб-служб, таких как Карты Googlе, Yahoo! News Search и StrikeIron, путем перетаскивания компонентов из диспетчера веб-служб в окно служб;
  3. создание клиентов Java RESTful для служб, зарегистрированных в диспетчере веб-служб;
  4. создание тестовых клиентов для тестирования веб-служб RESTful;
  5. логическое представление для удобного перехода по классам реализации веб-службы RESTful в проекте;

В этом учебном курсе рассматривается создание, реализация и тестирование веб-служб RESTful при помощи среды IDE.

Веб-службы RESTful, сохранение состояния, классы сущностей

Веб-службы RESTful в Java используют интерфейс API сохранения состояния Java для связи с базами данных. Говоря конкретнее, веб-службы RESTful используют классы сущностей и блок сохранения состояния как они определены в интерфейсе API сохранения состояния. Классы сущностей – это классы Java, сопоставленные с объектами в реляционной базе данных. Согласно руководству по Java EE5: "Сущностью называется упрощенный объект области сохранения состояния. Как правило, сущность представляет таблицу в реляционной базе данных, и каждый экземпляр сущности соответствует строке в этой таблице. Блок сохранения состояния состоит из набора сущностных классов, источника данных, поставщика сохранения состояния и собственного имени блока сохранения состояния, как определено в файле persistence.xml.

IDE NetBeans можно использовать либо для создания классов логических объектов и веб-служб RESTful в одном процессе или среду IDE можно использовать для создания веб-служб RESTful на основе существующих классов логических объектов. В этом учебном курсе мы используем мастер создания служб RESTful из базы данных для автоматического создания классов сущностей и веб-служб RESTful в одном процессе. Мастер автоматически создаст блок сохранения состояния.

Использование сервера баз данных MySQL

Если использовать сервер базы данных MySQL вместо JavaDB (Derby), необходимо зарегистрировать сервер базы данных в среде IDE и добавить базу данных sample к серверу.

Чтобы использовать сервер базы данных MySQL с этим учебным курсом, выполните следующие действия.

  1. Зарегистрируйте сервер MySQL в среде IDE, если он еще не зарегистрирован. Для регистрации сервера MySQL перейдите в окно 'Службы' среды IDE, щелкните правой кнопкой мыши узел Databases и выберите 'Регистрация сервера MySQL'.
    Параметр 'Регистрация сервера MySQL' в окне 'Службы'
  2. Откроется диалоговое окно, в которое следует ввести параметры своего сервера MySQL, включая имя и пароль пользователя, являющегося администратором. См. раздел "Настройка свойств сервера MySQL" в разделе Подключение к базе данных MySQL.

    Базовые свойства сервера MySQL, регистрируемого в IDE
  3. Запустите сервер MySQL и подключитесь к нему. См. раздел "Запуск сервера MySQL" в разделе Подключение к базе данных MySQL.
  4. Щелкните правой кнопкой мыши узел сервера MySQL и выберите Create Database ("Создать базу данных"). Откроется диалоговое окно создания базы данных MySQL.
    Создайте параметр контекстного меню базы данных
  5. Введите sample в качестве имени новой базы данных. Предоставьте полный доступ корневому пользователю или пользователю по своему выбору.
    Диалоговое окно 'Новое имя базы данных' заполнено
  6. Нажмите кнопку "ОК". Откроется диалоговое окно, сообщающее, что именем примера базы данных является sample и спрашивающее, следует ли создать таблицы, объекты и данные для этой базы данных.
    Запрос на заполнение базы данных образцами данных
  7. Нажмите кнопку "Да". Среда IDE создаст и заполнит базу данных, а также добавит подключение к ней.
    Созданный образец базы данных и подключение к базе данных в окне 'Службы'

Создание веб-служб RESTful из базы данных

Целью данного упражнения является создание проекта, а затем создание классов сущностей и веб-служб RESTful из базы данных.

В данном разделе используется база данных JavaDB (Derby) и источник данных jdbc/sample. JavaDB входит в состав SDK. Источник данных jdbc/образец источника данных создается IDE NetBeans автоматически при установке IDE совместно с GlassFish.

Создание проекта

Для создания веб-служб RESTful нужен проект веб-приложения Java.

Для создания проекта выполните следующие действия:

  1. Выберите 'Файл' > 'Создать проект' (Ctrl-Shift-N в Windows и Linux, ⌘-Shift-N в ОС Mac). В области "Категории" выберите "Java Web". В области "Projects" выберите "Web Application". Нажмите кнопку "Далее". Откроется мастер создания веб-приложений.

    Как вариант, можно создать веб-приложение Maven. Выберите 'Файл' > 'Создать проект' (Ctrl-Shift-N в Windows и Linux, ⌘-Shift-N в ОС Mac). В Categories ("Категории) выберите Maven. В Projects ("Проекты") выберите Maven Web Application ("Веб-приложение Maven") и нажмите кнопку Next ("Далее").

  2. Введите в поле "Имя проекта" текст CustomerDB. Нажмите кнопку "Далее".
  3. Выберите Java EE 6 Web либо Java EE 7 Web. В списке 'Сервер' выберите нужный сервер, но помните, что для проектов Java EE требуется GlassFish Server 3.x или 4.x. Пропустите все последующие настройки и нажмите 'Готово'.

    Важное замечание для проектов Maven. В NetBeans IDE 7.2 при создании веб-приложения Maven невозможно указать сервер. Однако сервер должен быть указан до создания блока сохранения состояния. Поэтому после создания веб-приложения Maven откройте свойства проекта и установите сервер в Run Рroperties ("Свойства выполнения"). Чтобы открыть свойства проекта, щелкните правой кнопкой мыши в узле 'Проект' и выберите 'Свойства' в контекстном меню.

Создание классов сущностей и служб RESTful

Когда веб-приложение Java создано, добавьте к проекту классы сущностей и веб-службы RESTful.

Для создания сущностных классов и веб-служб RESTful выполните следующие действия.

  1. Щелкните правой кнопкой мыши узел CustomerDB и выберите New ("Создать") > Other ("Другое") > Web Services ("Веб службы") > RESTful Web Services from Database ("Веб-службы RESTful из базы данных"). На панели Database Tables ("Таблицы базы данных") откроется мастер создания веб-службы RESTful.
    Веб-службы RESTful EE6 из параметра 'База данных' в меню
  2. При использовании сервера GlassFish выберите в раскрывающемся списке "Источник данных" на панели "Таблицы" источник данных jdbc/sample.

    При использовании сервера Tomcat выберите jdbc:derby://localhost:1527/sample. Если сервер базы данных Derby не запускается автоматически, необходимо запустить его на вкладке "Базы данных" в окне "Службы".

    Примечание для пользователей MySQL. Необходимо будет создать новый источник данных. Выберите New Data Source ("Создать источник данных"), дайте ему произвольное описательное имя и выберите подключение к базе данных jdbc:mysql://localhost:3306/sample. Это подключение было создано при создании примера базы данных в MySQL.
    Новый источник данных, использующий подключение mysql

  3. Выберите в области "Доступные таблицы" таблицу CUSTOMER и нажмите кнопку "Добавить". Таблица DISCOUNT_CODE, связанная с таблицей CUSTOMER, также добавляется в область "Выбранные таблицы" автоматически. Если вы используете базу данных MySQL или некоторые версии Derby, также добавляется таблица MICRO_MARKET. Теперь отображается следующее (версия Derby):

    Панель 'Таблицы баз данных' новых классов сущностей из мастера баз данных, в которых показаны выделенные таблицы CUSTOMER и DISCOUNT_CODE
  4. Нажмите кнопку "Далее". Откроется страница Entity Classes ("Классы сущностей"). В поле 'Имя пакета' введите entities. Теперь отображается следующее (версия Derby).

    Примечание. Веб-службы RESTful из мастера баз данных автоматически создают аннотации JAXB. Если классы сущностей для приложения Java EE создаются при помощи мастера создания классов сущностей на основе базы данных и если впоследствии эти классы будут использоваться для создания веб-службы RESTful, убедитесь, что установлен флажок 'Создать аннотации JAXB'. Аннотации JAXB также можно вручную добавить к классам сущностей перед запуском мастера создания веб-служб RESTful из классов сущностей. Дополнительные сведения приведены в документе NetBeans to Generate Simpler RESTful Web Services ("Использование NetBeans для создания более простых веб-служб RESTful") .

    Панель 'Классы сущностей' веб-служб RESTful из мастера баз данных, на которой отображается имя пакета
  5. Нажмите кнопку "Далее". Откроется панель, в которой можно задать имя и расположение созданных классов служб и пакеты. В проектах Java EE предусмотрена возможность изменения имени и местоположения класса конфигурации приложения REST.

    Для этого учебного курса примите параметры по умолчанию и нажмите кнопку "Готово". При на нажатии на кнопку 'Готово' IDE создает классы сущностей и служб. В проектах Java EE IDE также создает класс конфигурации приложения, который является подклассом для Application.

    Созданные служба и классы конфигурации служб и пакеты

Теперь среда IDE создаст веб-службы RESTful. Когда среда IDE выполнит это, загляните в окно Projects ("Проекты"). Созданные классы сущностей находятся в пакете entities, а классы служб - в пакете service. Веб-службы RESTful Java EE на основе базы данных создают экземпляр EntityManager в каждом классе службы. Это устраняет нужду в классах контроллеров JPA и упрощает код.

Тестирование веб-служб RESTful

Целью этого упражнения является тестирование приложения. Вы создадите новое веб-приложения для тестирования, затем с помощью мастера IDE создадите тесты в новом проекте.

  1. В главном меню выберите "Файл" > "Новый проект".
  2. В списке 'Тип проекта' в категории 'Java Web' выберите 'Веб-приложение'. Нажмите кнопку "Далее".
  3. В поле 'Имя проекта' введите WebServicesTest. Нажмите кнопку "Далее".
  4. В качестве целевого сервера выберите GlassFish Server, а в качестве версии Java EE - Java EE 6 Web или Java EE 7 Web. Нажмите 'Готово'.
  5. Щелкните правой кнопкой мыши узел проекта CustomerDB и выберите 'Тестировать веб-службы RESTful'. Откроется диалоговое окно, запрашивающее, следует ли создать тестовый клиент внутри проекта службы или в другом веб-проекте Java. Это позволяет обойти ограничения безопасности в некоторых браузерах. Можно использовать любой веб-проект, если он настроен на развертывание в том же домене сервера, что и проект CustomerDB.
    Диалоговое окно для подтверждения создания тестового клиента локально или в другом веб-проекте Java, развернутом в том же домене
  6. Выберите Тестовый веб-клиент в проекте и нажмите 'Обзор'.
  7. Выберите проект WebServiceTest в диалоговом окне 'Выбор проекта'. Нажмите кнопку "ОК".

    IDE создает файл test-resbeans.html в проекте WebServiceTest. Кроме того, IDE автоматически запускает сервер и выполняет развертывание приложения CustomerDB.

    Если в окне 'Результаты' появилось сообщение об ошибке, указывающее на отсутствие одного или нескольких классов и невозможность сборки проекта, добавьте в библиотеки компиляции библиотеки Jersey. Щелкните правой кнопкой мыши узел проекта и выберите команду "Свойства". Выберите в меню дерева "Свойства" пункт "Библиотеки". Щелкните "Добавить библиотеку" и перейдите к библиотекам Jersey.

  8. Щелкните проект WebServiceTest правой кнопкой мыши и выберите 'Выполнить'.
  9. В браузере откройте страницу http://localhost:8080/WebServicesTest/test-resbeans.html
    Целевая страница средства тестирования веб-службы RESTful в браузере

    Слева расположен набор корневых ресурсов. Здесь они названы entities.customer, entities.discountCodes и entities.microMarket.

  10. Щелкните узел entities.customer. В поле "Выбрать метод для тестирования" выберите GET (приложение/json) или GET (приложение/xml). Нажмите кнопку тестирования. Тестируемый клиент отправляет запрос и выводит результат в разделе 'Результат тестирования'. Тестируемый клиент отображается по умолчанию в представлении необработанных данных На следующем изображении отображается отклик на запрос приложения/xml.
    Окно представления необработанных данных в средстве тестирования веб-службы RESTful

В разделе результатов тестирования отображается 5 вкладок.

  • 'Табличное представление' - это неструктурированное представление, в котором отображаются все URI в полученном документе. В настоящее время в этом представлении отображается только предупреждение о том, что связь контейнера и содержимого контейнера не допускается.
  • В представлении необработанных данных отображаются фактически возвращенные данные. В зависимости от выбранного типа MIME (application/xml или application/json) данные будут представлены в формате XML или JSON, соответственно.
  • На вкладке подресурсов отображаются URL-адреса корневого ресурса и подресурсов. Если веб-служба RESTful построена на основе базы данных, корневой ресурс представляет таблицу базы данных, а подресурсы – столбцы.
  • На вкладке заголовков представлены данные заголовка HTTP.
  • На вкладке монитора HTTP отображаются текущие запросы HTTP, а также отправленные и полученный ответы.

Закройте браузер и вернитесь к среде IDE.


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

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

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

get support for the NetBeans

Support


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