自定义公共接口
使用说明
使用公共接口,可以将原生服务API发布到外部网关,第三方系统可以通过OAuth2.0调用AstroZero上的原生服务。
前提条件
- 已接入服务实例,具体操作请参见注册Native Service。
- 参考应用依赖与开放中操作,在需要调用原生服务的应用中,通过“添加依赖”,添加要调用的原生服务。
添加后,在该应用的服务编排中才可以调用Native服务。
图1 应用中添加原生服务 - 若AstroZero开启了根证书校验,请先上传原生服务的根证书,再调用原生服务。关于根证书的详细介绍,请参见开启根证书校验。
操作步骤
- 登录AstroZero服务控制台。
- 在实例页面,单击“进入首页”,进入新版应用开发页面。
- 在左侧导航栏中,单击“资产”,进入资产页面。
- 将鼠标放在已创建的Native Service上,单击
,选择“编辑”。
图2 编辑原生服务 - 在Native Service配置页面,单击“设置 > 公共接口”。
图3 选择“公共接口”
- 在公共接口中,单击“新建”。
- 设置公共接口参数,单击“保存”。
图4 设置公共接口参数
- 名称:新建公共接口的名称。
- 版本:公共接口的版本号。
- URL:新URL的地址。其中“/native”是固定值,其次是“/Native Service名称/版本号”,剩下部分进行自定义。自定义的URL需要符合一定规则,规则如下:
- 必须以单个“/”开头。
- 可以配置多级路径,两个或多个“/”之间必须有内容。
- 描述:公共接口的描述信息,通常设置为接口的功能。
- 操作名称:需要开放给外部第三方系统的操作名称,取值来源于配置API中配置的操作名称。
- 资源:与镜像文件中的接口路径一致,不用配置。
- 方法:映射后调用的方法名,如GET(查询)、PUT(增加)、POST(修改)和DELETE(删除),不用配置。
- CSRF校验:调用该公共接口时,是否需要做CSRF校验。GET方法不需要做CSRF校验,其他方法可根据需要配置是否做CSRF校验。
- 否:不需要做CSRF校验,可直接调用该公共接口。
- 是:需要做CSRF校验。在调该公共接口前,需要先调接口“https://AstroZero域名/u-route/baas/sys/v1.0/csrf/get”获取鉴权result取值(调该接口时需要在请求消息头上设置“access-token”,获取方法可参考配置API中介绍),再调用该公共接口请求消息头上设置的“csrf-token”值为鉴权result值,即可调用该公共接口。
- (可选)设置访问该自定义接口的用户业务权限。
若没有配置业务权限,只有业务用户可访问该接口,平台用户不可访问。若配置了业务权限,则只有拥有该业务权限的用户才可以访问该接口。
例如,配置只有拥有业务权限“A”的用户,才可访问该接口,具体步骤如下:- 参考设置业务权限凭证中操作,在“全局元素 > 业务权限凭证”中创建业务权限“A”。
图5 创建业务权限“A”
- 选择“配置 > 用户管理 > 权限”,在权限列表中单击用户对应的权限,进入权限配置详情页面。
- 在“业务权限凭证”页签,配置接入业务权限“A”。
图6 用户权限配置
- 选择“维护 > 全局元素 > 自定义接口”中,单击对应的公共接口,进入接口详情页面。
- 在业务权限凭证中,单击“编辑”,配置业务权限,将左侧业务权限“A”加入到右侧“已选择业务权限凭证列表”中,单击“保存”。
图7 配置业务权限
业务用户访问该接口URL前,还需要创建如下的服务编排,用于获取token值。其中,赋的值“PL”是一个公式变量,表达式为“PORTALUSERLOGIN("pu1")”,其中“pu1”为业务用户名,配置该服务编排的出参为“token”。
图8 创建服务编排执行该服务编排后,在输出信息中,获取token值。
{ "interviewId": "002N000000RBLY9scgDY", "outputs": { "token": "XXXXXXXXXXXXXXX" } }
- 参考设置业务权限凭证中操作,在“全局元素 > 业务权限凭证”中创建业务权限“A”。
在环境配置中,查看公共接口
API发布后,可在环境配置中查看该原生服务提供的方法和模型对象。
- 参考如何登录新版环境配置中操作,登录新版环境配置。
- 在左侧导航栏中,选择“开发配置 > 原生服务 > 服务管理”。
- 在服务管理页面,可查看到该租户下部署的所有原生服务。
- 单击需要查看的原生微服务,在“公共接口”页签,可查看该原生服务定义的公共接口。
在此处可以配置公共接口的访问权限,不可修改公共接口。