API RESTful использует модель запрос-ответ протокола передачи гипертекста (HTTP) для связи с MATLAB ® Production Server™. Эта модель включает методы запросов, коды ответов, заголовки сообщений и тела сообщений. API RESTful имеет следующие характеристики :
Методы HTTP - POST, GET и DELETE - образуют основной режим связи между клиентом и сервером.
Уникальные универсальные идентификаторы ресурсов (URI) идентифицируют ресурсы, создаваемые сервером.
Заголовки сообщений передают метаданные, такие как Content-Type запроса.
API поддерживает application/json как HTTP Content-Type заголовок.
API RESTful для выполнения функций MATLAB также поддерживает application/x-google-protobuf как HTTP Content-Type только через API клиента Java ® и .NET.
Текст сообщения запроса содержит информацию, подлежащую отправке на сервер.
При использовании JSON в качестве формата сериализации данных входные данные функции MATLAB, содержащиеся в развернутом архиве, представляются в JSON и инкапсулируются в тело сообщения.
При использовании буферов протокола (protobuf) для сериализации данных клиентские библиотеки Java и .NET предоставляют вспомогательные классы для внутреннего создания сообщений protobuf на основе формата proto и возвращают соответствующий массив байтов. Используйте этот массив байтов в теле сообщения запроса.
Текст сообщения ответа содержит информацию о запросе, такую как состояние или результаты.
Если для сериализации данных используется protobuf, клиентские библиотеки Java и .NET предоставляют методы и классы для десериализации ответов protobuf.
API поддерживает синхронный и асинхронный режимы сервера.
Примечание
Приведенные ниже примеры и графика используют JSON в качестве формата сериализации данных.
RESTful API для выполнения функции MATLAB
| Напечатать | Цель |
|---|---|
Синхронное выполнение (производственный сервер MATLAB) | Выполнение синхронных запросов к серверу |
Асинхронное выполнение (производственный сервер MATLAB) | Выполнение асинхронных запросов к серверу |
API RESTful для обнаружения и диагностики серверов
| Напечатать | Цель |
|---|---|
Служба обнаружения (производственный сервер MATLAB) | Обнаружение функций MATLAB, развернутых на сервере |
Проверка работоспособности (производственный сервер MATLAB) | Проверка работоспособности сервера |
В синхронном режиме после отправки клиентом запроса сервер блокирует все дальнейшие запросы до тех пор, пока не завершит обработку исходного запроса. После завершения обработки сервер автоматически возвращает ответ клиенту.
Вызовы API RESTful для синхронного режима
| Звонить | Цель |
|---|---|
| Синхронный запрос POST (производственный сервер MATLAB) | Выполнение синхронного запроса на сервер и ожидание ответа |
На следующем рисунке показано, как API RESTful работает в синхронном режиме.

В этом примере показано, как использовать API RESTful и JSON, предоставляя две отдельные реализации - одну с использованием JavaScript
®, а другую с использованием Python ®. При выполнении
этого примера сервер возвращает список из 25 разделенных запятыми значений. Эти значения являются выходными данными развернутой функции MATLAB mymagic, представленный в формате «основной столбец». Код MATLAB для mymagic следует функция.
function out = mymagic(in)
out = magic(in);
В этом примере выполняется экземпляр производственного сервера MATLAB, содержащий развернутую функцию MATLAB. mymagic должен быть запущен. Дополнительные сведения о создании развертываемого архива см. в разделе Создание развертываемого архива для производственного сервера MATLAB. Дополнительные сведения о настройке сервера см. в разделе Создание экземпляра сервера (MATLAB Production Server).
При реализации JavaScript API RESTful сценарий включается в <script> </script> теги HTML-страницы. При открытии этой HTML-страницы в веб-браузере сервер возвращает значения mymagic функция. Обратите внимание, что сервер должен иметь CORS включен для работы кода JavaScript. Дополнительные сведения о включении CORS, см. cors-allowed-origins(Производственный сервер MATLAB).
Код:
В этом примере используется Python 2.x. При использовании Python 3.x необходимо изменить некоторые части кода.
Код:
Сведения о том, как развернуть функцию MATLAB на производственном сервере MATLAB и вызвать ее с помощью RESTful API и JSON, см. в разделе Веб-инструмент с использованием RESTful API, JSON и JavaScript.
В асинхронном режиме клиент может отправлять несколько запросов, и в каждом случае сервер отвечает созданием нового ресурса и возвращением уникального URI, соответствующего каждому запросу. URI инкапсулируется в теле ответного сообщения. Клиент может использовать URI, возвращенный сервером, в целях запроса и получения результатов среди других применений.
Вызовы API RESTful для асинхронного режима
| Звонить | Цель |
|---|---|
| Асинхронный запрос POST (производственный сервер MATLAB) | Сделать асинхронный запрос на сервер |
| Представление асинхронного запроса GET (производственный сервер MATLAB) | Просмотр представления асинхронного запроса к серверу |
| Сбор запросов GET (производственный сервер MATLAB) | Просмотр коллекции запросов |
| Информация о состоянии GET (производственный сервер MATLAB) | Получение информации о состоянии запроса |
| Результат запроса GET (производственный сервер MATLAB) | Получение результатов запроса |
| Запрос на отмену POST (производственный сервер MATLAB) | Отменить запрос |
| Запрос DELETE (производственный сервер MATLAB) | Удалить запрос |
На следующем рисунке показано, как API RESTful работает в асинхронном режиме. Рисунок не охватывает все вызовы API RESTful. Полный список вызовов см. в предыдущей таблице.

