sap-webapi接口
sap webapi接口
接到任务说学一下创建api接口,所以记录一下

web api的概念:

调用外部web api还没弄,到时再说,这次只记录SAP 发布web api
事务码 se24 创建类


在INTERFACE中输入IF_HTTP_EXTENSION

在methods输入 GET和POST

双击第一栏的IF_HTTP_EXTENSION~HANDLE_REQUEST,进入代码编辑页面

输入自己编辑的代码,
METHOD if_http_extension~handle_request.
DATA: lv_method TYPE string. " 显式声明变量
lv_method = server->request->get_method( ). " 赋值操作
CASE lv_method.
WHEN ‘GET’.
me->get( server ).
WHEN ‘POST’.
me->post( server ).
WHEN OTHERS.
server->response->set_status( code = 405 reason = ‘请求方法不支持请联系管理员’ ).
ENDCASE.
** lv_verb is http method such as GET, POST etc*
DATA lv_verb TYPE string .
DATA lv_json TYPE string .
lv_json = ‘{“value”: [{“ID”: 0,“Name”: “Food”},{“ID”: 1, “Name”: “Beverages”}, {“ID”: 2, “Name”: “Electronics”}]}’.
** Only handles GET method*
lv_verb = server->request->get_header_field( name = ‘~request_method’ ).
CHECK lv_verb = ‘GET’.
server->response->set_status( code = 200 reason = ‘Ok’ ).
server->response->set_content_type( ‘application/json’ ).
server->response->set_cdata( data = lv_json ).
ENDMETHOD.
这里不编写代码的话之后测试接口会报错

选择第二栏的get,再点击parameters,加上server


同样的步骤给post也加上

不然会之前程序那里会报错

点击保存后激活

事务码SICF

创建服务并激活


填写描述

输入登录数据,如果不维护,系统对接则需要传入这些数据

在处理器清单这填写刚刚创建的类

点击保存,回到刚刚的页面

激活服务

测试服务

数据就这么水灵灵地出来了

注:注意传参是parameters 还是body,SAP目前是在parameters。如果想放在body,还需要测试
注:可参考生产系统的类ZCL_REST_IF_SD02
注:测试软件Postman
