Что такое api в скрипте
Перейти к содержимому

Что такое api в скрипте

  • автор:

API СКРИПТЫ И ОСОБЕННОСТИ ИХ ИСПОЛЬЗОВАНИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Палаш Б.В.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Палаш Б.В.

ОСНОВНЫЕ ПРИНЦИПЫ РАБОТЫ АЛГОРИТМА РАСПРЕДЕЛЕНИЯ СТУДЕНТОВ ПО НАУЧНЫМ РУКОВОДИТЕЛЯМ В СРЕДНИХ И ВЫСШИХ УЧЕБНЫХ ЗАВЕДЕНИЯХ

Разработка платформы для управления инфраструктурой интернета вещей

Исследование методов межпроцессного взаимодействия в информационной системе с горизонтальным взаимодействием

Разработка синтаксического анализатора для снятия данных о состоянии атмосферного воздуха Красноярского края с сайта krasecology. Ru

АКТУАЛЬНЫЕ ВЕБ-УЯЗВИМОСТИ СЕРВИСОВ ФИНАНСОВО-БАНКОВСКОГО СЕКТОРА И СПОСОБЫ ЗАЩИТЫ ВЕБ-ПРИЛОЖЕНИЯ
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

API SCRIPTS AND FEATURES OF THEIR USE

This article describes the basic principles of API scripts, describes their importance in modern programming. The main methods of protection and transmission of information when working with remote applications are considered.

Текст научной работы на тему «API СКРИПТЫ И ОСОБЕННОСТИ ИХ ИСПОЛЬЗОВАНИЯ»

Палаш Б.В. студент 2 курса

Хакасский государственный университет им. Н. Ф. Катанова

научный руководитель: Голубничий А.А.

Россия, г. Абакан

API СКРИПТЫ И ОСОБЕННОСТИ ИХ ИСПОЛЬЗОВАНИЯ

Аннотация: В статье описываются основные принципы работы API скриптов, рассказана их важность в современном программировании. Рассматриваются основные способы защиты и передачи информации при работе с удаленными приложениями.

Ключевые слова: API, MD5, Передача данных, Программное взаимодействие, Алгоритмы хеширования

Palash B. V. student

Katanov Khakass State University Russia, Abakan Scientific supervisor: Golubnichiy A.A.

API SCRIPTS AND FEATURES OF THEIR USE

Abstract: This article describes the basic principles of API scripts, describes their importance in modern programming. The main methods of protection and transmission of information when working with remote applications are considered.

Key words: API, MD5, Data transmission, Programmatic interaction, Message Digest

Каждый разработчик или команда разработчиков сталкивались с такой ситуацией, в которой необходимо расширить функционал своего проекта, но предоставлять доступ сторонним участникам процесса разработки к исходному коду проекта является не желательным, для решения таких проблем возможно использовать API скрипт.

API (программный интерфейс приложения, интерфейс прикладного программирования) — это набор классов и методов с помощью которых один программный продукт может взаимодействовать с другими программами [1].

Взаимодействие между программными продуктами посредствами API скриптов может происходить многими способами, но для рассмотрения были взяты два самых популярных — это методы POST и GET запросов.

GET это один из запросов которые поддерживает HTTP протокол. Данный запрос передаётся с использованием адресной строки браузера данный способ корректен и подходит, например, в случаях существования формы поиска. При вводе определенного текста в форму поиска данный текст передаётся посредством GET запроса и генерируется форма с результатами. При таком подходе мы сразу можем получить ссылку, которую можно переслать другому пользователю, и он при переходе сможет попасть сразу на

туже страницу с результатами поиска, что уберет необходимость просить пользователей забивать поисковый текст снова.

Главными минусами GET запросов является ограниченное количество данных, которые можно передать через него и возможность редактирования этих данных без каких-либо помех самим пользователем, что может негативно сказаться на работе проекта.

В отличии от GET, параметры POST запроса не отображаться в адресной строке браузера, по этой причине пользователь не в состоянии увидеть или изменить передаваемые данные. Так же POST запрос не страдает проблемой, связанной с длиной отправляемых данных (можно передавать данные или файлы любых объемов) [2].

