此示例显示了如何测试RESTful API或Java®用于针对部署的客户端MATLAB®生产服务器™在中使用测试接口生产服务器编译器出于测试目的,您将创建并使用名为添加矩阵
它接受两个数值矩阵作为输入,并返回它们的和作为输出。
通过单击测试客户端按钮生产服务器编译器应用程序生产服务器编译器应用程序是MATLAB编译器SDK™.
写一个名为matlab函数添加矩阵
它接受两个数字矩阵作为输入,并将其总和作为输出返回。将此文件另存为addmatrix.m
.
在MATLAB命令提示符下测试该功能。
a=[102030;405060];b=[100200300;400500600];c=addmatrix(a,b)
c=110 220 330 440 550 660
打开生产服务器编译器在MATLAB命令提示符下键入以下命令:
ProductionServer编译器
在类型在toolstrip的剖面中,选择可部署归档(.ctf)从列表中删除。
指定要部署的MATLAB函数。
在导出函数在toolstrip的部分,单击加号按钮。
使用文件资源管理器,找到并选择addmatrix.m
文件。
在标题为包含MATLAB函数签名文件,单击创建文件按钮。这将创建一个可编辑的JSON文件,其中包含存档中包含的函数的函数签名。通过编辑此文件,您可以指定输入和输出的参数类型和/或大小,还可以为每个输入提供帮助信息。有关更多信息,请参阅JSON中的MATLAB函数签名(MATLAB生产服务器).
如果您有一个带有函数签名的现有JSON文件,请单击添加现有文件按钮添加该文件,而不是创建文件按钮
通过将此信息包括在存档中,您可以使用服务器上的发现服务功能。
笔记
只有MATLAB生产服务器RESTful API支万博1manbetx持发现服务。有关更多信息,请参阅用于MATLAB函数执行的restfulapi(MATLAB生产服务器).
点击测试客户端按钮。应用程序将切换到测验标签。
检查港口城市领域
它必须是:
可用端口
客户端正在使用的端口号相同
对于此示例,客户端将使用端口9910。
选中复选框以启用CORS。如果您使用的是使用JavaScript的客户端,则需要启用此选项®。通过启用CORS,服务器将接受来自不同域的请求。
选中复选框以启用发现。需要启用此选项才能使用发现服务。发现服务将作为JSON对象返回有关已部署MATLAB函数的信息。
点击开始.
此示例使用MATLABHTTP接口调用RESTful API并向测试接口发出请求。您可以使用其他工具,如cURL或JavaScript XHR。
测试接口不支持异步客户端请求。该接口处理万博1manbetx后异步请求(MATLAB生产服务器)像一个后同步请求(MATLAB生产服务器)。不支持来自RESTful API的其他异步请求。万博1manbetx
导入MatlabHTTP接口包,设置请求,并将请求发送到测试接口。
%导入MatlabHTTP接口包进口net*进口matlab.net.http*进口matlab.net.http.fields*%设置请求requestUri=URI('http:// localhost:9910 / api / discovery');options=matlab.net.http.HTTPOptions('connecttimeout',20,...“转换响应”,false);请求=RequestMessage;请求.Header=HeaderField(“内容类型”,“应用程序/json”);Request.method =“得到”;%发送请求response=request.send(requestUri,选项);
查看响应主体。
response.Body.Data
ans=“{”discoverySchemaVersion:“1.0.0”,“archives:{”matfun:{”archiveSchemaVersion:“1.1.0”,。。。
ANS.
.
要使用JavaScript XHR进行测试,可以使用以下代码:
启动MATLAB桌面的单独会话。这是因为您无法从运行测试接口的同一MATLAB会话发送POST请求。
导入MatlabHTTP接口包,设置请求,并将请求发送到测试接口。
%导入HTTP接口包进口net*进口matlab.net.http*进口matlab.net.http.fields*%设置消息正文body=MessageBody;a=[102030;405060];b=[100200300;400500600];payload=mps.json.encoderequest({a,b});body.payload=payload;%设置请求requestUri=URI('http://localhost:9910/matfun/addmatrix');options=matlab.net.http.HTTPOptions('connecttimeout',20,...“转换响应”,false);请求=RequestMessage;请求.Header=HeaderField(“内容类型”,“应用程序/json”);Request.method =“职位”;请求。正文=正文;%发送请求response=request.send(requestUri,选项)
查看响应主体。
response.Body.Data
ans=“{”lhs:[[110220330],[440550660]]}”
要使用JavaScript XHR进行测试,可以使用以下代码:
检查数据
切换到生产服务器编译器应用程序。
在测试界面中,在MATLAB执行请求,单击应用程序中已完成的消息,查看客户端和MATLAB之间交换的值。
点击输入查看传递到MATLAB的数组。
点击输出要查看返回给客户端的数组。
设置断点
在测试界面生产服务器编译器点击断点>MATLAB函数条目的中断.
在单独的MATLAB会话中,向服务器重新发送POST请求。
当MATLAB编辑器打开时,请注意在函数的第一行设置了断点,并且处理已在断点处暂停。
现在可以使用所有MATLAB调试工具逐步完成函数。
笔记
如果花很长时间单步执行MATLAB函数,则可以在客户端创建超时错误。
请注意,变量A1
和a2
显示在MATLAB工作区中。
在MATLAB编辑器中,单击持续以完成调试过程。
这个服务器请求应用程序的部分显示请求已成功完成。
点击停止关闭测试服务器。
点击封闭试验.
创建一个Java文件MPSClientExample.java
使用以下客户端代码:
在系统命令提示符下,使用爪哇语
命令
javac-classpath“matlabroot.
\工具箱\编译器\ sdk\mps\客户端\java\mps_client.jar“MPSClientExample.java
在系统命令提示符下,运行Java客户端。
java-classpath。;"matlabroot.\ toolbox \ compiler_sdk \ mps_clients \ java \ mps_client.jar“mpsclientexample
笔记
不能从MATLAB命令提示符运行Java客户端。
应用程序在控制台返回以下内容:
110.0 220.0 330.0 440.0 550.0 660.0
您可以使用下面列出的相同步骤调试客户端和MATLAB之间交换的数据使用restfulapi进行测试.