SAP REST 接口
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
:
在这里选择继承按钮很重要!将 CL_REST_HTTP_HANDLER
填写为父类:
必须重新定义 GET_ROOT_HANDLER
方法:
现在只需将该方法留空即可。保存并生成。
现在,基于 CL_REST_RESOURCE
的继承创建 REST 资源类:
现在重新定义 GET 方法:
不,我们通过简单地添加文本 “Hello World” 来添加一个简单的实现:
保存并激活此类。
现在我们回到上一个类:应用程序类。在这里,我们现在编辑之前留空的 GET_ROOT_HANDLER
实现:
如果 URL 正在获取输入 /hello
,则调用处理程序类(我们的资源类)ZCL_HELLO_WORLD_RES_REST
。此类将返回字符串。
保存并再次激活。编码工作已完成。
运行实现
现在我们需要做一个运行实现。转到事务 SICF
并首先选择主节点 default_host。然后从菜单“服务/主机”中选择“创建服务”选项:
填写服务名称,然后单击确定。在下一个屏幕中给出说明,在“处理程序列表”部分中,请参阅应用程序类 ZCL_HELLO_WORLD_REST
:
保存服务。服务已创建,但未处于活动状态。要激活,请右键单击该服务,然后选择激活:
测试服务
在上一个 SICF 屏幕中,再次右键单击该服务,然后选择选项测试服务。将出现一个屏幕,显示“未找到合适的资源”。现在通过在 URL 中的测试后添加 /hello
来修改 URL,然后再次按回车键:
URL 建立:测试是 SICF 中定义的名称。/hello 是在应用程序类中定义的。
授权和安全
REST 库没有关于授权和安全性的细节。所以你必须在开发时注意。
业务授权安全性:必须通过 AUTHORITY-CHECK
语句在正确的位置内置。
SICF
节点上的“登录数据”选项卡中提供了技术安全性。在这里,您可以设置技术登录方法的要求,以及是否只允许 https。
REST vs ODATA
ODATA 基于 REST,具有更多功能。如果有选择,最好使用 ODATA。此博客中介绍了 ODATA 公开。
在 SAP REST 中是受支持,但你必须编写很多代码,并且可用的工具有限。对于 ODATA,可以使用更多的开发和监视工具。
- 点赞
- 收藏
- 关注作者
评论(0)