Рисунок 1. Пример работы POST и GET запросов

Рассмотрев эти два самых популярных метода можно прийти к выводу что передача данных в API скрипт и получение данных от него обратно лучше производить с использованием именно POST запросов, что снимает лимит на количество передаваемых данных, а также практически исключит возможность случайной ошибки пользователя при передаче данных.

Способы для передачи данных очень важная часть любого API скрипта, однако, для того чтобы передать данные другому проекту нужно быть уверенным, что проект сможет прочитать такие данные. В связи с этим встает вопрос формата передачи данных в скриптах, ведь не все языки программирования хранят информацию одинаково и не во всех языках программирования существует такие типы данных. Для решения задачи взаимодействия скрипта и приложения возможно использовать JSON формат.

JSON — Это один из самых популярных форматов данных основанный на тексте [3]. С помощью простого синтаксиса возможно легко сохранять как простые цифры и строки, так и массивы, объекты, используя при этом не что иное как текст. Так же можно связывать объекты и массивы, что позволяет создавать сложные структуры данных. После перевода данные в форма JSON мы можем передавать его любым доступным нам способом ведь в результате мы получаем лишь текстовую строку. На данный момент библиотека JSON написана практически для каждого языка программирования, а в некоторых

входит в стандартный набор, но даже если в выбранном языке программирования нет данной библиотеки зная ее формат можно написать парсер с JSON самостоятельно.

Так как главным минусом API скриптов является общедоступность, то широко встает вопрос о безопасности такого способа взаимодействия.

Первым способом для обеспечения безопасности IP ключа является передача пост запросов по HTTPS протоколу. HTTPS (HyperText Transfer Protocol Secure) — это усовершенствованный протокол который взял свое начало от HTTP [4]. Данные передаваемы в HTTPS протоколе отправляются через криптографические протоколы SSL или TLS. В отличие от HTTP в котором для передачи используется 80 TCP-порт, для HTTPS по умолчанию используется TCP-порт 443. Использование данного порта дает возможность получить защиту от снифферских атак или от атака через посредника (Прямое подключение к каналу пользователя).

Главная проблема HTTPS связана с возможностью анализирования входящего и исходящего трафика. Суть данной проблемы связана с тем, что данные передаются по SSL или TLS протоколу данные протоколы изменяют только содержимое файла, но не влияют на его размер и скорость прохождения. В связи с этим можно без каких-либо трудностей отлавливать передаваемые пакеты читать их или заменять другими.

Второй способ для обеспечения защиты API скрипта это ввод системы ключевого доступа. Суть данной системы состоит в том, чтобы запретить доступ к самому скрипту разработчикам, не зарегистрированным на сайте и не прошедшим одобрение. Такая система работает на большинстве API скриптов, в частности платежный агрегатор Free-kassa использует такой уровень доступа. Зарегестрированному разработчику выдается специальный набор ключей и паролей которые он передает в API скрипт вместе со своим запросом на сервер. Сервер проверив подлинность ключей и в случае положительного значения выдает результат.

Формирование подписи в платежной форме

ГРодписи дчя плате фермы форчжрустся путем нянэвдрния MDS-xcmks от строки ID вашига магазин а Сумм a г г л й те- ж а: С © к р е т н ü е слаоо:Н&мер заказа’ гтример из Г’НР

■irf Г » 7+IJ : 300 , J. s : imi ff* : 3 Н ‘ I

Пример платёжной формы: ■ ipftp

Slip — uSS-i. Swci111 .fordcr _HKSiint. 1 fs^crcijemd.’ 5эгФег_1,1 .

■ input type* »«idd*:- пдвд ■ ‘■ 1 ‘»plw1 ? ■:input type- ‘Uder ние- J ‘ .jZjC-‘L

mpyt typ*» «idr)erJ пяг^-‘liinj vpjyer’ni’ ■

