Якович (1207873), страница 6
Текст из файла (страница 6)
мы получим фотоотчёты с линеек на 1-е сентября. Если значение «category» будет равно «2», то получим фотоотчёты с новогодних утренников.
По умолчанию, отдаётся 6 фотоотчётов, но если нам нужно иное количество, следует использовать параметр «limit»:
http://www.dvhab.ru/detki/photoreports/api/last?category=1&limit=20
На рисунке 8 видны данные в сыром виде в формате JSON. После обработки данных на проекте «главная Двхаб» мы получаем следующий виджет, изображенный на рисунке 9:
Рисунок 8 – данные в формате JSON
Рисунок 9 – виджет фотоотчётов на «главной Двхаб». «Линейки на первое сентября»
На рисунке 10 изображен виджет фотоотчётов для категории «Новогодние детские утренники»:
Рисунок 10 – виджет фотоотчётов на «главной Двхаб». «Новогодние детские утренники»
В итоге, проектировка API основываясь на принципах REST даёт нам возможность реализовать API по мере поступления задач. На данном этапе API задумано как REST, архитектура выстроена по принципам REST и по мере необходимости будут реализованы остальные функции, такие как работа с POST, PUT и DELETE запросами.
2.4 Получение и интерпретация данных полученных через REST API проекта «Справочник»
Наиболее масштабной задачей использования REST-сервисов было получение данных о секциях с проекта «Справочник» через REST API. Проект «Справочник» представляет собой огромную базу компаний, существующих в Хабаровске и Владивостоке. Так как нерентабельно держать одни и те же данные в нескольких местах, «Справочник» предоставляет REST API для получениях данных. Таким образом, «Справочник» является провайдером данных для других проектов, таких как «Секции», например.
Задача заключалась в том, чтобы с помощью HTTP-запросов получить информацию о секции и разместить её на сайте.
«Справочник» предоставляет следующий URL для получения данных секций через REST API:
GET: /jsonapi/1.2/companies?id={ids}&scheme={scheme_fields}&key={apikey}
Таким образом, для получения исчерпывающей информации о секции был выбран список следующих полей из доступных в схеме:
– «name» – название секции,
– «logoURL» – ссылка на изображение,
– «rating» – рейтинг секции,
– «commentsCount» – количество отзывов,
– «phones» – телефоны,
– «info» – описание секции,
– «annotation» – краткое описание секции,
– «keywords» – ключевые слова для СЕО,
– «email» – адрес электронной почты,
– «addresses» – адреса и филиалы секции
Чтобы получить данные по этим полям, был выполнен следующий запрос:
GET:/jsonapi/1.2/companies?id=358303&key={…}&scheme=name,logoURL,rating,commentsCount,phones,info,annotation,keywords,email,addresses
В результате запроса мы получаем данные в формате JSON, которые можно увидеть на рисунке 11 (количество адресов сокращено до одного).
Следует отметить, что получать данные в таком количестве каждый раз при посещении сайта пользователем – очень ёмко и нерентабельно. Для таких ситуаций было решено использовать кэширование на стороне сервера, что существенно ускорило работу проекта «Секции» и снизило нагрузку на сервера проекта «Справочник».
Результат обработки данных можно увидеть на рисунках 12 и 13, где представлен конечный вид сайта.
Рисунок 11 – результат GET-запроса к «Справочнику»
Рисунок 12 – конечный вид информации, полученной со «Справочника». На рисунке видны поля «name», «logoUrl», «rating», «commentsCount», «addresses», «addresses.address», «addresses.phones»
Рисунок 13 – конечный вид информации, полученной со «Справочника». На рисунке видно поле «info»
ЗАКЛЮЧЕНИЕ
В результате работы были разработаны API на нескольких проектах, таких как «Детки», «Секции». Реализованные API были спроектированы и выполнены опираясь на идеологию REST-сервисов, это дало возможность организовать разработку в быстром темпе, без излишних трудозатрат и с заделом на дальнейшее расширение под новые задачи.
На основе выполненных задач подготовлен фундамент для более гибкого и широкого REST API. Также, были реализованы клиенты для работы с REST API, что тоже не доставило трудностей в проектировке и реализации.
Поставленные задачи выполнены в полном объёме. Взаимодействие между проектами настроено, данные бесперебойно передаются по требованию и всегда актуальны.
Развитие REST API на проектах системы «Фарпост» будет иметь смысл до тех пор, пока не придумано более удобного способа взаимодействия, кроме протокола HTTP. Все наработки внедрены в производство и на данный момент активны, большая часть из них работает в штатном режиме.
Благодаря своей простоте и интуитивности REST занял прочное место в веб-разработке и набирает еще большую популярность. Основываясь на том, что выбор в сторону REST был сделан такими компаниями как «Twitter», «Вконтакте», «Blizzard», «Amazon» и множеством других гигантов, можно сделать выводы о том, что REST будет и дальше развиваться.
Основываясь на том, как быстро развивается интернет-рынок, а практически все взаимодействия в интернете происходят с помощью протокола HTTP, выбор архитектуры для реализации веб-сервиса всё сильнее склоняется к REST. REST даёт возможность использовать всю мощь протокола HTTP, не нагружает сетевой канал сверх меры, передавая только необходимые данные.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1 Кристофер Д. SQL и реляционная теория. Как грамотно писать код на SQL / Дейт Кристофер; пер. с англ. А. Слинкина. Санкт-Петербург : Символ-Плюс, 2010. 474 с.
2 Roy Thomas Fielding. Architectural Styles and the Design of Network-based Software Architectures. University of California, Irvin, 2000. 162 c.
3 Зиновьев А. URI – сложно о простом (Часть 1). URL: https://habrahabr.ru/post/232385/ (дата обращения: 14.05.2017).
4 Корчак А. Разработка web API ). URL: https://habrahabr.ru/post/181988/.
5 Щербин И. RESTful API для сервера – делаем правильно (Часть 1). URL: https://habrahabr.ru/post/144011/ (дата обращения: 04.05.2017).
6 Архитектура REST. URL: https://habrahabr.ru/post/38730/ (дата обращения: 14.05.2017).
7 Щербин И. RESTful API для сервера – делаем правильно (Часть 2). URL: https://habrahabr.ru/post/144259/ (дата обращения: 04.05.2017).
8 Важные аспекты RESTful API для вашего проекта. URL: https://habrahabr.ru/post/108993/ (дата обращения: 12.02.2017).
9 Простым языком об HTTP. URL: https://habrahabr.ru/post/215117/ (дата обращения: 17.05.2017).
10 Лисицкий Е. Дао Вебсервиса. (Или да хватит же изобретать велосипеды!). URL: https://habrahabr.ru/post/75248/ (дата обращения: 12.02.2017).















