在这之前我们通过uniCloud的云函数与云对象创建了前端的接口,在官方文档里,我们可以看到云函数和云对象是可以URL化的,也就是说我们写好了云函数和云对象,可以将它们URL化,我们在前端可以通过uni.request方式调用我们写好的接口,就像后台java或者php提供的接口一样在前端使用,当然并不提倡这种方式,URL的目的主要是给非uni-app开发的系统能接入uni-cloud,能够使用uniCloud的云函数或者云对象,从而有了URL化的需求

在开始本文之前,主要会从以下几点去认识云函数的URL

  • 了解URL的使用场景,在什么时候可以使用

  • 注意云函数URL的一些事项

  • 云函数如何接口URL化,并指定域名绑定

  • apiPost测试我们的云函数接口数据

  • apiPost如何自动生成接口文档

URL化使用场景

在官方文档里有阐述httpopen in new window,我们要使用它就必须知道知道在什么样的情况使用它

  • 在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完善接口文档

我们以查询详情为例子 当我们依次完善这些备注信息时,我们的接口文档就会很完善,当我们点击最顶部的分享项目时,就可以有一个分享链接,生成接口文档了

我们会发现这个链接的接口文档就很清晰了,可以直接访问这个接口地址open in new window

绑定域名

我们用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 exampleopen in new window

扫二维码,关注公众号
专注前端技术,分享web技术
加作者微信
扫二维码 备注 【加群】
教你聊天恋爱,助力脱单
微信扫小程序二维码,助你寻他/她
专注前端技术,分享Web技术
微信扫小程序二维码,一起学习,一起进步
前端面试大全
海量前端面试经典题,助力前端面试