首页 > SAP > HANA > SMP3.0学习笔记之十九 使用REST API在任何操作系统上消费SMP的OData服务 …
2019
08-27

SMP3.0学习笔记之十九 使用REST API在任何操作系统上消费SMP的OData服务 …

SMP3.0自带的OData Native API以及Kapsel
Plugin只能够在iOS和Anrdoid上可以使用。如果想在其他移动操作系统上,例如Windows
Phone上开发基于SMP的移动应用,如何访问到SMP的REST(OData)服务呢?这就需要使用SMP自带的REST
API。

所谓的REST API其实就是SMP提供的一系列的基于HTTP POST/GET/PUT/DELETe等操作的规范,按照REST
API的语法规范,就可以在任何移动终端上消费SMP3.0的REST服务了,从而开发出不依赖于OData Native
API或者Kapsel Plugin的HTTP应用。

在之前的示例中,其实已经使用到了很多REST API,例如使用Google Postman的HTTP POST方法创建一个SMP3.0
Application并获取APPCID。获取到APPCID之后在HEADER中加入该APPCID就可以对SMP暴露的OData服务进行操作,例如使用HTTP
GET读取数据,使用HTTP POST修改数据,使用HTTP PUT更新数据,使用HTTP
DELETE删除数据,另外还可以使用REST API对SMP Application进行配置。使用REST
API的几个例子:

1. 使用REST API
Logon
:其实是使用HTTP的POST方法进行注册,获取一个AppCID:
如下图所示,URL是如下(192.168.174.129是SMP的IP地址):
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124534-65.jpg" alt="SMP3.0学习笔记之十九使用RESTAPI在任何操作系统上消费SMP的OData服务” />

返回结果:

<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124534-17.jpg" alt="SMP3.0学习笔记之十九使用RESTAPI在任何操作系统上消费SMP的OData服务” />

在返回的结果中,我们会拿到一个ApplicationConnectionID,在后续就使用该APPCID来对SMP暴露的OData服务进行操作。

使用REST API的HTTP GET获取OData数据

再次使用Postman对该连接进行操作。Operation
type选择GET,在Header中填写用户名和口令以及X-SMP-APPCID,我们就可以得到如下的返回结果,显示该服务中的能够使用的数据集:

<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124534-69.jpg" alt="SMP3.0学习笔记之十九使用RESTAPI在任何操作系统上消费SMP的OData服务” />

使用HTTP GET获取的数据如下:

<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124534-89.jpg" alt="SMP3.0学习笔记之十九使用RESTAPI在任何操作系统上消费SMP的OData服务” />

使用REST API向移动设备发送消息

例如,使用Postman通过SMP向Android客户端发送消息:
URL:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124534-69-1.jpg" alt="SMP3.0学习笔记之十九使用RESTAPI在任何操作系统上消费SMP的OData服务” />

总之,使用REST
API可以使开发人员能够在任何的操作系统上使用HTTP操作获取SMP3.0暴露的REST(OData)服务。

最后编辑:
作者:yangsen
本站为个人博客网站,全由我个人维护,我从事SAP开发13年,其它ERP开发7年,基本都是零售行业。本站记录工作学习的过程, 有SAP相关询问专、兼职工作可随时联系我。 有网站相关的问题可直接在文章下方留言,或者联系我。 邮件:yan252@163.com给我。 QQ:415402519

留下一个回复

你的email不会被公开。