在这之前我们通过uniCloud
的云函数与云对象创建了前端的接口,在官方文档里,我们可以看到云函数和云对象是可以URL
化的,也就是说我们写好了云函数和云对象,可以将它们URL化,我们在前端可以通过uni.request
方式调用我们写好的接口,就像后台java
或者php
提供的接口一样在前端使用,当然并不提倡这种方式,URL
的目的主要是给非uni-app
开发的系统能接入uni-cloud
,能够使用uniCloud
的云函数或者云对象,从而有了URL
化的需求
在开始本文之前,主要会从以下几点去认识云函数的URL
化
了解
URL
的使用场景,在什么时候可以使用注意云函数
URL
的一些事项云函数如何接口URL化,并指定域名绑定
apiPost
测试我们的云函数接口数据apiPost
如何自动生成接口文档
URL化使用场景
在官方文档里有阐述http,我们要使用它就必须知道知道在什么样的情况使用它
在App接入微信支付,需要配置服务器地址,此时需要接口URL
在非
uni-app
开发的系统,想要连接uni-cloud
读写数据也要通过http url方式访问
通过以上我们就知道一个是在接入微信支付,另一个是在非uni-app
开发的系统,我们其他系统想要用uni-cloud
的服务时,我们就需要url化,因为这样url化后,在其他系统就可以访问我们的接口数据了
云函数接口URL的注意事项
- 主要是为了接口的读写的安全性,我们需要在接口做好权限控制
- 要防止大量恶意访问接口url,消耗云函数资源,如果遇到这种情况可以停止url访问,避免消耗云函数读写
如何接口url化
我们在之前创建的云函数中
在云函数/云对象中,我们将本地的云函数上传到控制台了,在详情中添加一个基础的路径/query
最后我们使用apiPost
工具测试一下我们的接口,我可以使用在线web,也可以使用客户端应用测试,注意我们配置了接口环境变量这个baseUrl
地址就是我们在这之前添加的地址,比如https://fc-mp-e770384a-64f6-4f20-903e-57eeaaa86862.next.bspapp.com/query
这样的一串地址就是baseUrl
我们看下查询详情接口,接口后缀就是queryDetail
,注意我们参数是放在query
上的
我们看下更新接口,接口地址就是{{baseUrl}}/update
,这个update
就是我们的云对象里面的方法名称,其他接口也是类似,我们更新form数据,此时我们选择body的方式是form-data
apipost自动生成接口文档
在之前,其实我们的后端写好接口要么放在yapi
上,要么他们后端自己用word
写个接口文档,但是这种过去式的方式有些低效,我们后端接口在自测阶段就可以将一些补充的字段和描述进行实时更新,而不需担心接口字段不同步问题,因为文档可以自动更新
我们看下如何使用apipost
完善接口文档
我们以查询详情为例子 当我们依次完善这些备注信息时,我们的接口文档就会很完善,当我们点击最顶部的分享项目时,就可以有一个分享链接,生成接口文档了
我们会发现这个链接的接口文档就很清晰了,可以直接访问这个接口地址
绑定域名
我们用apiPost
测试的接口前缀我们使用了变量方式测试,实际上,我想通过域名+接口Path方式去调用接口,所以官方也支持绑定域名方式
我们发现云函数绑定域名是需要填写证书的,此时我们需要登陆我们的阿里云添加免费证书即可,我使用免费证书即可以,一个域名可以有20个免费的证书
然后证书申请,填写自己项目的域名就行,比如我这个项目的域名就是tb.wmcweb.cn
大概一分钟左右就审核通过了,我们只需要选择nginx版,下载即可,然后解压,将安装包的key,和pem填入即可
你的自定义域名之前必须要在域名解析中添加cname后,才可填入正确的key与pem
当我绑定域名后,我们用apipost
验证一下
自此我们接口url自定义绑定域名就已经ok了
项目中测试一下接口url的效果
...
methods: {
async queryTest() {
const res = await uni.request({
url:"https://tb.wmcweb.cn/query/query",
})
console.log('test', res)
}
},
created() {
this.handleQueryData();
this.queryTest();
}
总结
云函数与云对象可以进行url化,我们在有使用
url
化时必须知道其使用场景,通常我们需要让非uni-app
项目使用我们的uniCloud
的云数据时,我们就可以通url方式提供给对方,或者使用App微信支付
回调时也需要一个接口地址接口url化,所有配置只需要在
uniCloud
后台详情修改配置就行了解如何让接口支持自定义域名,注意得解析添加记录,并在阿里云添加免费证书后,把对应域名的密钥与证书填入即可
apipost
测试验证接口并生成接口文档本文示例code example