SAP ABAP 使用SICF发布Restful HTTP API接口

一、SE24 创建类 ZTEST_RESTFUL_HTTP_INTERFACE

1、SE24创建类

2、切换到接口(interface)页签,输入IF_HTTP_EXTENSION ,回车。切换到方法(method)页签,双击IF_HTTP_EXTENSION~HANDLE_REQUEST进入代码编辑界面。

3.在IF_HTTP_EXTENSION~HANDLE_REQUEST方法中编写代码:(注:文末附另一种写法)

  method if_http_extension~handle_request.

    data: begin of ls_data,
            matnr type matnr,
            ernam type ernam,
            matkl type matkl,
          end of ls_data.
    data: lt_data like table of ls_data.

    data: lt_fields type tihttpnvp.
    field-symbols: <fs_field> like line of lt_fields.

    data: lv_method type string. "获取GET/POST方式
    data: lv_json  type string,  "返回参数
          lv_json1 type string,  "获取传回值数据
          lv_json2 type string.  "获取传回值数据
    data: lv_paramas type string.
    data: begin of ls_request_data,
            matnr type matnr,
            maktx type maktx,
          end of ls_request_data.
    data: it_request_data like table of ls_request_data.
    data: begin of ls_field_praramas,
            field type string,
            value type string,
          end of ls_field_praramas.
*    data: it_field_praramas like table of ls_field_praramas.
    data: it_praramas type table of string,
          ls_praramas type string.
    data: lv_cond type string.

*    获取JSON抬头数据
    server->request->get_header_fields(
        changing
          fields = lt_fields
      ).
    lv_method = server->request->get_header_field( name = '~request_method' )."获取GET/POST方式

    call method server->response->if_http_entity~set_content_type             "设置返回JSON格式
      exporting
        content_type = 'application/json'.

    case lv_method.
      when 'GET'.
        clear lv_cond.
        lv_paramas = server->request->get_header_field( name = '~query_string' )."获取地址变量参数

        split lv_paramas at '&' into table it_praramas.
        loop at it_praramas into ls_praramas.
          split ls_praramas at '=' into  ls_field_praramas-field ls_field_praramas-value.

          translate ls_field_praramas-field to lower case.
          if ls_field_praramas-field <> 'sap-client'.
            ls_field_praramas-value = '''' && ls_field_praramas-value && ''''.
            if lv_cond = space.
              c
  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值