Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 42(212)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7

Библиографическое описание:
Ермолаев М.Е. ОБЗОР И ТЕСТИРОВАНИЕ ПРОИЗВОДИТЕЛЬНОСТИ REST API, РАЗРАБОТАННЫХ С ИСПОЛЬЗОВАНИЕМ ФРЕЙМВОРКОВ НА ЯЗЫКЕ PYTHON // Студенческий: электрон. научн. журн. 2022. № 42(212). URL: https://sibac.info/journal/student/212/275119 (дата обращения: 29.03.2024).

ОБЗОР И ТЕСТИРОВАНИЕ ПРОИЗВОДИТЕЛЬНОСТИ REST API, РАЗРАБОТАННЫХ С ИСПОЛЬЗОВАНИЕМ ФРЕЙМВОРКОВ НА ЯЗЫКЕ PYTHON

Ермолаев Максим Евгеньевич

студент, кафедра автоматизированных систем обработки информации и управления, Мордовский государственный университет им. Н. П. Огарева,

РФ, г. Саранск

Егунова Алла Ивановна

научный руководитель,

канд. ист. наук, доц., Мордовский государственный университет им. Н. П. Огарева,

РФ, г. Саранск

REVIEW AND TESTING THE PERFORMANCE OF REST APIS DEVELOPED USING PYTHON FRAMEWORKS

 

Maxim Ermolaev

student, Department of Automated Information Processing and Control Systems, Mordovia State University named after N.P. Ogarev,

Russia, Saransk

Alla Egunova

scientific supervisor, candidate of historical sciences, associate professor, Mordovia State University named after N.P. Ogarev,

Russia, Saransk

 

АННОТАЦИЯ

В данной статье рассматриваются фреймворки для разработки REST API на языке программирования Python, а также приводятся результаты тестирования производительности API, разработанных с использованием рассмотренных фреймворков.

ABSTRACT

This article discusses frameworks for developing REST APIs in the Python programming language, as well as the results of testing the performance of APIs developed using the considered frameworks.

 

Ключевые слова: Python, REST API, Django Rest Framework, Flask RESTPlus, FastAPI, производительность.

Keywords: Python, REST API, Django Rest Framework, Flask RESTPlus, FastAPI, performance.

 

API (Application Programming Interface) - это совокупность инструментов и функций в виде интерфейса для создания новых приложений, благодаря которому одна программа будет взаимодействовать с другой. Это позволяет разработчикам расширять функциональность своего продукта и связывать его с другими [1]. Одним из наиболее популярных подходов к разработке API является архитектурный стиль REST (Representational State Transfer, передача состояния представления).

Архитектура REST, в отличие от протокола SOAP, который также используется при разработке API, не имеет жестких требований к формату данных, в то время как протокол SOAP предполагает использование только формата XML. Наиболее распространенным форматом обмена данными в REST API является JSON (JavaScript Object Notation). Взаимодействие между клиентом и сервером в REST API осуществляется через протокол HTTP.

REST-сервис может быть реализован практически на любом языке программирования. В качестве такого языка программирования рассмотрим Python.

Язык программирования Python относится к высокоуровневым языкам, общего назначения [4, с. 133]. Python широко используется для создания REST API. Как правило, при разработке используются различные фреймворки. Среди наиболее известных фреймворков для разработки REST API на языке Python можно выделить Django REST Framework, Flask RESTPlus и FastAPI.

Django REST Framework (сокращенно DRF) является расширением фреймворка Django для разработки REST API. Он предоставляет разработчику множество инструментов для разработки API, такие как, например, встроенные политики аутентификации, сериализацию с поддержкой ORM и nonORM, веб-интерфейс справочной документации для разрабатываемого API. Данный фреймворк используется такими компаниями, как Mozilla, Red Hat и Heroku.

