目录

sap-webapi接口

目录

sap webapi接口

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

https://i-blog.csdnimg.cn/direct/a9d034285bd34d7185d479c62b8b7bf5.png

web api的概念:

https://i-blog.csdnimg.cn/direct/a0f10e416ec64b408ee1b57427588d79.png

调用外部web api还没弄,到时再说,这次只记录SAP 发布web api

事务码 se24 创建类

https://i-blog.csdnimg.cn/direct/555b8ede4b8d40a18c975ab32bcfa3fa.png

https://i-blog.csdnimg.cn/direct/e1acb6b9e52d43828fb59bf21a5a8ea7.png

在INTERFACE中输入IF_HTTP_EXTENSION

https://i-blog.csdnimg.cn/direct/24b8f41b33dc4bdab1173f99b2011f80.png

在methods输入 GET和POST

https://i-blog.csdnimg.cn/direct/24994ede55144d78b4ebebf74b6b9f23.png

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

https://i-blog.csdnimg.cn/direct/bacb26a52b064d6cbf364e9a51aee50c.png

输入自己编辑的代码,

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.

这里不编写代码的话之后测试接口会报错

https://i-blog.csdnimg.cn/direct/aa09e10157d64472b15235c1d7e18d57.png

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

https://i-blog.csdnimg.cn/direct/43579ce2dfd2408f83072a308da505f2.png

https://i-blog.csdnimg.cn/direct/6ee0ff13058d4b5abc77a4c1269bec3a.png

同样的步骤给post也加上

https://i-blog.csdnimg.cn/direct/1dc7d49efbfe40a4bea5e4cd3ad78174.png

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

https://i-blog.csdnimg.cn/direct/0a767002a56e41a8b4958320b364bf2d.png

点击保存后激活

https://i-blog.csdnimg.cn/direct/a56a4a9d43dc42868dfec8562f1efacf.png

事务码SICF

https://i-blog.csdnimg.cn/direct/98d9f0b4de614e47a177d4b6170cf085.png

创建服务并激活

https://i-blog.csdnimg.cn/direct/8865ef532164479aacab3a2ff1eadbf5.png

https://i-blog.csdnimg.cn/direct/bdfd3d5344b74c9992c3ff0d5e42185a.png

填写描述

https://i-blog.csdnimg.cn/direct/e1b86286704f470caf0eb813367cfebf.png

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

https://i-blog.csdnimg.cn/direct/5f7a9566d429411087b49e9e55005c97.png

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

https://i-blog.csdnimg.cn/direct/ca14495d49344e3abc5e3e7c3e68a33f.png

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

https://i-blog.csdnimg.cn/direct/f359221450ed439190643829d951b350.png

激活服务

https://i-blog.csdnimg.cn/direct/7b3fbf4674654ff5a80dc89a20a69159.png

测试服务

https://i-blog.csdnimg.cn/direct/ea864987ddfc465eafdca9c7400f5bdd.png

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

https://i-blog.csdnimg.cn/direct/b5fcee61ff5d43b4a0e3670be1b211d8.png

注:注意传参是parameters 还是body,SAP目前是在parameters。如果想放在body,还需要测试

注:可参考生产系统的类ZCL_REST_IF_SD02

注:测试软件Postman

https://i-blog.csdnimg.cn/direct/9415de8ae03845c5a7012061bd1475bc.png