ABAP- 发布 Restful 服务
在 SAP 与外围系统进行数据交互时,有时需要发布 Restful 服务给外部系统调用,下面是 SAP 发布 Restful 服务的一个简单实例
创建实施类
事务代码:SE24
设置需要实现的接口:IF_HTTP_EXTENSION
实现实施类
主要实现的方法:IF_HTTP_EXTENSION~HANDLE_REQUEST
实现代码
METHOD if_http_extension~handle_request. TYPES: BEGIN OF ty_input, rows TYPE i, END OF ty_input. DATA: l_input TYPE ty_input. DATA: i_string TYPE string, o_string TYPE string. "Get Importing Json i_string = server->request->if_http_entity~get_cdata( )." "Deserialize Json to data /ui2/cl_json=>deserialize( EXPORTING json = i_string CHANGING data = l_input ). "Get Return Data SELECT * FROM sflight INTO TABLE @DATA(lt_sflight) UP TO @l_input-rows ROWS. "Serialize Data to Json o_string = /ui2/cl_json=>serialize( lt_sflight ). "Set the return data format CALL METHOD server->response->if_http_entity~set_content_type EXPORTING content_type = 'application/json'. "set exporting data server->response->set_cdata( EXPORTING data = o_string ). ENDMETHOD.
定义 RESTful 服务
事务代码:SICF,新建子元素
设置服务处理器
设置默认登录信息(如果不设置,访问数据则需要 SAP 账号认证)
激活服务
测试服务
直接测试服务是否可访问
使用第三方工具 APIPost SoaUI 测试
设置 Json 查询数据
设置 SAP 账号认证(SICF 未设置默认认证账号时使用)
发送请求,拿到返回数据
转载于:https://blog.csdn.net/qq_30797051/article/details/123916970