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

 

posted @ 2022-08-04 12:04  阿胖的阿多  阅读(795)  评论(0编辑  收藏  举报