的MATLAB®生产服务器™MATLAB函数RESTful API使您能够执行评估MATLAB函数在远程服务器上使用MATLAB的JSON表示数据类型和协议缓冲区。协议缓冲区只支持在Java万博1manbetx®和。net客户端api。
您可以编写客户机代码使用MATLAB生产服务器在基于网络的语言如JavaScript RESTful API®并将它嵌入到HTML页面。然后您可以使用这些web页面从发送请求和检索响应MATLAB生产服务器实例。基于web的应用程序时可能更适合客户端代码写在JavaScript中,你可以使用任何HTTP支持的编程语言(Java、Python、c++、。net、和许多其他开发客户机应用程序。万博1manbetx
如果客户程序发出请求来自不同领域,使用JavaScript程序员必须验证是否跨源资源共享在服务器上启用(歌珥)。在服务器上启用歌珥,服务器管理员必须设置适当的值cors-allowed-origins
财产的main_config
服务器配置文件。
MATLAB函数执行的RESTful API使用HTTP请求-响应模式进行交流沟通MATLAB生产服务器。这个模型包括请求方法,响应代码,消息头和消息体。RESTful API具有以下特点:
HTTP methods-POST,获取和删除表单客户机和服务器之间的通信的主要方式。
独特的统一资源标识符(uri)识别服务器创建的资源。
消息标题传达元数据等内容类型的请求。
API支持万博1manbetxapplication / json
作为HTTP内容类型
头。
MATLAB函数执行的RESTful API还支持万博1manbetx应用程序/ x-google-protobuf
作为HTTP内容类型
通过Java和。net客户端api。
请求的消息体包含信息发送到服务器。
如果使用JSON作为数据的序列化格式,输入MATLAB函数包含在一个部署归档文件中表示JSON和封装消息的体内。有关更多信息,请参见MATLAB的JSON表示数据类型。
如果你使用protocol buffers数据序列化(protobuf), Java和。net客户端库提供助手类内部基于原型格式创建protobuf消息并返回对应的字节数组。使用这个字节数组在请求的消息体。
消息体的响应包含一个请求信息,如国家或结果。
如果你使用protobuf数据序列化,Java和。net客户端库提供方法和类protobuf响应进行反序列化。
API支持服务器万博1manbetx的同步和异步模式。
请注意
接下来的例子和图形使用JSON作为数据序列化格式。
在同步模式下,客户的帖子请求后,服务器的工作进程模块所有进一步的请求,直到它完成了处理原始的请求。处理完成后,工人自动返回响应给客户端。因为它是块在请求处理的工人,如果有可用的其他工人,服务器可以接受其他同步请求进行处理。做一个同步请求到服务器并等待响应,使用后同步请求。
下面的图形说明了同步模式的RESTful API是如何工作的。
这个例子展示了如何使用RESTful API和JSON提供了两个独立implementations-one使用JavaScript和其他使用Python®。当您执行这个示例中,服务器将返回一个列表的25个逗号分隔值。这些值的输出部署MATLAB函数mymagic
,用列为主的格式表示。MATLAB代码mymagic
函数。
函数= mymagic(在)=魔法(的);结束
对于这个例子,MATLAB生产服务器包含部署MATLAB函数的实例mymagic
需要运行。有关如何创建一个可部署归档文件的更多信息,参见为MATLAB生产服务器创建可部署归档文件。建立一个服务器上的更多信息,见创建服务器实例。
JavaScript实现的基于rest的API,您包括内的脚本脚本脚本< > < / >
一个HTML页面的标签。当你打开这个HTML页面在一个web浏览器,服务器返回的值mymagic
函数。注意,服务器需要歌珥
启用了JavaScript代码工作。有关如何启用的更多信息歌珥
,请参阅cors-allowed-origins
。
下面是一个示例HTML代码嵌入JavaScript。
< !DOCTYPE html > < html > <头> <标题>幻方< /名称> <脚本> var = new XMLHttpRequest请求();/ /议员RESTful API:指定URL var URL = " http://localhost: 9910 / ctfArchiveName / mymagic”;/ /议员RESTful API:指定HTTP POST方法request.open(“文章”,url);/ /议员RESTful API:指定内容类型application / json请求。setRequestHeader(“内容类型”、“application / json”);var params = {" nargout”: 1、“rhs”: [5]};request.send (JSON.stringify (params));请求。onreadystatechange = function(){如果请求。readyState = = 4){/ /议员RESTful API:如果(请求检查HTTP状态代码200。状态= = 200){结果= JSON.parse (request.responseText); if(result.hasOwnProperty("lhs")) { //MPS RESTful API: Index into "lhs" to retrieve response from server document.getElementById("demo").innerHTML = '' + result.lhs[0].mwdata; } } else if(result.hasOwnProperty("error")) { alert("Error: " + result.error.message); } } };
MPS RESTful API and JSON EXAMPLE
>> mymagic(5)
# output from server returned in column-major format