SAP不通过PI发布直接发布RESTFUL API接口

创建对象ZCL_REST_TEST_APPLICATION继承超类CL_REST_HTTP_HANDLER,并重构方法IF_REST_APPLICATION~GET_ROOT_HANDLER
在这里插入图片描述
创建对象ZCL_REST_SAMPLE_CARS继承CL_REST_RESOURCE,可按实际照需求重写GET,PUT,POST等http的操作方法,该样例重写了GET和POST,重写GET是会了获取CSRF token
在这里插入图片描述
Post 代码如下: METHOD IF_REST_RESOURCE~POST.CALL METHOD SUPER->IF_REST_RESOURCE~POST EXPORTING* IO_ENTITY =* .
DATA(LV_XSTR) = IO_ENTITY->GET_STRING_DATA( ).
TYPES: BEGIN OF TYP_ITEM, F1 TYPE STRING, F2 TYPE STRING, END OF TYP_ITEM. TYPES TYP_T_ITEMS TYPE TABLE OF TYP_ITEM WITH DEFAULT KEY.
DATA: BEGIN OF LV_REQ, MODEL_NAME TYPE STRING, MANU_ID TYPE STRING, PRICE TYPE STRING, CURRENCY TYPE STRING, MODEL_YEAR TYPE STRING, IMAGE_TYPE TYPE STRING, IMAGE_PATH TYPE STRING, UPDATE_USER TYPE STRING, ITEMS TYPE TYP_T_ITEMS, END OF LV_REQ.
/UI2/CL_JSON=>DESERIALIZE( EXPORTING JSON = IO_ENTITY->GET_STRING_DATA( ) CHANGING DATA = LV_REQ ).
DATA: LO_ENTITY TYPE REF TO IF_REST_ENTITY. LO_ENTITY = MO_RESPONSE->CREATE_ENTITY( ). LO_ENTITY->SET_CONTENT_TYPE( IV_MEDIA_TYPE = IF_REST_MEDIA_TYPE=>GC_APPL_JSON ).
DATA: LT_RESULT TYPE TYP_T_ITEMS. LT_RESULT = VALUE #( ( F1 = ‘1’ F2 = ‘2’ ) ( F1 = ‘111’ F2 = ‘2222’ ) ).
DATA lv_json TYPE string.
lv_json = /ui2/cl_json=>serialize( data = LT_RESULT ).
LO_ENTITY->SET_STRING_DATA( lv_json ).

MO_RESPONSE->SET_STATUS( CL_REST_STATUS_CODE=>GC_SUCCESS_OK ).

ENDMETHOD.
效果如下图,主要是测试SAP接受json的报文和返回json的报文
在这里插入图片描述
备注:需在SICF中创建该RESTFUL的服务,如下图
在这里插入图片描述
备注2重写处理器中类的HANDLE_CSRF_TOKEN的方法,能取消CSRF的token检查

在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值