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

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

我们只需要在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:

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

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

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

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

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

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

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

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

云端的ABAP Restful服务开发相关推荐

  1. Java 单体服务开发指南

    文章目录 一.代码组织模式 1.多仓库 2.单体仓库 二.编程规约(参考<阿里 Java 开发手册>) 1.命名风格 2.常量定义 3.代码格式 4.OOP 规约 5.日期时间 6.集合处 ...

  2. 如何基于Restful ABAP Programming模型开发并部署一个支持增删改查的Fiori应用

    Jerry之前的文章30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用 发布之后,有朋友问我,"没错, 我是在你的文章里看到了Fiori应用的 ...

  3. 基于SpringBoot开发一个Restful服务,实现增删改查功能

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 作者:虚无境 cnblogs.com/xuwujing/p/8260935.html 前言 在去 ...

  4. cxf restful_使用Apache CXF开发RESTful服务

    cxf restful 介绍 如您所知,有两种开发Web服务的方法 简单对象访问协议(SOAP) 代表性状态转移(REST) 在继续学习如何使用Apache CXF创建基于REST的Web服务之前,我 ...

  5. 使用Apache CXF开发RESTful服务

    介绍 如您所知,有两种开发Web服务的方法 简单对象访问协议(SOAP) 代表性状态转移(REST) 在继续学习如何使用Apache CXF创建基于REST的Web服务之前,我们将了解什么是REST. ...

  6. springboot增删改查案例_大神基于SpringBoot开发一个Restful服务,实现增删改查功能...

    前言 在去年的时候,在各种渠道中略微的了解了SpringBoot,在开发web项目的时候是如何的方便.快捷.但是当时并没有认真的去学习下,毕竟感觉自己在Struts和SpringMVC都用得不太熟练. ...

  7. ppst——开发技术视频 spring的restful服务搭建

    ppst--开发技术视频 spring的restful服务搭建 [url] www.ppst.cc[/url]这里有更多的开发技术学习视频,大家可以把自己的博客录制成视频,让大家收看,也可以通过收费收 ...

  8. Java开发中RestFul服务接口规范

    REST介绍 representational State Transfer (REST) 是一种架构原则,其中将 web 服务视为资源,可以由其 URL 唯一标识.RESTful Web 服务的关键 ...

  9. java 利用JAX-RS快速开发RESTful 服务

    JAX-RS(Java API for RESTful Web Services)同样也是JSR的一部分,详细规范定义见 https://jcp.org/en/jsr/detail?id=311 .从 ...

最新文章

  1. 浅析网站过度优化的成因应如何规避?
  2. 关于如如何运行tensorrt
  3. hydra图形化工具下载_Hydra for Mac 4.0.4 专业的摄影图像工具
  4. LiveVideoStack线上交流分享 (十六) —— 爱奇艺剧场直播云端混流方案
  5. Learning Attention-based Embeddings for Relation Prediction in Knowledge Graphs Deepak
  6. 日本第一赘婿!他入赘近20年拿下诺贝尔奖,成名后不忘教光棍讨老婆......
  7. Java测试驱动开发--总结
  8. 阿里云峰会|阿里云数据中台重磅升级后拟扶持100万家企业数智化
  9. 看清美国“黑客帝国”的真面目
  10. 单片机led闪烁代码_单片机、555实现LED闪烁电路
  11. Dockter:研究人员的容器图像生成器
  12. 查看dll是32还是64
  13. 一图看全 · 知道创宇乌镇行
  14. 实验改变人类:震撼世界的十大科学实验- -
  15. 智能电网如何巡检?这个方法才是标配
  16. 3dTile技术研究-概念详述(5)
  17. 洛谷P4408 [NOI2003]逃学的小孩
  18. 全球及中国金属硅行业产值状况与竞争格局分析报告2022版
  19. 传统与深度学习图像分割算法
  20. 如何在互联网中隐藏自己

热门文章

  1. iOS相册、相机、通讯录权限获取
  2. Linux下gcc编译器的使用
  3. Anaconda 一直停留在 Loading apps list... 解决方案
  4. HD2 电容屏不灵怎么办?
  5. 在WPF中进行碰撞检测
  6. flash 语法 入门
  7. [转载]CLR怎样实现虚方法的多态调用(2)
  8. 文献学习(part74)--Data Clustering: 50 Years Beyond K-means
  9. 小白的算法初识课堂(part9)--SHA及Simhash算法
  10. python基础(part5)--容器类型之字符串