Тип работы:
Предмет:
Язык работы:


Создание client SDK с помощью код-генератора AutoRest и OpenAPI на примере приложения CardsMobile

Работа №192192

Тип работы

Магистерская диссертация

Предмет

прикладная информатика

Объем работы68
Год сдачи2019
Стоимость5680 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
4
Не подходит работа?

Узнай цену на написание


Реферат 2
ВВЕДЕНИЕ 8
1 Описание предметной области 10
1.1 Понятие API 10
1.2 Зачем нужен API 12
1.3 Типы API 14
1.4 Спецификация OpenAPI 15
1.4.1 Основные понятия OpenAPI 16
1.4.2 Базовая структура спецификации 16
1.4.3 Метаданные 17
1.4.4 Серверы 18
1.4.5 Пути 19
1.4.6 Пути 19
1.4.7 Тело запроса 20
1.4.8 Ответы 21
1.4.9 Модели ввода и вывода 22
1.4.10 Аутентификация 23
2 Создание SDK для web-сервиса CardsMobile 25
2.1 Swashbuckle 26
2.2 Настройка Swashbuckle 26
2.3 Анализ и выбор из существующих код-генераторов на основе OpenAPI
для создания SDK 28
2.3.1 Autorest 28
2.3.2 REST United 29
2.3.3 Swagger-codegen 34
2.3.4 APIMatic 37
2.3.5 Общее сравнение платформ 40
2.3.6 Выбор код-генератора для создания SDK 42
2.4 Генерация SDK 44
3 Создание web-сервиса CardsMobile на основе сгенерированного SDK 45
3.1 Назначение системы 45
3.2 Основные требования к системе 45
3.3 Программное обеспечение, используемое при разработке сервиса 46
3.4 Основные сценарии системы 47
ЗАКЛЮЧЕНИЕ 61
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 63
ПРИЛОЖЕНИЕ А Оболочка для код-генератора AutoRest 66
ПРИЛОЖЕНИЕ Б Фрагмент схемы баз данных Loymax 71


Актуальность работы. В процессе разработки новых интернет приложений программисту очень часто приходится обращаться к чужим API, использовать их интерфейс и внедрять в свою программу. Существует несколько ситуаций, в которых создание API будет целесообразным [1,2]:
1. Мобильное приложение. Множество мобильных приложений для различных сервисов работают при использовании API этих самых сервисов. Если описано API, сделано мобильное приложение, то клиент со смартфоном будет получать информацию в свое устройство именно через API.
2. Открытое программное обеспечение. Создаётся API, при помощи которого пользователи при желании смогут создать новые клиенты для существующего приложения или новые сервисы на его основе.
3. Максимальное разделение frontend и backend.
При интеграции с платформой, предлагающей API REST, обычно, разработчик самостоятельно пишет код для взаимодействия с чужим API. Данный подход в современных реалиях полной автоматизации достаточно устарел и ему на смену должен прийти новый менее затратный в финансовом и временном плане.
Актуальность поиска автоматизированного подхода в создании SDK для ПО в сфере российской лояльности и обусловили тему данной диссертации.
Цель работы. Разработка web-сервиса CardsMobile для взаимодействия мобильного приложения Кошелек и API Loymax с помощью подхода с генерацией SDK на основе OpenAPI.
Чтобы достигнуть поставленной цели необходимо было выполнить следующие задачи:
— анализ предметной области;
— найти новый подход создания SDK для ПО в сфере лояльности;
— проанализировать спецификацию OpenAPI;
— проанализировать существующие аналоги для генерации кода на основе спецификации OpenAPI;
— создать SDK-библиотеку на языке C# для API Loymax;
— модифицировать генерируемый код в соответствии с требованиями предметной области;
— создать web-сервис CardsMobile с учётом требований мобильного приложения Кошелек и компании Loymax.
Научная новизна диссертационного исследования. Элементы научной новизны диссертационного исследования определяются следующими моментами:
1) выполнен анализ существующих генераторов SDK на основе спецификации OpenAPI;
2) выработан новый подход для создания SDK для существующего API в сфере автоматизированных программ лояльности;
3) разработан сервис CardsMobile на основе сгенирированного SDK.
Практическая ценность: примененный подход в создании SDK, во- первых, позволит сэкономить на времени создания SDK, а также сократить финансовые затраты на разработку. Во-вторых, на рынке существует множество потенциальных покупателей и пользователей продукта, которые используют языки, отличные от той, на которой было разработано API. Раньше из-за этого фактора, необходимо было нанимать специалистов по той или иной технологии, которые смогли бы создавать и поддерживать необходимые SDK, теперь же это можно поддерживать только одному человеку, которому даже не нужно знать языки, на которых создаётся SDK.
Апробация материалов исследования. Основные положения диссертации обсуждались на:
— XV Международной школы-конференции студентов, аспирантов, молодых ученых «Инноватика-2019», г. Томск, 26-28 апреля 2019 года;
— VII Международной молодежной научной конференции «Математическое и программное обеспечение информационных, технических и экономических систем», г. Томск, 24-26 мая 2019 года.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В ходе выполнения работы были реализованы поставленные цель и задачи.
1) Проведён анализ предметной области.
2) Найден новый подход создания SDK для ПО в сфере лояльности.
3) Проанализирована спецификация OpenAPI.
4) Проанализированы существующие аналоги для генерации кода на основе спецификации OpenAPI.
5) Создана SDK-библиотека на языке C# для API Loymax.
6) Модифицирован генерируемый код в соответствии с требованиями предметной области.
7) Создан web-сервис, реализующий следующие функции:
— поиск карты лояльности по данным профиля пользователя;
— обновление разрешенных пользователем каналов коммуникации;
— обновление персональных данных пользователя;
— выпуск карты с номером, указанным пользователем;
— выпуск новой карты по номеру анонимной карты;
— запрос карты лояльности по её номеру;
— запрос истории покупок по номеру карты за указанный период;
— запрос списка акций.
Автоматическая генерация SDK - сложная перспектива; есть много вещей, которые необходимо учитывать при попытке автоматически генерировать код. Отсутствующие данные, такие как определения моделей, коды ошибок и информация аутентификации, могут привести к тому, что автоматически сгенерированный код будет иметь очень низкое качество, а в некоторых случаях код не будет работать. Дизайн API также является основным фактором при попытке автоматически генерировать код. Нет единого, широко принятого, стандартизованного в отрасли стандарта проектирования для API. Не говоря уже о том, что некоторые API разработаны плохо, возвращая некорректно отформатированный JSON и производя неожиданные результаты.
Результаты исследования докладывались на:
— XV Международной школы-конференции студентов, аспирантов, молодых ученых «Инноватика-2019», г. Томск, 26-28 апреля 2019 года;
— VII Международной молодежной научной конференции
«Математическое и программное обеспечение информационных, технических и экономических систем», г. Томск, 24-26 мая 2019 года.
Результаты исследования опубликованы в изданиях:
— Сборник материалов XV Международной школы-конференции студентов, аспирантов, молодых ученых «Инноватика-2019» (готовится к печати);
— Материалы VII Международной молодежной научной конференции «Математическое и программное обеспечение информационных, технических и экономических систем» (готовится к печати).



