• 一个简单的RESTful例子


    首先我们创建一个逻辑类,它负责逻辑运算。

    我们可以创建自己的方法和signature,里面是运算逻辑。这个类还不能用于集成,我们还需要一个解析类。

    创建解析类ZCL_DEMO_HANDLER。它需要继承IF_HTTP_EXTENSION和IF_REST_APPLICATION两个接口。我们要实现解析逻辑,则需要重写HANDLE_REQUEST方法,该方法将用于解析HTTP传来的指令。

    HANDLE_REQUEST方法只有一个参数SERVER,但是该参数有很多字段。

    首先我们在常量中,需要注册服务的URI,这里是/SAP/BC/ZDEMO/ZTESTING,后面的SICF配置中可以看到它是如何来的。

    lt_input和wa_input用于存放JSON转换的数据,如果JSON外部有中括号,则会转换成内表,如果没有则会转换成工作区。

    lv_result则用于存放逻辑运算的返回值。

    因为逻辑类有3个input和1个output,所以这里也是3个输入字段和1个返回字段

    接入参数如图,这个应用比较简单,则只需要解析URI和JSON即可。

    常用的参数有:

    • Lv_method: 即HTTP方法
    • Lv_parameter: 即URI后面的显式QUERY
    • Lv_langu: 即语言
    • Lv_path: 即URI
    • Lv_host: 即服务器地址
    • Lv_agent: 即用户agent
    • Lv_token: 即用户token,可用于权限控制
    • Lv_body: 即JSON字符串

    运算部分,如果收到的URI对应本服务,则调用逻辑类的方法并计算。

    这里以JSON返回计算结果。

    创建好逻辑类和解析类,还需要在SICF中注册服务。我们创建了一个叫ZDEMO的节点下的ZTESTING服务。

    ZTESTING服务需要设置账号密码。

    ZTESTING服务也还需要设置解析类,即ZCL_DEMO_HANDLER

    右键激活服务后,用户就可以通过路径和服务名称调用服务了。它们合起来也就是前面代码里的服务地址了。

  • 相关阅读:
    使用Property+使用构造+构建自定义类+使用List<自定义类>(项目)
    几乎全面的食品英文总结
    网络资源深入剖析Binding(学习)
    WPF入门知识(学习)
    Get children gameobjects array and assign the script inside
    Unity3D + C#: Cloning the Content of a Serializable Class
    Use Web Fonts and the @fontface CSS Method
    Good XAML Patterns
    Coroutines & Yield
    How to make a mini map for your scene in Unity3d
  • 原文地址:https://www.cnblogs.com/Intercalaryland/p/11099431.html
Copyright © 2020-2023  润新知