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

如何开放API接口

什么是API接口

API接口是用户将在应用中开发的脚本、服务编排等包装成自定义REST接口的形式发布出去使用,使得URL地址的表达形式更规范,方便让第三方系统进行调用。

如何定义API接口

  1. 参考登录经典应用设计器中操作,进入经典版应用设计器。
  2. 单击页面左下角的“服务”,进入服务管理页面。

    图1 服务
    图2 服务管理界面
    • 私有接口:使用私有接口,可以将服务编排的URL映射到内部网关,提供给内部脚本、服务编排等流程调用。对于BO可以定义私有接口。
    • 公共接口:使用公共接口,可以将服务编排、脚本或对象的URL映射到外部网关,第三方可以通过OAuth2.0调用。
    • 内部网关:仅当前租户能够访问映射到内部网关中的自定义接口,即只有同一租户下的脚本、服务编排等才能调用发布的私有接口。
    • 外部网关:其他租户或第三方系统均可访问映射到外部网关中的自定义接口。

  3. 单击“新建”,设置接口参数后,单击“保存”。

    • 标签:新建API接口的标签。
    • 操作名称:新建API接口的操作名称。
    • 版本:API接口的版本,格式为“x.y.z”。
    • URL:API接口路径, 固定以 /service/{命名空间}__{应用名}/{版本} 开头, 后面接API的具体路径。
    • 内容类型:请求中的body类型。

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

    • 分类:API接口所属的分类。
    • 描述:自定义API接口的描述信息。
    • 允许匿名访问:是否可以匿名访问运行环境中该API接口。

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

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

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

    • 类型:选择资源类型,只有服务编排类型的接口能够在服务编排中被调用,其他类型接口只能通过API的形式进行调用。
      • 服务编排:定义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"
        }
    • 资源:根据类型选择需要绑定的资源,如脚本,服务编排或操作的对象名称。

      如果找不到需要绑定的服务编排或脚本,请检查服务编排或脚本是否启用。如果没有启用,请进入服务编排或脚本设计页面,单击页面左上角的图标,启用服务编排(图3)或脚本(图4)。

      图3 启用服务编排
      图4 启动脚本
    • 对象操作:“类型”选择“对象”时,该参数才会显示。
      • 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:按条件查询对象数据。
    • 方法:API接口的HTTP方法。
      • GET:请求服务器返回指定资源。
      • PUT:请求服务器更新指定资源。
      • POST:请求服务器新增资源或执行特殊操作。
      • DELETE:请求服务器删除指定资源。
      • PATCH:请求服务器更新资源的部分内容。当资源不存在时,PATCH可能会去创建一个新的资源。

  4. 在接口列表中,单击接口后的,可查看定义的API信息。

    单击“测试一下”,可模拟API接口调用。

    图5 API接口请求参数信息
    图6 API接口返回参数信息

    API接口的请求参数和返回消息体,为绑定的资源(如脚本,服务编排等)所配置的入参和出参。

相关文档