使用方法
服务创建及管理
通过 AnyService 页面,可以进行服务创建及管理。
创建服务
创建服务时,填写如下相关信息:
- 服务名称:服务名称,用于便于记录。
- 服务标识:支持英文、数字、下划线输入。服务标识在环境内唯一,在调用服务时将会使用标识作为指引。
- 备注:用于记录相关描述说明。
- 源站协议:指定通过 HTTP 或 HTTPS 协议访问已有服务。如果在连接信息上没有填写端口,则会根据协议采用默认端口连接,HTTP 为 80,HTTPS 为 443。
- 源站连接信息:配置已有服务的 IP 地址或域名,如果有指定端口,需要在 IP 或域名上带有端口。例如 139.186.239.126 、 tcb.tencentcloudapi.com:8080。
- 源站访问凭证:可选配置。可参考 Authorization Basic 规范填写。 如果填写了此配置,每次请求源站时,都会将该值添加到 Headers 中的 x-anyservice-authorization 上;源站可以根据此值进行认证,或识别此请求来源为 AnyService 服务。另外需要注意:源站协议选择了为 HTTP 的情况下,请求在返回源站是为明文传递,此时访问凭证也为明文传递。
管理服务
已创建的服务将在服务列表中呈现。您可以查看服务的相关信息,并进行操作。
- 编辑服务:编辑服务可以修改除标识外的各项信息。
- 删除服务:确认后可以删除已有服务。
对服务的修改和删除都可能影响已经在使用服务的代码,请自行注意操作可能产生的影响。
调用服务
小程序中调用
通过如下方式可以在小程序中调用服务
云开发环境初始化 在小程序加载阶段,或使用服务阶段调用一次初始化。全局执行一次即可。
wx.cloud.init(
{
env:"xxxx" //
}
)
例如在小程序的全局初始化中初始化云开发环境。
App({
async onLaunch() {
// 使用callContainer前一定要init一下,全局执行一次即可
wx.cloud.init()
}
})
调用服务
使用如下方式可以调用服务,其中需要注意的参数包括env
和 header中的X-AnyService-Name
。
- X-WX-SERVICE: 固定为 tcbanyservice
- X-AnyService-Name: 填写创建服务时设置的服务标识。
- path:填写请求路径,从 / 根目录开始,填写为实际后端的处理地址。
除需要注意的参数外,其他方法和参数均可以参考wx.request方法,包括 method、data、dataType等等。
// 确认已经在 onLaunch 中调用过 wx.cloud.init 初始化环境(任意环境均可,可以填空)
const res = await wx.cloud.callContainer({
path: '/xxx', // 填入业务自定义路径和参数,根目录,就是 /
method: 'POST', // 按照自己的业务开发,选择对应的方法
header: {
"X-WX-SERVICE": "tcbanyservice", //固定写法
"X-AnyService-Name": "填入服务标识", // X-AnyService-Name 中填入服务标识
// 其他header参数照常填写
}
// dataType:'text', // 默认不填是以JSON形式解析返回结果,若不想让SDK自己解析,可以填text
// 其余参数同 wx.request
});
console.log(res);
额外数据
通过 SDK 在小程序中调用服务时,会通过 HTTP Header 携带更多信息,可以通过解析 header 获得相关数据并在后续使用。
请求 header
header | 具体数据 |
---|---|
X-WX-OPENID | 小程序用户 openid |
X-WX-APPID | 小程序 AppID |
X-WX-UNIONID | 小程序用户 unionid,并且满足 unionid 获取条件时有 |
X-WX-FROM-OPENID | 资源复用情况下,小程序用户 openid |
X-WX-FROM-APPID | 资源复用情况下,使用方小程序 AppID |
X-WX-FROM-UNIONID | 资源复用情况下,小程序用户 unionid,并且满足 unionid 获取条件时有 |
X-WX-ENV | 所在云环境 ID |
X-WX-SOURCE | 调用来源(本次运行是被什么触发) |
X-WX-PLATFORM | 调用平台 |
X-Forwarded-For | 客户端 IPv4 或IPv6 地址 |
X-AnyService-Name | AnyService 服务标识 |
响应 header
header | 具体数据 |
---|---|
X-Cloudbase-Request-Id | 云开发请求 request id |
X-Cloudbase-Upstream-Status-Code | 远端服务的响应状态码 |
X-Cloudbase-Upstream-Timecost | 远端服务的请求响应耗时 |
X-Cloudbase-Upstream-Type | 远端服务的响应类型 |