9. Интеграция - MaxCiv/LibraryArchitecture GitHub Wiki

Предоставление информации с помощью собственного сервиса

Созданный сервис предоставляет информацию о всех книгах библиотеки в виде json-ответа. Для создания сервиса стандартными средствами Java был реализован простой HTTP-сервер, который обрабатывает GET-запросы. Сервер запускается отдельно на порте 8000. Для запроса информации о книгах библиотеки необходимо сформировать URI-запрос к серверу: http://localhost:8000/get.

В ответ сервер формирует ответ в виде json-строки. Сервер получает всю информацию о книгах из фасада ServiceFacade, а затем сериализует её в json-строку. Для сериализации в json используется библиотека Gson. Сформированная строка далее возвращается пользователю, отправившему запрос.

Пример ответа на запрос:

Обращение к внешнему сервису

В качестве внешнего сервиса используется Google Books. API данного сервиса можно использовать, подключив в проекте библиотеку google-api-services-books (для Gradle это делается строкой compile 'com.google.apis:google-api-services-books:v1-rev99-1.23.0'). Далее необходимо будет создать свой проект в Google API Console и получить уникальный API-KEY (ключ) для возможности использовать сервис Google Books в своём приложении посредством API.

Работу с API сервиса Google Books реализует класс GoogleBooksService, расположенный в пакете service.googlebooks. Здесь реализована функция отправки запроса сервису и разбора ответа (List<GoogleBook> queryGoogleBooks(String query)), а также две функции для поиска книг по названию (List<GoogleBook> getBooksByTitle(String query)) и по автору (List<GoogleBook> getBooksByAuthor(String query)).

Фасад ServiceFacade предоставляет доступ к сервису, реализуя функции List<GoogleBook> searchGoogleBooksByTitle(String title) и List<GoogleBook> searchGoogleBooksByAuthor(String author).

Для тестирования данного сервиса был написан класс GoogleBooksServiceTest, который проверяет все функции на работоспособность.

При добавлении новой книги при вводе названия или автора делается запрос к Google Books и далее выводится результат, содержащий наиболее подходящие книги. Нужную книгу можно выбрать в таблице и её данными будет заполнена форма добавления новой книги.

<< 8. Слой представления | 10. Тестирование >>

⚠️ **GitHub.com Fallback** ⚠️