SAP 发布简易REST 一:login验证详解编程语言

说明:这里没有使用ODATA,只是用最基础的HTTP和JSON来处理。

这篇为第一篇,所以这里来说说验证的一些东西。

创建SE24实施类,做http接口:ZCRM_REST

激活后,添加接口类:IF_HTTP_EXTENSION

添加实现代码:

  METHOD if_http_extension~handle_request. 
    TYPES:BEGIN OF ty_login, 
            username TYPE string, 
            password TYPE string, 
          END OF ty_login, 
          BEGIN OF ty_retu, 
            success      TYPE string, 
            access_token TYPE string, 
            message      TYPE string, 
          END OF ty_retu. 
    DATA: lo_json_ser TYPE REF TO zcl_trex_json_serializer, 
          lo_json_des TYPE REF TO zcl_trex_json_deserializer. 
    DATA: lt_fields TYPE tihttpnvp, 
          lv_data   TYPE string, 
          lv_retu   TYPE string, 
          gw_login  TYPE ty_login, 
          gw_retu   TYPE ty_retu, 
          lv_guid   TYPE crmt_object_guid. 
 
    FIELD-SYMBOLS: <fs_field>       LIKE LINE OF lt_fields. 
 
*""GET HTTP MESSAGE BODY 
    lv_data = server->request->if_http_entity~get_cdata( ). 
 
    zprocessjson=>deserialize( 
    EXPORTING 
      json        = lv_data 
    CHANGING 
      data        = gw_login 
         ). 
 
    "CHECK AUTH ADN SET RETURN MESSGAE 
    IF gw_login-username = 'andy' AND gw_login-password = '123456'. 
      gw_retu-success = 'true'. 
      CALL FUNCTION 'CRM_GUID_CREATE' 
        IMPORTING 
          ev_guid = lv_guid. 
 
      gw_retu-access_token = lv_guid. 
    ELSE. 
      gw_retu-success = 'E'. 
      gw_retu-message = 'ERROR'. 
    ENDIF. 
 
    lv_retu = /ui2/cl_json=>serialize( 
      data        = gw_retu 
      pretty_name = 'L' 
      compress    = abap_true ). 
 
    "SET RETURN DATA 
    server->response->set_cdata( 
            EXPORTING 
              data   = lv_retu    " Character data 
          ). 
 
  ENDMETHOD.

sicf在sap目录下创建服务API

SAP 发布简易REST 一:login验证详解编程语言

SAP 发布简易REST 一:login验证详解编程语言

SAP 发布简易REST 一:login验证详解编程语言

保存,激活,测试服务。

SAP 发布简易REST 一:login验证详解编程语言

哎,尽管能取到token,但是再后续调用的过程中,header传递的token取不到。。。操。。。这就不好玩了呀。那这样REST接口只能用用户名和密码验证了。。。突然。。。索然无味

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/18718.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论