1. Laura Bohill, Phil Sturgeon Build APIs You Won't Hate. Издательство Leanpub, 2015. - 181 с.
2. Проектирование API [Электронный ресурс]. -
https://docs.microsoft.com/ru-ru/azure/architecture/best-practices/api-design (дата посещения 08.04.2019)
3. Будущее API в 2014 году [Электронный ресурс]. -
https://habr.com/ru/company/fabernovel/blog/222549/ (дата посещения
08.04.2019)
4. Будущее API [Электронный ресурс]. - https://habr.com/ru/post/326080/ (дата посещения 08.04.2019)
5. Микросервисы, API и инновации: вся сила API [Электронный ресурс].
- https://habr.com/ru/company/piter/blog/431176/ (дата посещения 08.04.2019)
6. Как построить REST-like API в крупном проекте [Электронный ресурс]. - https://habr.com/ru/company/yamoney/blog/347390/ (дата посещения 08.04.2019)
7. Leonard Richardson, Mike Amundsen RESTful Web APIs: Services for a Changing World. Издательство Питер, 2013. - 372с.
8. Спецификация OpenAPI [Электронный ресурс]. -
https://www.openapis.org/blog/2017/07/26/the-oai-announces-the-openapi- specification-3-0-0 (дата посещения 08.04.2019)
9. Что такое Web SDK [Электронный ресурс]. - https://voximplant.ru/help/faq/what-is-web-sdk (дата посещения 08.04.2019)
10. Форум о программировании для Android [Электронный ресурс].
- https://bjoernkw.com/2017/05/21/using-swagger-to-generate-client-sdks-for-rest- apis/ (дата посещения 22.05.2019)
11. Настройка Swagger для WebAPI [Электронный ресурс]. - https://habr.com/ru/post/317338/ (дата посещения 22.05.2019)
12. В чём отличие между Swagger и OpenAPI [Электронный ресурс]. - https://swagger.io/blog/api-strategy/difference-between-swagger-and-openapi/ (дата посещения 22.05.2019)
13. Официальный репозиторий Autorest [Электронный ресурс]. - https://github.com/Azure/autorest (дата посещения 02.03.2018)
14. RestUnited [Электронный ресурс]. - https://restunited.com (дата посещения 02.03.2018)
15. Generate client side code using SwaggerCodegen [Электронный ресурс]. - https://rnavagamuwa.com/open-source/generate-client-side-code-using (дата посещения 02.03.2018)...26



Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