领先的互联网解决方案提供商!

深圳 : 0755-2101 0201 广州 : 020-8092 8113 东莞 : 0769-3326 0066 <<<>
  • 365bet体育开户
  • SEO推广
  • 客户案例
  • 联系我们
  • 扫描添加微信

    30秒获取报价:

    提交您的电话,免费赠送一年维护及关键词排名

  • 联系人*
  • 手机号*
  • PbootCMS小程序API的封装步骤教程

    您现在的位置:首页 > 新闻中心 > IT教程
    作者:http://www.tidalal.com365bet体育开户_365bet网站谁有_365bet备用网址日本建设SEO 发布于:2019-3-26 22:12:00 点击量:

    文章概要:

    程序员应该具备的美德是“懒”,能用一行代码搞定的,尽量不用两行。所以,刚开始研究PbootCMS制作小程序的时候,第一个想法就是封装接口。文件下载地址:PbootCMS小程序接口封装.zip下面是封装


    详细内容:

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

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


    文件下载地址:

    PbootCMS小程序接口封装.zip


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


    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);
    ??},
    
    ??//获取365bet体育开户_365bet网站谁有_365bet备用网址日本信息
    ??siteinfos:?function(){
    ????var?url?=?'/cms/site';
    ????return?api_request(url);
    ??},
    
    ??//获取单个365bet体育开户_365bet网站谁有_365bet备用网址日本信息
    ??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、完成了,就这么简单。


    下面说明一下调用的方法:


    1、在需要调用数据的js页面引入api文件,例如首页的index.js

    const?api?=?require('../../utils/api.js');??//路径根据自己的实际情况调整


    2、在生命周期函数--监听页面加载函数中使用api模块。

    /**
    *?生命周期函数--监听页面加载
    */
    onLoad:?function?(options)?{
    ????
    ????var?that?=?this;??//划重点,这句千万不要忘掉了。
    
    ????//api.模块函数.then...来调用,这里companyinfos()是调用公司信息
    ????api.companyinfos().then(function?(rs)?{
    ??????//通过setData把获取到的数据赋值到页面初始数据的data对象,这样就可以在wxml中使用数据了。
    ??????that.setData({
    ????????companyinfos:?rs.data,
    ??????})
    ??????//把获取的数据输出到控制台看看,实际使用的时候删除掉下面这行
    ??????console.log(rs.data);
    ????})
    ????
    ??},


    3、控制台截图,可以看到公司信息的数据获取成功,接下来就是绑定数据到页面的事情了。

    001.jpg


    4、POST请求的使用方法。同样在生命周期函数--监听页面加载函数中使用api模块。

    //首先声明一个对象,用来存储需要通过POST传递过去的参数。比如搜索的keyword,scode,留言的字段等。
    
    //这里演示的是搜索模块,声明对象,POST搜索的关键词和指定分类。
    var?search_obj?=?{
    ????'keyword':?'模板',
    ????'scode':?'3,5',
    };
    
    //get_search_resault需要传入?搜索对象(也就是刚才声明的),返回条数,排序方式。
    //这里演示需要获取的是分类3和5中的,关键词是模板的5条信息。
    api.get_search_resault(search_obj,?5,?'id').then(function?(rs)?{?
    ????that.setData({
    ??????search:?rs.data,
    ????})
    ????console.log(rs.data);
    })


    5、看看控制台的截图。

    002.jpg

    可以看到,已经获取到分类3和分类5中的,关键词是“模板”,并且按照id进行排序的前5条数据了。


    上一篇: 名词术语
    下一篇: 让365bet体育开户_365bet网站谁有_365bet备用网址日本域名权重集中,提升SEO效果 相关文章:
    2019-03-29 为什么你的365bet体育开户_365bet网站谁有_365bet备用网址日本主页上的图像很重要
    2019-03-29 阿里的域名持有者申请域名线下转移操作流程
    2019-03-29 365bet体育开户_365bet网站谁有_365bet备用网址日本建设的价格为什么区别那么大?
    2019-03-29 免费赠送的虚拟主机的三级域名是什么?
    2019-03-29 在我的虚拟主机根目录下有三个目录,文件应传至哪个目录下呢?
    2019-03-29 域名解析生效后,为何访问到365bet体育开户_365bet网站谁有_365bet备用网址日本建设公司虚拟主机控制面板
    2019-03-29 使用FTP软件上传文件时,提示密码错误,无法连接是为什么
    2019-03-29 如何跟网页设计公司讨论365bet体育开户_365bet网站谁有_365bet备用网址日本的视觉风格问题?
    2019-03-29 如果我对设计的成果不满意,可以要求重新设计吗?
    2019-03-29 网页设计公司完成的作品越多,代表品质越好吗?
    2019-03-29 365bet体育开户_365bet网站谁有_365bet备用网址日本出现崩溃的原因
    2019-03-29 解决365bet体育开户_365bet网站谁有_365bet备用网址日本支持请求需要多长时间
    2019-03-29 如何创建一个免费365bet体育开户_365bet网站谁有_365bet备用网址日本
    2019-03-29 本章概括【腾邦国际】-【腾邦现货】的含义及好处
    2019-03-28 滕邦国际,【滕邦现货】具体介绍资料
    2019-03-28 10、 【滕邦国际】,滕邦现货
    2019-03-28 抖音买粉,抖音流量,抖音涨粉
    2019-03-27 行业大牛带你玩转建站, 处处先人一步!
    2019-03-27 成为金领365bet体育开户_365bet网站谁有_365bet备用网址日本建设工程师 不是套用几个模板就可以搞定
    2019-03-27 网页设计师也应该懂得SEO技巧
    相关分类:
  • 公司新闻
  • 常见问题
  • 行业新闻
  • 365bet体育开户_365bet网站谁有_365bet备用网址日本推广
  • 365bet体育开户_365bet网站谁有_365bet备用网址日本推广
  • 365bet体育开户_365bet网站谁有_365bet备用网址日本建设
  • 推广常识
  • IT教程
  • SEO优化
  • 365bet体育开户_365bet网站谁有_365bet备用网址日本开发
  • 客户案例
  • 解决方案
  • 提交您的电话,免费赠送一年维护及关键词排名

  • 联系人*
  • 手机号*
    1. 首页
    2. 365bet体育开户
    3. 365bet体育开户_365bet网站谁有_365bet备用网址日本推广
    4. 软件开发
    5. 案例展示
    6. 关于我们
    7. 联系我们

      扫码添加微信咨询

    Copyright 2008-2018 通宝918官方下载 Shenzhen Sinco Network Co., Ltd 严禁抄袭模仿本站 违者依法追究责任! 粤ICP备14083186号-3

  • 通宝918官方下载
    电话 : 0755-2101 0201
    手机 : 136 3165 7619
    地址 : 深圳市龙华新区东环一路旭日大厦ll08室
  • 广州分公司
    电话 : 020-8092 8113
    手机 : 135 3988 3715
    地址 : 广州市海珠区宝岗大道268号中新大厦1912
  • 东莞分公司
    电话 : 0769-3331 9353
    手机 : 137 1719 8162
    地址 : 东莞市南城区鸿福路83号曼哈顿广场2409
  • 武汉分公司
    电话 : 027-8355 8661
    手机 : 182 4491 9118
    地址 : 武汉市东西湖区金银湖路18号财富大厦30E
  • 上海分公司
    电话 : 021-3113 7661
    手机 : 132 6719 9217
    地址 : 上海市闸北区江场西路299弄中铁广场堡尼大厦2131
  • 拨打电话
  • 添加微信
  • QQ咨询