В этом примере показано, как использовать API RESTful и JSON для асинхронного выполнения с использованием JavaScript. При выполнении этого примера сервер возвращает список из 100 разделенных запятыми значений. Эти значения являются выходными данными развернутой функции MATLAB mymagic, представленный в формате «основной столбец». Код MATLAB для mymagic следует функция.
function out = mymagic(in)
out = magic(in);
В этом примере выполняется экземпляр производственного сервера MATLAB, содержащий развернутую функцию MATLAB. mymagic должен быть запущен. Дополнительные сведения о создании развертываемого архива см. в разделе Создание развертываемого архива для производственного сервера MATLAB. Дополнительные сведения о настройке сервера см. в разделе Создание экземпляра сервера (MATLAB Production Server).
Код:
Развертывание сервера MATLAB Production Server на Azure ® предоставляет URL-адрес конечной точки HTTPS для вызова функций MATLAB, развернутых на сервере. Шлюз приложений Azure обеспечивает сходство сеансов на основе файлов cookie, где он использует файлы cookie для сохранения сеанса пользователя на том же сервере. При получении запроса от клиентской программы шлюз приложений устанавливает Set-Cookie Заголовок ответа HTTP с информацией о виртуальной машине сервера, обрабатывающей запрос.
Клиентская программа, использующая асинхронные запросы для выполнения функции MATLAB, развернутой на сервере, должна установить Cookie Заголовок запроса HTTP со значением Set-Cookie заголовок для всех последующих запросов. Это гарантирует, что та же виртуальная машина сервера, которая обрабатывает первый запрос, обрабатывает все последующие запросы для этого сеанса.
Клиентская программа, использующая синхронные запросы для выполнения функции MATLAB, развернутой на сервере, не должна устанавливать Cookie Заголовок запроса HTTP со значением Set-Cookie заголовок, и должен очистить значение Cookie если он был установлен ранее. Это обеспечивает балансировку нагрузки синхронных запросов и их обработку одной и той же виртуальной машиной сервера.
Дополнительные сведения об архитектуре и ресурсах для производственного сервера MATLAB на Azure см. в разделах Архитектура и ресурсы на Azure (производственный сервер MATLAB) и Архитектура и ресурсы на Azure (производственный сервер MATLAB).
Используйте службу обнаружения, чтобы узнать о функциях MATLAB, развертываемых на сервере. Служба обнаружения возвращает информацию о развернутых функциях MATLAB в качестве объекта JSON. Объект представляет собой многоуровневую вложенную структуру и на высоком уровне отображает версию схемы обнаружения и список развернутых архивов. Каждый архив содержит информацию о развернутых функциях MATLAB и сигнатурах их функций. Дополнительные сведения об объекте JSON см. в разделе Объект ответа JSON.
Чтобы использовать службу обнаружения, необходимо включить службу обнаружения на сервере, установив --enable-discovery свойство в main_config файл конфигурации сервера.
Чтобы получить полезную информацию при использовании службы обнаружения, необходимо включить файл JSON, содержащий сигнатуры функций функций MATLAB, которые необходимо развернуть при создании развертываемого архива. Сведения о создании развертываемого архива см. в разделе Создание развертываемого архива для производственного сервера MATLAB. Сведения о создании файла JSON, содержащего сигнатуры функций, см. в разделе Сигнатуры функций MATLAB в JSON.
Вызовите службу обнаружения с помощью метода HTTP GET.
Вызовы API RESTful для службы обнаружения
| Звонить | Цель |
|---|---|
| Информация об обнаружении GET | Обнаружение функций MATLAB, развернутых на сервере |
Ответ от сервера является объектом JSON.

Используйте API проверки работоспособности, чтобы определить, имеет ли сервер действительную лицензию и может ли он обрабатывать HTTP-запросы. Проверка работоспособности классифицирует сервер как исправный или нездоровый в зависимости от того, имеет ли сервер действительную лицензию и может ли он взаимодействовать с менеджером сетевых лицензий. Дополнительные сведения о лицензировании см. в разделе Управление лицензиями для производственного сервера MATLAB (MATLAB Production Server).
| Работоспособность сервера | Код состояния ответа HTTP | Описание |
|---|---|---|
| Здоровый |
200 OK | Сервер исправен, если он находится в одном из следующих состояний:
|
| Вредный для здоровья |
503 Health Check Failed | Сервер потерял связь с менеджером сетевых лицензий на период времени, превышающий льготный период. Обработка запросов приостановлена, но сервер активно пытается восстановить связь с менеджером сетевых лицензий. Обработка запроса возобновляется, если сервер может восстановить связь с менеджером лицензий. |
Если проверка работоспособности выполнена успешно, ответ от сервера является объектом JSON, указывающим на работоспособность сервера.
{
"status": "ok"
}Сбой проверки работоспособности указывает на то, что сервер недоступен для обработки HTTP-запросов, но не предоставляет дополнительных сведений о причине сбоя в теле ответа. Администраторы сервера могут использовать mps-status(Производственный сервер MATLAB) для получения подробной информации о состоянии сервера. Вы должны находиться в той же системе, что и сервер для запуска mps-status.
Вызов API RESTful для проверки работоспособности
| Звонить | Цель |
|---|---|
| Работоспособность сервера GET (производственный сервер MATLAB) | Получение информации об общем состоянии сервера |
mps-status(Производственный сервер MATLAB)