云端的ABAP Restful服务开发-阿里云开发者社区

开发者社区> 云计算> 正文

云端的ABAP Restful服务开发

简介: 愉快的暑假结束了,今天是小朋友新学期开学后的第一个周日,不知道各位家长是否和小朋友们一起,已经适应了新学期的生活了么?Jerry从少的可怜的属于自己的周末时光挤了一小部分时间出来,写了这篇文章。 Jerry之前的一篇文章 从ABAP Netweaver的SICF到SAP Kyma的Lambda Function,我曾经提到过,如果想将ABAP Netweaver里的资源以Restful API的方式暴露出来,SICF这个事务码绝对是一大利器。

愉快的暑假结束了,今天是小朋友新学期开学后的第一个周日,不知道各位家长是否和小朋友们一起,已经适应了新学期的生活了么?
Jerry从少的可怜的属于自己的周末时光挤了一小部分时间出来,写了这篇文章。

Jerry之前的一篇文章 从ABAP Netweaver的SICF到SAP Kyma的Lambda Function,我曾经提到过,如果想将ABAP Netweaver里的资源以Restful API的方式暴露出来,SICF这个事务码绝对是一大利器。

clipboard1,1

我们只需要在SICF里合适的路径下创建节点,为该节点创建一个ABAP类,就可以专注于实现接口定义的方法IF_HTTP_EXTENSION~HANDLE_REQUEST, 在里面编写应用逻辑了。应用开发人员无需关注和操心这些ABAP类什么时候被实例化和调用,可以把这个HANDLE_REQUEST方法看作是一个回调函数,当请求到来时,由Netweaver的ICF框架(Internet Communication Framework)负责把请求路由到对应的ICF节点并创建ABAP类,调用HANDLE_REQUEST方法。
每个SICF节点会根据其路径被分配一个url, 如果是Corporate网络里,用浏览器或者编程语言直接访问该url,就能消费SICF暴露的资源了。
如果想让这个位于Corporate网络内的url被Internet网络访问,就得借助SAP Cloud Connector:

clipboard2,2

具体步骤在我之前的文章使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数 里介绍过。

对于ABAP开发人员来说,一个好消息是,SAP Cloud Platform如今也支持ABAP运行环境了。现在我们通过在SAP云平台 ABAP运行环境里完成类似之前在On-Premises ABAP系统的SICF事务码里的开发任务,来感受ABAP到了云端之后,给ABAP开发者带来的巨大便利。

clipboard3,3

按照Jerry之前的文章在SAP云平台ABAP编程环境上编写第一段ABAP程序 里介绍的步骤,通过ABAP Development Tools连接SAP云平台 ABAP运行环境的一个实例,完成登录后,后续的操作步骤,同使用ABAP Development Tools连接一个On-Premises ABAP系统,几乎没有差别。

clipboard4,4

下图是在云上的ABAP环境里,允许我们创建的ABAP对象列表,既有ABAP开发人员感到亲切的ABAP字段对象,ABAP开发包,ABAP消息类等等,也有上了云端之后的新面孔,比如Cloud Communication Management和Cloud IAM等。
为了完成在On-Premises的SICF事务码里的开发工作,现在我们要在云上的ABAP环境里创建一个新的HTTP Service:

clipboard5,5

新建一个名为ZHELLOWORLD的service,创建完毕之后界面如下:

clipboard6,6

ABAP老司机们看到这界面,立即知道下一步怎么做了吧。点击Handler class,就可以进入ABAP类的编辑界面,实现这个HTTP服务的业务逻辑。而通过url字段里维护的值,我们可以在PC或移动设备里,浏览器或代码里访问这个服务。
该服务实现类和On-Premises的区别,不过是接口名称从IF_HTTP_EXTENSION换成了IF_HTTP_SERVICE_EXTENSION. 当然,前者因为是直接在云端编写的ABAP代码,所以还要遵循Jerry之前的文章 在SAP云平台ABAP编程环境上编写第一段ABAP程序 里提到的那些限制。

clipboard7,7

上述的ABAP代码只是简单地返回给消费者一个Hello World的文本信息,保存激活之后,把url贴到浏览器里,就能看到期望的Hello World:

clipboard8,8

我们从url里,容易得出这样的结论,SAP Cloud Platform ABAP运行环境里支持创建的HTTP服务,其实现原理,其实就是在Netweaver服务器的SICF路径/sap/bc/http/sap/下面增加一个新的节点罢了,只是这个操作,在云端不再需要由ABAP开发人员手动完成,云端的ABAP环境,会自动创建这一底层设施。
希望传统ABAP开发人员,能从这个最简单的Hello World级别的例子,体会到云端ABAP开发的便利之处。感谢阅读。

本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

其他文章