第三方API和云开发的结合使用
项目介绍
通过这个项目可以看到历史上的今天开源小程序
点击历史上的今天可以看到不同年份的今天的时间
项目亮点
从前端布局上来说非常简单,没啥可说的,主要来说说关于这个第三方API数据与云开发的的结合。通常来说我们的数据都是存储在数据库中,但是还有一种情况就是假设我们没有数据怎么办?
那么这个时候就就会想到第三方API接口,自己没有别人有可能有,但是别人的始终是别人的,并且很多数据接口都是收费的,那么如何优化呢?
上代码!
// 云函数入口文件
const cloud = require('wx-server-sdk')
const axios = require('axios')
cloud.init()
const db = cloud.database()
// 聚合数据
const { baseUrl, key } = require('./config')
const COL_NAME = 'historyDetail'
// 云函数入口函数
exports.main = async (event, context) => {
const eId = event.id;
console.log('eId', eId)
const ret = await db.collection(COL_NAME).where({
e_id: eId
}).get()
if (ret.data.length > 0) {
return ret.data[0].result
}
const resp = await axios.get(baseUrl, {
params: {
key,
e_id: eId
}
}).then(res => {
return res.data
})
console.log('resp', resp)
await db.collection(COL_NAME).add({
data: {
e_id: eId,
result: resp.result
}
})
return resp.result
}
思路分析
- 去获取数据库中有没有相关数据
- 如果没有就去请求第三方API数据
- 请求完成后存储到数据库中
这样的好处就是每次取出来的数据都会存数据库一份,下次同样的数据就不需要再去请求第三方API了,从自己数据库中查询就可以了。