Фреймворк Flask RESTPlus является расширением фреймворка Flask, добавляющим поддержку быстрого создания REST API. Flask RESTPlus предоставляет набор инструментов для описания и документирования API с использованием Swagger. Также в фреймворке представлены методы для сериализации и валидации данных.

FastAPI — веб-фреймворк для создания API, написанный на Python. Один из самых быстрых и популярных веб-фреймворков, написанных на Python [2]. В отличие от Django REST Framework и Flask RESTPlus этот фреймворк поддерживает асинхронные методы. В основе фреймворка FastAPI лежат Starlette – ASGI-фреймворк для построения асинхронных веб-сервисов и Pydantic – фреймворк для валидации данных. FastAPI автоматически создает документацию API в формате OpenAPI.  Относительно Django REST Framework и Flast RESTPlus, данный фреймворк является самым «молодым» - первая версия была выпущена 5 декабря 2018 года [2].

Для проведения тестирования производительности REST API, разработанных с использованием вышеупомянутых фреймворков на языке Python была реализована функция расчета средневыборочной дисперсии. Обычно вычисляется средневыборочная дисперсия D по формуле [3, с. 499]:

                                                                                    (1)

Программный код функции вычисления дисперсии представлен на рисунке 1.

 

Рисунок 1. Программный код функции вычисления дисперсии

 

Тестирование производительности было проведено с помощью программного обеспечения Postman. Это инструмент для работы с API, который позволяет тестировщику посылать запросы к сервисам и работать с их ответами. С его помощью можно протестировать бекэнд и убедиться, что он корректно работает [5].

Тестирование REST API для получения значения средневыборочной дисперсии было проведено с различными аргументами n (1000 <= n <= 1000000) и количеством итераций, равным 100.

Результаты тестирования производительности представлены в таблице 1.

Таблица 1.

Результаты тестирования производительности

Фреймворк

Значение n

Среднее время ответа сервера, мс

Django REST Framework

1000

9

10000

22

100000

143

1000000

1164

Flask RESTPlus

1000

9

10000

16

100000

100

1000000

1134

FastAPI

1000

9

10000

25

100000

127

1000000

1297

 

Результаты тестирования в графическом виде представлены на рисунке 2.

 

Рисунок 2. График результатов тестирования производительности

 

Из результатов тестирования видно, что при размере массива случайных величин (аргумент n) равным 1000 серверы обработали запрос за одинаковое время. При увеличении параметра n до значения, равного 1000000, наблюдается значительное увеличение времени обработки запроса сервером API, разработанным с использованием фреймворка FastAPI. Наименьшее время обработки запроса и ответа показал сервер API, разработанный на фреймворке Flask RESTPlus.

Таким образом, были рассмотрены фреймворки для разработки REST API на языке Python, а также было произведено тестирование производительности API, разработанных с помощью рассмотренных фреймворков. По результатам тестирования API, предоставляющих результаты вычисления средневыборочной дисперсии, было выявлено, что сервер API, разработанный с использованием фреймворка Flask RESTPlus, обеспечивает наименьшее время обработки и ответа на запрос.

 

Список литературы:

  1. API простым языком: что это и зачем нужен // РБК Тренды URL: https://trends.rbc.ru/trends/industry/614b2abe9a79476f5b552e0e (дата обращения: 30.11.2022).
  2. FastAPI // Википедия URL: https://ru.wikipedia.org/wiki/FastAPI (дата обращения: 30.11.2022).
  3. Афонин В.В., Федосин С.А. О структурировании лабораторно-практических занятий при изучении дисциплин программирования // Образовательные технологии и общество. - 2014. - №17. - С. 497-506.
  4. Иванова Е.И. Python - будущее разработки программных продуктов // Инновационный дискурс развития современной науки. - Петрозаводск: Международный центр научного партнерства «Новая Наука», 2022. - С. 133-136.
  5. Основы Postman для самых маленьких // Хабр URL: https://habr.com/ru/company/maxilect/blog/596789/ (дата обращения: 30.11.2022).

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.