■ input type-‘ ‘ iddflr ■ liaire- uE_ißfih’ vlS-uE-1 i^dhp-idaSirl’lCiglfl1 JiV* ■«input tjfpe^’ s(ilr«Lt ‘ П0*4’~;р*у’ v«3ue4Li,ilnn«Tii.T»,i.

Рисунок 2. Формирование подписи (Ключа)

На рисунке 2 показан пример формирования подписи для API ключа Free-kassa который составляется из номера заказа, имени аккаунт, уникального индентификатора магазина и секретного пороля. Весь пароль хешируется специальным способом MD5.

MD5 (Message Digest 5) — 128-битный алгоритм хеширования, разработанный профессором Рональдом Л. Ривестом из Массачусетского технологического института в 1991 году. Предназначен для создания «отпечатков» или дайджестов сообщения произвольной длины и последующей проверки их подлинности. Широко применялся для проверки целостности информации и хранения хешей паролей [5].

Третьим способом защиты данных является разграничение прав доступа. Данное разграничение не имеет смысла для простых скриптов, но в нашем случае его стоит рассмотреть так как у нас хранится персональная информация, которая должна быть доступна по запросу с API скрипта. Данный способ подразумевает наличие отдельного хеш ключа который будет открывать доступ приложению к персональным данным пользователя в случае получения API скриптом логина и пароля пользователя. Данный способ широко используется в API скриптах таких сайт как вконтакте, mail.ru и многих других социальных сетях.

Использование API скриптов является одним из самых простых и быстрых возможностей реализации взаимодействия между различными проектами. И при соблюдении достаточных мер безопасности достаточно надежным.

1. WINDOWS API [Электронный ресурс] URL: http://system-repair.net (дата обращения: 01.01.2019).

2. POST и GET [Электронный ресурс] URL: http://php.net/ (дата обращения:

3. Введение в JSON [Электронный ресурс] URL: http://json.org/ (дата обращения: 01.01.2019).

4. HTTPS | MDN [Электронный ресурс] URL: https://developer.mozilla.org (дата обращения: 01.01.2019).

5. Функции обработки строк [Электронный ресурс] URL: http://www.php.su (дата обращения: 01.01.2019).

Палаш Б.В. студент 2 курса

Хакасский государственный университет им. Н. Ф. Катанова

научный руководитель: Голубничий А.А.

Россия, г. Абакан ОСНОВНЫЕ ПРИНЦИПЫ РАБОТЫ АЛГОРИТМА РАСПРЕДЕЛЕНИЯ СТУДЕНТОВ ПО НАУЧНЫМ РУКОВОДИТЕЛЯМ В СРЕДНИХ И ВЫСШИХ УЧЕБНЫХ

Аннотация: В статье описываются основные принципы работы алгоритма распределения студентов по научным руководителям для средних и высших учебных заведений.

Ключевые слова: Образование, Алгоритмы

Palash B. V. student

Katanov Khakass State University Russia, Abakan Scientific supervisor: Golubnichiy A.A. BASIC PRINCIPLES OF OPERATION OF ALGORITHM OF DISTRIBUTION OF STUDENTS BY ACADEMIC SUPERVISORS IN SECONDARY AND HIGHER EDUCATIONAL INSTITUTIONS Abstract: This article describes the basic principles of the algorithm of distribution of students by supervisors for secondary and higher educational institutions.

Key words: Education, Algorithm

Каждые полгода любой институт или колледж сталкивается с необходимостью распределения студентов среди научных руководителей для индивидуальной работы по выполнению выпускной квалификационной работы или курсовых проектов. Часто возникают различные споры и недовольства распределительной системой. Некоторые институты распределяют студентов по научным руководителям без обсуждения с обучающимися, самостоятельно. Это иногда приводит к тому, что студенты попадают к научному руководителю, не обладающему достаточными

Объекты API для создания скриптов

Справочник по API скриптов для WMI описывает каждый объект скрипта с использованием определенного синтаксиса. Описание этого синтаксиса см. в разделе Соглашения о документах для API скриптов.

В следующей таблице перечислены объекты скриптов WMI и способы их использования.

Объект Описание
SWbemDateTime Создает и анализирует значения даты и времени CIM.
SWbemEventSource Извлекает события в сочетании с SWbemServices.ExecNotificationQuery.
SWbemLastError Предоставляет расширенные сведения об ошибке при возникновении ошибки.
SWbemLocator Получает объект SWbemServices , который может получить доступ к WMI на определенном хост-компьютере.
SWbemMethod Содержит одно определение метода WMI.
SWbemMethodSet Возвращает коллекцию объектов SWbemMethod .
SWbemNamedValue Содержит одно именованное значение.
SWbemNamedValueSet Получает доступ к коллекции объектов SWbemNamedValue .
SWbemObject Содержит и управляет одним классом или экземпляром объекта WMI.
SWbemObjectEx Расширяет функциональные возможности SWbemObject. Этот объект добавляет метод Refresh для объектов SWbemRefresher .
SWbemObjectPath Создает и проверяет путь к объекту.
SWbemObjectSet Получает доступ к коллекции объектов SWbemObject .
SWbemPrivilege Задает или очищает привилегию.
SWbemPrivilegeSet Получает доступ к коллекции объектов SWbemPrivilege .
SWbemProperty Содержит одно свойство WMI.
SWbemPropertySet Получает доступ к коллекции объектов SWbemProperty .
SWbemQualifier Содержит один квалификатор свойства.
SWbemQualifierSet Получает доступ к коллекции объектов SWbemQualifier .
SWbemRefresher Собирает и обновляет значения свойств объекта в одной операции.
SWbemRefreshableItem Представляет один обновляемый элемент в объекте SWbemRefresher , например свойство .
SWbemSecurity Управляет параметрами безопасности, такими как привилегии модели COM, AuthenticationLevel и ImpersonationLevel.
SWbemServices Создает, обновляет и извлекает экземпляры или классы.
SWbemServicesEx Расширяет функциональные возможности SWbemServices. Этот объект добавляет методы Put и PutAsync , чтобы разрешить сохранение класса или экземпляра в нескольких пространствах имен.
SWbemSink Получает результаты асинхронных операций и уведомлений о событиях, которые используются клиентскими приложениями.

API скриптов для WMI

Справочник по скриптам WMI содержит определения для API скриптов WMI. Используйте этот API при написании приложений с помощью Microsoft Visual Basic, Visual Basic для приложений, Visual Basic Scripting Edition (VBScript) или любого другого языка сценариев, поддерживающего технологии активных сценариев.

PowerShell также доступен для создания скриптов с помощью инструментария WMI. Командлет Get-WMI и три ускорителя типов ([wmi], [wmiclass] и [wmisearcher]) обеспечивают базовый административный доступ к WMI.

Объекты скриптов WMI, за исключением SWbemDateTime, не помечены как безопасные для сценариев, выполняемых на HTML-страницах в Интернете Обозреватель. Таким образом, если уровень безопасности в Обозреватель Интернета не будет снижен, сценарий завершится ошибкой. SWbemDateTime помечен как безопасный для инициализации и создания сценариев. Однако используйте все объекты скриптов WMI в вызовах GetObject и CreateObject в коде на стороне сервера в Active Server Pages (ASP).

  • Объектная модель API для создания скриптов
  • Соглашения о документах для API сценариев
  • Создание скриптов для объектов API
  • Константы API для создания скриптов

Что такое api в скрипте

API версия 2

Запросы к API идут по протоколу HTTP.

Все запросы имеют вид: https://scriptdesigner.ru/integration/apiv2/controller/method?key=API-KEY

  • https://scriptdesigner.ru/integration/apiv2 — эта часть URL постоянна
  • controller/method — роутинг для получения данных. Варианты будут описаны ниже.
  • key — ключ API (так же можно передавать как HTTP-заголовок — Key:Ваш Ключ API )

json Формат ответа по-умолчанию
jsonp Чтобы получить jsonp ответ — передайте GET-параметр «_format=jsonp». Название callback функции можно передать в GET-параметре «callback=my_func», по-умолчанию используется название функции «callback»

Проверка ключа API( user/check )

Проверка правильности введенного пользователем ключа API.

URL запроса:

https://scriptdesigner.ru/integration/apiv2/user/check?key=API-KEY

Пример ответа:

Список пользователей ( user/list )

Выдает список ваших пользователей с их ролями и ключами авторизации.

URL запроса:

https://scriptdesigner.ru/integration/apiv2/user/list?key=API-KEY

Пример ответа:
[ [email protected]","auth_token":"ключ 1">, [email protected]","auth_token":"ключ 2">, [email protected]","auth_token":"ключ 3"> ]

Авторизация пользователя ( user/auth )

Авторизует пользователя по ID и токену авторизации.

URL запроса:

https://scriptdesigner.ru/integration/apiv2/user/auth?key=USER_KEY&id=USER_ID&token=AUTH_TOKEN

Параметры:
  • key [обязательный] — ключ API администратора для всех пользователей
  • id [обязательный] — ID пользователя
  • token [обязательный] — Токен авторизации пользователя
Ответ:

Переадресует на главную страницу.

Список скриптов ( script/list )

Возвращает список скриптов пользователя. Каждый элемент списка содержит ID скрипта, название, и метку — опубликован скрипт или нет. По-умолчанию возвращает все опубликованные скрипты.

URL запроса:

https://scriptdesigner.ru/integration/apiv2/script/list?key=API-KEY

Пример ответа:

Добавить запись звонка ( call/attach-record )

Прикрепляет к звонку URL записи телефонного разговора. URL должен быть доступен и вести к звуковому файлу — чтобы можно было прослушать при помощи онлайн плеера.

URL запроса:
Параметры:
  • id [обязательный] — ID звонка. Вы можете получить ID звонка, используя WebHooks
  • url [обязательный] — URL записи разговора (urlencoded строка)

Список настраиваемых полей ( field/list )

Возвращает список полей, которые можно использовать при запуске скриптов.

URL запроса:

https://scriptdesigner.ru/integration/apiv2/field/list?key=API-KEY

Пример ответа:

Создать настраиваемое поле ( field/create )

Создает настраиваемое поле

Параметры:
  • code [обязательный] — код поля, используется для идентификации поля при прогоне скриптов
  • name [обязательный] — название поля
  • type [обязательный] — тип поля (возможные значения: string, number, date, boolean, in)
  • type_data [не обязательный] — варианты выбора (заполняется для типа поля `in`)
URL запроса:
Пример ответа:

Изменить настраиваемое поле ( field/update )

Изменяет настраиваемое поле

Параметры:
  • code [обязательный] — код поля, используется для идентификации поля при прогоне скриптов
  • name [не обязательный] — название поля
  • type [не обязательный] — тип поля (возможные значения: string, number, date, boolean, in)
  • type_data [не обязательный] — варианты выбора (заполняется для типа поля `in`)
URL запроса:
Пример ответа:

Удалить настраиваемое поле ( field/delete )

Удаляет настраиваемое поле

Параметры:
  • code [обязательный] — код поля, используется для идентификации поля при прогоне скриптов
URL запроса:

https://scriptdesigner.ru/integration/apiv2/field/delete?key=API-KEY&code=name

Пример ответа:

Автозапуск скрипта

Автозапуск скрипта должен происходить после авторизации пользователя в системе (см. «Авторизация пользователя»).

Для автозапуска необходимо использовать url: https://scriptdesigner.ru/dashboard#/call/9999

Параметры:
  • dashboard [обязательный] — интерфейс администратора аккаунта. Также может иметь значения operator-dashboard (интерфейс оператора) и designer-dashboard (интерфейс проектировщика)
  • 9999 [обязательный] — номер скрипта для звонка

API позволяет передавать в звонок различные данные.

Подробнее о передаче данных смотрите в разделе Webhook (только для авторизованных пользователей).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *