我们已经准备好了,你呢?

2022我们与您携手共赢,为您的企业形象保驾护航!

  程序员应该具备的美德是“懒”,能用一行代码搞定的,尽量不用两行。

  所以,刚开始研究PbootCMS制作小程序的时候,第一个想法就是封装接口。

  下面是封装步骤(封装文件在文章提供下载,供大家参考)。

  1、准备md5加密文件。

  因为PbootCMS的签名参数signature是经过双层md5加密的,当然如果后台WebAPI没有开启强制认证的,这一步可以跳过。

  2、封装一下API的请求方法。

  //声明一个请求函数

  function api_request(url,method,parm){

  var apiurl='******';//域名+api.php

  var appid='******';//后台WebAPI中设置的API认证用户

  var appsecret='******';//后台WebAPI中设置的API认证密钥

  var timestamp=Date.parse(new Date());

  timestamp=timestamp/1000;//获取当前时间戳

  var signature=md5.hex_md5(md5.hex_md5(appid+appsecret+timestamp));//构建signature

  var data={//因为搜索、留言和表单需要用到POST方法,要通过data传递参数,所以先声明data对象,方便后面添加

  appid:appid,

  timestamp:timestamp,

  signature:signature,

  };

  //根据请求方法构建Header

  if(method=='POST'){

  //POST方法,设置请求头部

  var header={'Content-Type':'application/x-www-form-urlencoded;charset=utf-8'};

  //添加POST参数到data

  for(var i in parm){

  data<i>=parm<i>;

  }

  }else{

  //GET方法,设置请求头部

  method='GET';

  var header={'Content-Type':'application/json'};

  }

  //通过promise返回数据

  var promise=new Promise(function(resolve,reject){

  //小程序自带的wx.request请求

  wx.request({

  method:method,

  url:apiurl+url,

  header:header,

  data:data,

  //请求成功

  success:function(res){

  var api_data=res.data;

  if(api_data.code!=1&&api_data.code!=0){

  reject({error:'数据请求失败,请稍后重试',code:500});

  return;

  }else{

  resolve(api_data);

  }

  }

  })

  })

  //返回数据

  return promise;

  }

  3、封装API模块

  //这里就比较简单了,就是构建api的url,然后传入到api_request这个请求函数,返回数据。

  //下面是根据官方文档中的api封装的各个模块,有些没有实际测试检查,可能有手误什么的,大家自行调整即可。

  //Api模块

  module.exports={

  //获取公司信息

  companyinfos:function(){

  var url='/cms/company';

  return api_request(url);

  },

  //获取单个公司信息

  companyinfo:function(name){

  var url='/cms/company/name/'+name;

  return api_request(url);

  },

  //获取网站信息

  siteinfos:function(){

  var url='/cms/site';

  return api_request(url);

  },

  //获取单个网站信息

  siteinfo:function(name){

  var url='/cms/site/name/'+name;

  return api_request(name);

  },

  //获取自定义标签

  get_labels:function(){

  var url='/cms/label';

  return api_request(url);

  },

  //获取单个自定义标签

  get_label:function(){

  var url='/cms/label/name/'+name;

  return api_request(url);

  },

  //获取幻灯片

  get_slide:function(gid,num){

  var url='/cms/slide/gid/'+gid+'/num/'+num;

  return api_request(url);

  },

  //获取友情链接

  get_links:function(gid,num){

  var url='/cms/link/gid/'+gid+'/num/'+num;

  return api_request(url);

  },

  //获取栏目列表

  get_navs:function(){

  var url='/cms/nav';

  return api_request(url);

  },

  //获取指定栏目列表

  get_nav:function(scode){

  var url='/cms/nav/scode/'+scode;

  return api_request(url);

  },

  //获取当前栏目

  get_current_cat:function(scode){

  var url='/cms/sort/scode/'+scode;

  return api_request(url);

  },

  //获取内容列表

  get_list:function(scode,num,order){

  if((num!='')&&!order){

  var url='/list/'+scode+'/num/'+num;

  }else if(!num&&(order!='')){

  var url='/list/'+scode+'/order/'+order;

  }else if((num!='')&&(order!='')){

  var url='/list/'+scode+'/num/'+num+'/order/'+order;

  }else{

  var url='/list/'+scode;

  }

  return api_request(url);

  },

  //获取内容列表第*页

  get_list_paged:function(scode,paged,num,order){

  if((num!='')&&(order=='')){

  var url='/list/'+scode+'/num/'+num+'/page/'+paged;

  }else if((num=='')&&(order!='')){

  var url='/list/'+scode+'/order/'+order+'/page/'+paged;

  }else if((num!='')&&(order!='')){

  var url='/list/'+scode+'/num/'+num+'/order/'+order+'/page/'+paged;

  }else{

  var url='/list/'+scode+'/page/'+paged;

  }

  return api_request(url);

  },

  //获取指定内容

  get_content:function(id){

  var url='/content/'+id;

  return api_request(url);

  },

  //获取指定内容多图

  get_content_pics:function(id){

  var url='/cms/pics/id/'+id;

  return api_request(url);

  },

  //获取搜索结果

  get_search_resault:function(parm,num,order){

  if((num!='')&&(order=='')){

  var url='/cms/search/'+'num/'+num;

  }else if((num=='')&&(order!='')){

  var url='/cms/search/'+'oder/'+order;

  }else if((num!='')&&(order!='')){

  var url='/cms/search/num/'+num+'/order/'+order;

  }else{

  var url='/cms/search/';

  }

  return api_request(url,'POST',parm);

  },

  //提交留言

  add_message:function(parm){

  var url='/cms/addmsg';

  return api_request(url,'POST',parm);

  },

  //获取留言内容

  get_message:function(num){

  var url='/cms/msg/num/'+num;

  return api_request(url);

  },

  //获取留言内容第*页

  get_message_paged:function(num,paged){

  var url='/cms/msg/num/'+num+'/page/'+paged;

  return api_request(url);

  },

  //提交表单

  add_form:function(fcode,parm){

  var url='/cms/addform/fcode/'+fcode;

  return api_request(url,'POST',parm);

  },

  //获取表单内容

  get_form:function(fcode){

  var url='/cms/form/fcode/'+fcode;

  return api_request(url);

  },

  //获取表单内容第*页

  get_form_paged:function(fcode,num,paged){

  var url='/cms/form/fcode/'+fcode+'/num/'+num+'/page/'+paged;

  return api_request(url);

  },

  }

  4、完成了,就这么简单。


我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为5000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、400电话申请办理、网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线: 4006-555-869,我们会详细为你一一解答你心中的疑难。项目经理在线

我们已经准备好了,你呢?

2022我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

4006-555-869

上班时间

周一到周五

公司电话

4006-555-869

二维码
微信
线