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

来源:互联网 发布:淘宝评价了怎么看不到 编辑:程序博客网 时间:2024/05/21 18:48

 作者:穿行印象

http://blog.sina.com.cn/s/blog_7a9486880101qsqh.html


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地址):
http://192.168.174.129:8080/odata/applications/latest/com.sap.flight/Connections

operation type: post

Body的内容如下:


xmlns="http://www.w3.org/2005/Atom"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">

scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>






返回结果:



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

 

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

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



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

例如,使用Postman通过SMP向Android客户端发送消息:
URL:
http://localhost:8080/Notification/490aeb6b-ddb0-46b4-8655-973c616009a4
490aeb6b-ddb0-46b4-8655-973c616009a4是移动设备登录SMP3.0之后的application ID。
使用POST方法。Header中增加X-SMP-GCM-DATA:
{"dispmsg":"Hello GCM Message!","appid":"com.sap.flight.kapsel","appname":"com.sap.flight.kapsel","reasonurl":"http://www.sap.com","reasoncode":12345}


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

0 0
原创粉丝点击