本文介绍小程序调用 API 接口的封装,并通过 koa2 写个测试接口调用。

基本目录

├── api
│   └── api.js      // 接口配置
├── pages
│   ├── index       // 测试页面
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
├── utils
│   └── util.js
...

./api/api

// 定义基本URL
const BASE_URL = 'http://0.0.0.0:3000';// 封装请求
const request = (url, method, data) => {return new Promise((resolve, reject) => {wx.request({url: BASE_URL + '/api/v2'  + url,method: method,data: data || {},header: {Accept: "application/json",'Content-Type': 'application/x-www-form-urlencoded'},success(request) {resolve(request.data)},fail(error) {reject(error)},complete(res) {console.log('loading completed');}})})
}// 扩展 promise 的 finally 方法
Promise.prototype.finally = function (callback) {let P = this.constructor;return this.then(value => {P.resolve(callback()).then(() => value);},reason => {P.resolve(callback()).then( () => { throw reason });});
}// 导出接口
module.exports = {// 测试接口test(params){return request('/test','post', params);}
}
  • 首先定义基础接口路径 BASE_URL
  • 封装 request 返回一个用 Promise 包裹的 wx.request 方法
  • 后面扩展了 Promise 实例的 finally 方法。原因是手机上会报没有 finally 这个方法的错。
  • 最后导出接口,此示例导出一个 post 方式请求的 test 方法。

测试接口 ./pages/index/index.js 只列出相关代码

// 导入接口
import { test } from '../../api/api';Page({data: {...res_data: null,  // 定义数据...},...onLoad() {test({title: "post-test"}).then(res=>{this.setData({res_data: JSON.stringify(res)});})},...
})

展示接口数据 ./pages/index/index.wxml

<view class="container">{{api_test}}
</view>

调用接口后获取到的 json 结构

{"code":200,"data":{"title":"post-test","message":"wechat applet api test post"},"msg":"success"
}
  • 这个 json 结构是由 koa2 简单写个示例提供。

koa2 相关代码

const Router = require('koa-router');
const router = new Router();router.post('/test', async (ctx,next) => {const { title } = ctx.request.body;ctx.body = {code: 200,data:{title: title || "default",message: "wechat applet api test post"},msg: "success"};
});router.use('/api/v2', router.routes());
module.exports = router;
  • 为了简化,直接把返回结果写在路由里。

微信小程序配置接口调用API相关推荐

  1. wamp3.0.6配置https + Nginx转发 + 满足微信小程序的接口调用域名

    环境:winserver2012 R2 wamp环境 安卓无法发起请求https://www.jianshu.com/p/61695bfae5f7?utm_campaign 一.  wamp3.0.6 ...

  2. 微信小程序getWXACodeUnlimit接口调用和返回二进制流转换成图片保存到本地

    微信小程序获取无限制带参数二维码后台接口请求处理 第一步简单无坑GET请求把你的appid和appsecret拼接起来的URL会返回一个ACCESS_TOKEN public static Strin ...

  3. 微信小程序开发——接口调用

    利用 前一篇 http_get 调用接口函数. wx.cloud.callFunction({name: 'http_get',data: {"options": {"m ...

  4. 微信小程序-配置请求合法域名的问题以及豆瓣api问题

    微信小程序-配置请求合法域名的问题以及豆瓣api问题 https://www.jianshu.com/p/b71200e0b9b9

  5. 小程序api 分享scene_网课查题题库接口API-在线免费授权,微信小程序网课答案api接口...

    网课查题题库接口API-在线免费授权,微信小程序网课答案api接口更多相关问题 支持员工实现绩效目标.促进员工自身发展的能力标准的目标是().A.组织目标B.部门目标C.发展目标B.化肝煎合左金丸C. ...

  6. 关于使用nodejs搭建微信小程序支付接口

    前言 前段时间在开发一个微信小程序的时候需要用到支付功能,我就去看了下微信支付的官方文档,好家伙,微信官方只提供了java.php还有Go语言的sdk.PHP我会点吧,但又不是很会,做为一个菜鸡前端, ...

  7. java微信小程序接口openid过期_Java微信小程序登录接口获取openid

    根据官方文档,wx.login()的回调函数中,需要我们传递生成的用户登录凭证到code2accessToken的接口中 小程序登录方法 code2accessToken的方法中要求传入如下参数 co ...

  8. PHP:【微信小程序】初识微信小程序,微信小程序配置

    PHP:[微信小程序]初识微信小程序,微信小程序配置 一.介绍 小程序提供了一个简单.高效的应用开发框架和丰富的组件及 API,帮助开发者在微信中开发具有原生 APP 体验的服务 小程序是一种全新的连 ...

  9. 微信小程序学习总结(六) --- API

    微信小程序学习总结(六) - API API 规则: 1 . 都是以wx.开头 2. 以wx.on开头的是监听某个事件的API接口,接受一个回调函数作为参数 3. api大多是异步的函数,接受Obje ...

  10. 微信小程序配置服务器域名和业务域名

    微信小程序配置服务器域名和业务域名 背景 如何配置服务器域名 如何配置业务域名 背景 微信小程序本身的限制,并不能直接请求接口地址和在web-view中随意跳转H5页面,其需要配置服务器域名,才能在微 ...

最新文章

  1. Github上Pandas,Numpy和 Scipy三个库中20个最常用的函数
  2. 【数字信号处理】线性时不变系统 LTI “ 输入 “ 与 “ 输出 “ 之间的关系 ( LTI 系统单位脉冲响应 | 卷积 | 卷积推导过程 )
  3. 【跃迁之路】【497天】程序员高效学习方法论探索系列(实验阶段254-2018.06.17)...
  4. libboost_filesystem.so: undefined reference to
  5. Linux Kernel 5.14 arm64异常向量表解读-中断处理解读
  6. eureka源码:EurekaTransport类用于client与server进行交互
  7. 【整理】史上最强的娱乐大餐———九奔、汉澳、器普。。。。。。
  8. 京东五星电器送扫地机器人_家电也流行“套餐”,京东五星电器吹响国庆家装“集结号”...
  9. Springboot/Cloud集成Sentinel 和 入门实战
  10. IE浏览器整页截屏程序
  11. UITableView 系列四 :项目中行的操作 (添加移动和删除)(实例)
  12. oracle-DECODE()函数
  13. 3.struts2中Action的三种写法
  14. 谷歌学术搜索 简易PDF爬虫
  15. 【C语言】数组排序方法总结
  16. Shiro框架 Subject、SecurityManager、线程之间的关系
  17. Chrome——截图插件篇
  18. [英语语法]词法之分词
  19. 繁体简体转换的python包pylangtools
  20. java微信公众号自动回复文字加图片

热门文章

  1. linux结课考试试题,Linux认证考试课后基础试题及答案
  2. 源码分析Netty系列
  3. Proteus8.9 下载与安装教程
  4. easyui 全部图标
  5. 懒人网址导航源码v2.4.5 自适应
  6. python爬虫之模拟登陆csdn
  7. 【15】 数学建模 | 典型相关分析 | 内附具体实现流程(清风课程,有版权问题,私聊删除)
  8. 万能五笔2005输入法平台6.46版---试用手记
  9. oseasy还原卡_学校机房管理批量更新软件的问题还原卡、网刻、噢易OSS对比区别...
  10. ConcurrentHashMap底层结构分析