SAP REST 接口

举报
雨绸缪 发表于 2023/05/26 18:01:12 2023/05/26
【摘要】 SAP ABAP 栈也可以使用 REST 协议进行接口。为了支持此接口协议,SAP 在 ABAP 栈中开发了特殊类。本博客中将回答的问题是:如何在 ABAP 栈中创建 REST 接口?如何在 ABAP 栈中测试 REST 接口?开发人员 REST 接口使用哪些工具? ABAP RESTSAP 在 ABAP netweaver 栈中提供了 ABAP REST 库。完整的规范可以在 SAP 帮助...

image.png

SAP ABAP 栈也可以使用 REST 协议进行接口。为了支持此接口协议,SAP 在 ABAP 栈中开发了特殊类。

本博客中将回答的问题是:

  • 如何在 ABAP 栈中创建 REST 接口?
  • 如何在 ABAP 栈中测试 REST 接口?
  • 开发人员 REST 接口使用哪些工具?

ABAP REST

SAP 在 ABAP netweaver 栈中提供了 ABAP REST 库。完整的规范可以在 SAP 帮助门户上找到。帮助门户还包含一个小教程 .除了预先交付的 REST 库类之外,没有工具可用于在 ABAP 中更快地开发 REST。它正在向 SE24 和 SE80 发展。

一篇很好的参考博客是关于在 Netweaver 7.4 中使用 REST 的 SAP 博客。这也解释了 ABAP 中的通用 REST 架构实现。

在 ABAP 中创建 REST 服务

我们将在 ABAP 中创建一个简单的 Hello World REST 服务。REST ABAP 中有 2 个主要类:处理 URL 的应用程序类和逻辑所在的资源类。

启动事务 SE24 并创建一个从 SAP 交付的类继承的新类 CL_REST_HTTP_HANDLER

REST-create-class.png

在这里选择继承按钮很重要!将 CL_REST_HTTP_HANDLER 填写为父类:

REST-create-class-as-inheritance.png

必须重新定义 GET_ROOT_HANDLER 方法:

REST-redefine-GET_ROOT_HANDLER-1024x308.png

现在只需将该方法留空即可。保存并生成。

现在,基于 CL_REST_RESOURCE 的继承创建 REST 资源类:

REST-define-resource-class.png

现在重新定义 GET 方法:

REST-resource-class-redefine-GET-method-1024x420.png

不,我们通过简单地添加文本 “Hello World” 来添加一个简单的实现:

REST-resource-class-GET-method-implementation-1024x277.png

保存并激活此类。

现在我们回到上一个类:应用程序类。在这里,我们现在编辑之前留空的 GET_ROOT_HANDLER 实现:

REST-implementation-of-root-handler-1024x229.png

如果 URL 正在获取输入 /hello,则调用处理程序类(我们的资源类)ZCL_HELLO_WORLD_RES_REST。此类将返回字符串。

保存并再次激活。编码工作已完成。

运行实现

现在我们需要做一个运行实现。转到事务 SICF 并首先选择主节点 default_host。然后从菜单“服务/主机”中选择“创建服务”选项:

REST-SICF-create-service-1024x542.png

填写服务名称,然后单击确定。在下一个屏幕中给出说明,在“处理程序列表”部分中,请参阅应用程序类 ZCL_HELLO_WORLD_REST

REST-SICF-handler-1-1024x593.png

保存服务。服务已创建,但未处于活动状态。要激活,请右键单击该服务,然后选择激活:

REST-SICF-activate-service-1024x386.png

测试服务

在上一个 SICF 屏幕中,再次右键单击该服务,然后选择选项测试服务。将出现一个屏幕,显示“未找到合适的资源”。现在通过在 URL 中的测试后添加 /hello 来修改 URL,然后再次按回车键:

REST-SICF-test-service-1.png

URL 建立:测试是 SICF 中定义的名称。/hello 是在应用程序类中定义的。

授权和安全

REST 库没有关于授权和安全性的细节。所以你必须在开发时注意。

业务授权安全性:必须通过 AUTHORITY-CHECK 语句在正确的位置内置。

SICF 节点上的“登录数据”选项卡中提供了技术安全性。在这里,您可以设置技术登录方法的要求,以及是否只允许 https。

REST vs ODATA

ODATA 基于 REST,具有更多功能。如果有选择,最好使用 ODATA。此博客中介绍了 ODATA 公开。

在 SAP REST 中是受支持,但你必须编写很多代码,并且可用的工具有限。对于 ODATA,可以使用更多的开发和监视工具。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。