更新时间:2024-08-08 GMT+08:00
分享

如何自定义调用服务编排的URL

使用说明

低代码平台支持将已有的接口URL地址再包装成一个新的URL地址,使得URL地址的表达形式更规范,方便让第三方系统进行调用。原来的URL地址也同样可以使用。

场景描述

对某个服务编排的URL进行包装,自定义为新的URL。

操作步骤

  1. 参考登录经典应用设计器中操作,登录经典版应用设计器。
  2. 在页面左下方,选择“服务”

    图1 单击服务

  3. 在公共接口中,单击“新建”。
  4. 设置自定义接口参数。

    图2 新建自定义接口
    表1 新建自定义接口参数说明

    参数

    参数说明

    标签

    新建接口的标签。

    操作名称

    新建接口的操作名称。

    版本

    URL对应的版本号。

    URL

    新URL地址,其中“/service”为固定值,其次是“/App名称/版本号”,剩下部分进行自定义。

    自定义的URL需要符合一定规则,规则如下:

    • 必须以单个“/”开头。
    • 可以配置多级路径,两个或者多个“/”之间必须有内容。

    内容类型

    请求中的body类型。

    • application/json
    • multipart/form-data
    • binary-data

    “multipart/form-data”和“binary-data”用于文件上传接口,选择该内容类型,只能调用POST类型的脚本。

    分类

    新建接口所属的分类。

    描述

    新建接口的描述信息,建议设置为API的作用。

    允许匿名访问

    是否可匿名访问运行环境中,该API接口。

    勾选表示允许匿名访问,通过运行环境子域名访问此接口时,如果无有效的Token认证信息,则以匿名用户身份继续访问此接口,且不需要做CSRF校验。匿名用户的权限为“Anonymous User Profile”,请确保该权限具备访问该接口的业务权限凭证或者相关资源权限。如当该接口有配置业务权限凭证时,给“Anonymous User Profile”权限添加相应业务权限凭证,即可通过运行环境子域名匿名访问该接口。

    说明如下:

    • 需要支持匿名访问自定义接口的账号,必须要设置运行环境子域名。
    • 带有合法认证信息来访问允许匿名访问的自定义接口时,优先以合法认证的身份权限来访问。
    • 匿名用户身份访问自定义接口,不需要做CSRF校验。
    • 不论以什么方式来访问, 认证身份后做的权限校验保持一致。如果配置了业务权限凭证,还会查看用户权限,是否配置了相应的业务权限凭证。

    例如:登录业务应用接口“login”的URL为“/service/CNAME__MyApp/1.0.0/login”,运行环境子域名为“test.example.com”,期望可匿名访问该自定义接口,则配置接口时请勾选“允许匿名访问”,且“Anonymous User Profile”权限配置了该接口的业务权限凭证,则匿名用户通过“https://test.example.com/service/CNAME__MyApp/1.0.0/login”,即可访问该接口。

    类型

    系统支持以下三种类型。

    • 服务编排:表示该定义URL调用的接口类型是服务编排。
    • 脚本:表示该定义URL调用的接口类型是脚本。
    • 对象:表示该定义URL是操作对象数据,包括对象数据的增删改查。

    本示例选择服务编排。

    自定义响应

    是否需要格式化,调用该URL后返回的响应消息。如果勾选,表示对响应消息进行格式化,删除resCode、resMsg、result外层信息,只透传返回的消息。

    例如,不勾选“自定义响应”,返回如下响应消息:

    {
        "resCode": "0",
        "resMsg": "成功",
        "result": [
            {
                "equipments": [
                    {
                        "createdBy": "aaa",
                        "createdBy.__objectType": "User"
                    },
                    {
                        "createdBy": "aaa",
                        "createdBy.__objectType": "User"
                    }
                ],
                "total": "2"
            }
        ]
    }

    勾选“自定义响应”后,只返回如下响应消息:

    {
        "equipments": [
            {
                "createdBy": "aaa",
                "createdBy.__objectType": "User"
            },
            {
                "createdBy": "aaa",
                "createdBy.__objectType": "User"
            }
        ],
        "total": "2"
    }

    资源

    调用的服务编排、脚本或操作的对象名称。

    对象操作

    请选择具体的操作。当“类型”选择为“对象”时,该参数才会显示。

    • Insert Record:新增对象数据。
    • Update or Insert Record:更新或者新增对象数据。
    • Update By ID:按记录ID更新对象数据。
    • Delete By ID:按记录ID删除对象数据。
    • Query By ID:按记录ID查询对象数据。
    • Update By Condition:按条件更新对象数据。
    • Delete By Condition:按条件删除对象数据。
    • Query By Condition:按条件查询对象数据。

    方法

    映射后调用的方法名,如GET(查询)、PUT(增加)、POST(修改)和DELETE(删除)等。

    输入参数/输出参数

    展示服务编排的入参、出参,同时支持修改未受保护资源的参数描述。由于开发人员在开发服务编排过程中,可能未设置或未精确添加参数的描述信息,导出自定义接口的yaml描述文档时对参数的描述就会缺失或模糊。在开放接口二次封装服务编排时,可对参数描述进行编辑补充。

    当“类型”选择为“服务编排”时,该参数才会显示。

  5. 设置完成后,单击“保存”。

    保存后,进入接口详情页。在接口详情页的“基本信息”区域,勾选“是否已废弃”后,可配置是否推荐使用该接口。若不推荐使用,勾选“是否已废弃”,勾选后,在后续使用到该接口时,会显示该接口“已废弃”的提示,但接口仍可被调用。

  6. (可选)开发者配置自定义接口列表的访问权限。

    当开发者需要自定义这些接口的访问权限时,需要执行该步骤。

    1. 参考脚本开发中操作,开发权限脚本,新建脚本时选择“示例权限脚本”模板,在脚本中定义权限逻辑,开发完后并启用脚本。

      例如,“示例权限脚本”模板是开发者需要通过脚本实现根据用户标识查询第三方权限数据,脚本的设计逻辑流程如下。

      1. (可选)设置数据过滤,例如根据第三方系统用户名进行数据过滤。
      2. (根据过滤条件)向第三方获取权限数据。
      3. (可选)缓存权限数据。
      4. 根据当前API标识,检查是否有权限。
    2. 在自定义接口列表页面,即服务页面上方“自定义访问控制”区域单击“编辑”。
      图3 单击编辑按钮
    3. 在配置页面,选中“与脚本绑定”, 选择“前置处理”脚本和“后置处理”脚本,单击“保存”。
      • 前置处理:一般是授权处理脚本,在访问自定义接口前,需要进行授权处理。
      • 后置处理:一般是敏感错误信息或统计日志处理脚本,后置脚本没有返回参数,无论执行成功或失败都不影响自定义接口的请求处理流程。
      图4 绑定权限脚本
    4. 当开发者不需要使用该权限脚本时,可在页面单击“禁用”按钮。

  7. (可选)设置访问该自定义接口的用户业务权限。

    当需要配置该接口的用户访问时,需要执行该步骤。若已参照上一步设置了通过脚本控制接口访问权限,则该步骤设置不生效。

    若没有参照上一步通过脚本控制接口访问权限,也没有配置业务权限且内置系统参数“bingo.permission.customapi.check”值为“否”,则只有业务用户可访问该接口,平台用户不可访问。若没有参照上一步通过脚本控制接口访问权限,也没有配置业务权限且内置系统参数“bingo.permission.customapi.check”值为“是”,则业务用户和平台用户都不可访问。若已参照上一步设置了通过脚本控制接口访问权限,则业务权限配置不生效。若没有参照上一步通过脚本控制接口访问权限,而配置了业务权限,则只有拥有该业务权限的用户才可以访问该接口。

    例如,配置只有拥有业务权限“A”的用户,才可访问该接口。
    1. 参考设置业务权限中操作,在经典版环境配置中选择“用户管理 > 业务权限凭证”,创建业务权限“A”。
      图5 创建业务权限“A”
    2. 选择“用户管理 > 权限配置”,编辑权限,在“业务权限凭证”页签配置接入业务权限“A”。
      图6 用户权限配置
    3. 返回经典版应用设计器,单击“服务”,在自定义访问控制接口列表中,单击操作名,进入自定义接口详情页面。
    4. 在业务权限凭证中,单击“编辑”,配置业务权限,将左侧业务权限“A”加入到右侧“已选择业务权限凭证列表”中,单击“保存”。
      图7 配置业务权限

      业务用户访问该接口URL前,请参考如何开发服务编排中操作,创建如下服务编排,用于获取token值。其中,赋的值“PL”是一个公式变量,表达式为“PORTALUSERLOGIN("pu1")”,“pu1”为业务用户名,配置该服务编排的出参为“token”。

      图8 创建服务编排

      执行服务编排后,在如下输出信息中,获取token值。

      {
        "interviewId": "002N000000RBLY9scgDY",
        "outputs": {
          "token": "XXXXXXXXXXXXXXXXXX"
        }
      }

  8. (可选)创建完自定义接口后,可进行在线测试。

    1. 在自定义接口列表页面,单击接口所在行的
    2. 在弹出的页面中,单击URL后的

    3. 单击“测试一下”,如果有输入参数,输入参数后,单击“执行”。

      成功响应,表示接口调用成功 。

相关文档