发布 http 接口,以供第三方系统调用
1.se24 创建一个类,并继承接口IF_HTTP_EXTENSION,
2.回车后重写方法HANDLE_REQUEST,并添加GET,POST方法(根据自己的需求来)
3.根据实际业务对POST方法进行代码写入
method post.
***json以及内表参数
data:it_fybx type table of zsfbt002_type01 ,
gt_return type table of zsfbt002_type02,
gv_message type char1,
json_fybx type string,
gv_return type string,
json_return type string.
data: lv_content_type type string.
data:all_num type p, "传入json参数的字符个数
json_num type p. "实际需要的参数个数
Delivers the HTTP body of this entity as character data
json_fybx = server->request->get_cdata( ). "获取入参json数据
if json_fybx is initial.
code = 404 reason = '未解析到Body参数,请检查' ).
return.
endif.
all_num = strlen( json_fybx ).
json_num = all_num - 12.
json_fybx = json_fybx+11(json_num).
zcl_json=>deserialize( exporting json = json_fybx changing data = it_fybx ). "将Json转换成内表
if it_fybx is not initial.
call function 'ZF_FBT_002'
importing
message = gv_message
tables
it_fybx = it_fybx
it_return = gt_return.
call method zcl_json=>serialize "返回参数 内表转JSON
exporting
data = gt_return
pretty_name = 'U'
receiving
r_json = gv_return.
concatenate '{"IT_RETURN":' gv_return '}' into json_return.
if gv_message = 'S'.
json_return ).
code = 200 reason = 'OK' ). "Sets current HTTP status code
lv_content_type = 'application/json'.
lv_content_type ).
else.
json_return ).
server->response->set_status( code = 500 reason = 'ERROR' ).
code = 200 reason = 'ERROR' ).
endif.
ELSE.
code = 200 reason = 'Input Json Data Error' ).
endif.
endmethod.
4.GUI端配置
Tcode: SICF 配置服务
在登录数据中没有设置账号密码的话 ,链接后面可以直接添加,比如:
http://sapqas.xxxxx.com:8001/zfbt/zfbt001?sap-client=800&sap-user=账号&sap-password=密码
对应的端口号查看或者更改Tcode:SMICM
使用soapui或者postman、apifox工具就可以直接测试了。
这个仅仅测试例子,
实际生产过程中。
需要账号密码验证?
token
Base64
MD5
AES
国算
等方式加解密以确保安全。
具体不展开讲,絮语可以付费咨询~
公众号上好像也有片段记录。
我是老周,如果你喜欢我的文字,请记得点击⬇️关注我。
码字不易,文章下拉,右边点个【赞】和【在看】吧!!
猜您还喜欢合集:
猜您还喜欢文章: