第三方API和云开发的结合使用
发布于 2 年前 作者 nren 2257 次浏览 来自 分享

项目介绍

通过这个项目可以看到历史上的今天开源小程序

点击历史上的今天可以看到不同年份的今天的时间

项目亮点

从前端布局上来说非常简单,没啥可说的,主要来说说关于这个第三方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
}

思路分析

  1. 去获取数据库中有没有相关数据
  2. 如果没有就去请求第三方API数据
  3. 请求完成后存储到数据库中

这样的好处就是每次取出来的数据都会存数据库一份,下次同样的数据就不需要再去请求第三方API了,从自己数据库中查询就可以了。

回到顶部