接到任务说学一下创建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