АННОТАЦИЯ 2
ВВЕДЕНИЕ 4
1 ТЕОРЕТИЧЕСКАЯ ОБЗОР 5
1.1 API 5
1.2 REST 6
1.3 Взаимодействие REST и API 9
2 АНАЛИЗ СРАВНЕНИЯ АРХИТЕКТУРНЫХ СТИЛЕЙ API: SOAP, REST,
GraphQL и RPC 11
2.1 Удаленный вызов процедуры (RPC) 11
2.2 Протокол доступа к простым объектам (SOAP) 13
2.3 Передача состояния представления (REST) …………………………………14
2.4 Запрос только необходимых данных (GraphQL) 16
3 КРАТКОЕ ОПИСАНИЕ ПРОЕКТА 18
3.1 Структура проекта 19
3.2 Описание программы 20
4 ЛИСТИНГ РЕАЛИЗАЦИИ ПРОГРАММЫ В ГОТОВОМ ПРОЕКТЕ API. ..23
ЗАКЛЮЧЕНИЕ 27
БИБЛИОГРАФИЧЕСКИЙ СПИСОК …………………………………………...
Архитектура REST API – самое популярное решение для организации взаимодействия между различными программами. Так произошло, поскольку HTTP-протокол реализован во всех языках программирования и всех операционных системах, в отличие от проприетарных протоколов.
Когда в компании появляется необходимость спроектировать серверное приложение в стиле REST, то изначально кажется, что это довольно простая задача и для её решения достаточно наработанного опыта. Но, если детально разбирать процесс разработки архитектуры и приведения REST-сервисов к единому стилю, то могут возникать спорные вопросы и появляться разные точки зрения на реализацию того или иного аспекта. И лучше всего дополнительно изучить лучшие практики, которые необходимо использовать при проектировании RESTful приложения.
REST – это не стандарт, потому нет единых строгих правил, которых стоит придерживаться. Это значит, что до сих пор нет полной согласованности о том, какие решения лучше применять в той или иной ситуации. И достаточно частое явление, что заходят споры о том, какие HTTP методы использовать и какой HTTP код возвращать в каждой конкретной ситуации.
Цель выпускной квалификационной работы – разработка и написание кода программы для администрирования серверов Supermicro.
Задачи выпускной квалификационной работы:
- изучить особенности функционирования системы API;
- провести анализ сравнения архитектурных стилей API;
- изучить взаимодействие REST и API;
- разработать структуру и код программы администрирования серверов.
Объектом исследования выпускной квалификационной работы является деятельность ИТ-компании HOSTKEY.
Предметом выпускной квалификационной работы является программа для администрирования серверов.
Практическая значимость выпускной квалификационной работы состоит в разработке кода программы, позволяющего сократить время на обработку данных и облегчающего взаимодействие работы с продуктами компании.
Несомненно, есть и другие способы построения API-систем, например: JSON, RPC, XML-RPC и GraphQL. Но пока REST остается самым популярным и востребованным инструментом для построения взаимодействий между удаленными приложениями.
За годы использования REST накопилось много практик по разработке API, балансировке и обработке API HTTP-трафика на облачных и железных серверах, а также в приложениях, которые работают в контейнерах. Так что REST API – пример решения, которое подходят в большинстве своем для любых систем.
В результате выполнения выпускной квалификационной работы был разработан программный код для администрирования серверов Supermicro, предназначенный для клиентов и сотрудников компании.
В ходе выполнения работы были решены следующие задачи:
- изучены особенности функционирования системы API;
- проведен анализ сравнения архитектурных стилей API;
- изучено взаимодействие REST и API;
- разработана структура и код программы администрирования серверов;
Написание кода было осуществлено с использованием современного языка программирования Golang и популярным архитектурным стилем API. Также были использованы эффективные системы по управлению идентификации пользователей FreeIPA. Данная программа была протестирована и запущена в финальной версии REST API компании HOSTKEY.
Таким образом, в результате выполнения выпускной квалификационной работы цель достигнута. Разработанная программа значительно облегчает взаимодействие при работе с продуктами компании, повышает легкость управления и оптимизирует время работы пользователей.