后端架构构建小程序api调用后


一、简介

现在微信小程序越来越流行。相信很多人都学习过微信小程序,或者通过各种渠道尝试过开发。笔者出于兴趣了解了微信小程序的开发,所以现在借这篇文章来记录下我之前的开发。一些经验和一些想法。

源码数据获取方式:关注小编+转发文章+私信【0630】免费获取!!!!

二、主要内容

后端架构搭建小程序项目搭建小程序api调用后台接口编写小程序调用后台接口免费https应用linux部署在线

3、微信小程序项目搭建

这些基本的东西我就不过多介绍了。刚开始开发的时候,一般没有自己的服务器和域名,所以在本地写的时候,在“”下的“ ”中设置“Do not ”。域安全”被选中。

至于微信小程序的组件,也就是前端页面的开发,希望大家耐得住寂寞,努力在微信开发平台上努力。

成分:

*API:*

4.后端详解

我主要用java写后端。当然熟悉其他开发语言的也可以使用其他语言开发后台。现在我将解释如何用java编写后端API。主要框架、开发工具、服务器阿里云服务器。

创建maven项目并导入相关依赖:

pom.xml 依赖项

   
  
    org.springframework.boot
    spring-boot-starter-parent
    1.5.9.RELEASE
  
  
    
    
    
      org.springframework.boot
      spring-boot-starter-freemarker
    
    
    
      org.springframework.boot
      spring-boot-starter-web
    
    
    
    
      org.springframework.boot
      spring-boot-starter-web
      
        
          org.springframework.boot
          spring-boot-starter-tomcat
        
      
    
    
      org.apache.tomcat.embed
      tomcat-embed-jasper
    
  

在配置文件src/main//下创建。该文件可以修改一些配置参数等。

#jsp支持
spring.mvc.view.suffix=.jsp
spring.mvc.view.prefix=/WEB-INF/jsp/
#this is set port
#server.port=80
server.port=443
#添加ssl证书
#ssl证书文件名
server.ssl.key-store=classpath:xxxxxxx.pfx
server.ssl.key-store-password=xxxxxxxx
server.ssl.keyStoreType=xxxxxxxx

实际项目中,可能会涉及到数据库,必须集成。在文章中,我只做测试,并没有使用数据库进行测试。

首先创建入口程序:把代码贴在app.class下面:


@ComponentScan(basePackages= "com.bin")//添加扫包@ComponentScan(basePackages= "")
@EnableAutoConfiguration
public class App{
  //启动springboot
  public static void main(String[] args) {
    SpringApplication.run(App.class, args);
  }
}

启动项目时右键运行。

写一个测试微信小程序与java后台通信,代码如下:

@RestController
@SpringBootApplication
public class ControllerText {
  
  @RequestMapping("getUser")
  public Map getUser(){
    System.out.println("微信小程序正在调用。。。");
    Map map = new HashMap();
    List list = new ArrayList();
     list.add("zhangsan");
     list.add("lisi");
     list.add("wanger");
     list.add("mazi");
     map.put("list",list);
    System.out.println("微信小程序调用完成。。。");
    return map;
  }
  
  @RequestMapping("getWord")
  public Map getText(String word){
    Map map = new HashMap();
    String message = "我能力有限,不要为难我";
    if ("后来".equals(word)) {
      message="正在热映的后来的我们是刘若英的处女作。";
    }else if("微信小程序".equals(word)){
      message= "想获取更多微信小程序相关知识,请更多的阅读微信官方文档,还有其他更多微信开发相关的内容,学无止境。";
    }else if("西安工业大学".equals(word)){
      message="西安工业大学(Xi'an Technological University)简称”西安工大“,位于世界历史名城古都西安,是中国西北地区唯一一所以兵工为特色,以工为主,理、文、经、管、法协调发展的教学研究型大学。原中华人民共和国兵器工业部直属的七所本科院校之一(“兵工七子”),陕西省重点建设的高水平教学研究型大学、陕西省人民政府与中国兵器工业集团、国防科技工业局共建高校、教育部“卓越工程师教育培养计划”试点高校、陕西省大学生创新能力培养综合改革试点学校。国家二级保密资格单位,是一所以"军民结合,寓军于民"的国防科研高校。";
    }
    map.put("message", message);
    return map;
  }
  
  @RequestMapping("")
  public String getText(){
    return "hello world";
  }
}

至此基本完成了简单的后端框架和测试。

说明:@和@注解的区别@相当于两个注解,可以在前端页面(网页)中将后台获取的数据以json字符串的形式传输。微信小程序与后台的数据传输是json消息的形式。所以这也是选择框架开发小程序后台的主要原因之一。我们可以开发小程序的后端。

5.小程序发起网络请求

完成小程序的后台开发之后,接下来就是要从小程序发起网络请求了。

我们以一个简单的按钮请求数据为例:

wxml文件




    姓名:{{item}}
  

js文件

/**
   * 页面的初始数据
   */
  data: {
    list: '',
    word: '',
    message:''
  },
  houduanButton1: function () {
    var that = this;
    wx.request({
      url: 'http://localhost:443/getUser',
      method: 'GET',
      header: {
        'content-type': 'application/json' // 默认值
      },
      success: function (res) {
        console.log(res.data)//打印到控制台
        var list = res.data.list;
        if (list == null) {
          var toastText = '数据获取失败';
          wx.showToast({
            title: toastText,
            icon: '',
            duration: 2000
          });
        } else {
          that.setData({
            list: list
          })
        }
      }
    })
  }

下面以搜索类型请求为例:

.wxml 文件:

 
  
  
    {{message}}
  

js文件:变量的定义见前面的js文件

//获取输入框的内容
  houduanTab_input: function (e) {
    this.setData({
      word: e.detail.value
    })
  },
  // houduanButton2的网络请求
  houduanButton2: function () {
    var that = this;
    wx.request({
      url: 'http://localhost:443/getWord',
      data:{
        word: that.data.word
      },
      method: 'GET',
      header: {
        'content-type': 'application/json' // 默认值
      },
      success: function (res) {
        console.log(res.data)//打印到控制台
        var message = res.data.message;
        if (message == null) {
          var toastText = '数据获取失败';
          wx.showToast({
            title: toastText,
            icon: '',
            duration: 2000
          });
        } else {
          that.setData({
            message: message
          })
        }
      }
    })
  }

至此,简单的微信小程序与java后台的通信就完成了。

现在启动后台工程后就可以在微信开发工具上测试了。

演示效果:

后端架构构建小程序api调用后

微信图片_2 微信:.gif

至此小程序的前后端通信就完成了。

六、ps应用

事实上,它不是一个应用程序。购买域名后,可以申请免费的ssl证书。之前的配置文件中有证书配置。将证书的pfx文件添加到后端工程中即可。

7.购买服务器部署后端API代码

对于项目源码,我建议直接打开jar部署在服务器上。只需要在服务器上安装对应版本的jdk即可。项目部署命令:

我购买了阿里云的轻量级应用服务器部署。它更具成本效益。

运行命令: nohup java -jar helloworld.jar &

nohup表示没有服务器挂,表示,除非重启云服务器,否则没办法;最后的&表示执行命令后会生成日志文件nohup.out源码,当然也可以使用java -jar .jar。

源码数据获取方式:关注小编+转发文章+私信【0630】免费获取!!!!

Linux篇

1、用什么符号表示绝对路径?当前目录和上层目录是什么?

什么是主目录?切换目录用什么命令?

绝对路径:如/etc/init.d

当前目录和父目录:./ ../

主目录:~/

更改目录:cd

2、如何查看当前进程?如何执行退出?如何查看当前路径?

查看当前进程:ps

ps -l 列出本次登录相关的进程信息;ps -aux 查询内存中的进程信息;ps-辅助 | grep * 查询

* 过程的详细信息;top查看进程在内存中的动态信息;kill -9 pid 终止进程。

3.查看文件中的命令

vi文件名#编辑模式查看,可修改

cat 文件名#显示所有文件内容

more #分页显示文件内容

less 文件名#类似more,最好往前翻页

tail文件名 #只查看尾部,也可以指定行数

head文件名 #只查看文件头,也可以指定行数

4.列举几个常用的Linux命令

列出文件列表:ls [参数-a -l]

创建和删除目录:mkdir rmdir

用于显示文件的最后几行:tail,例如:tail -n 1000:显示最后1000行

打包:tar -xvf

打包压缩:tar -zcvf

查找字符串:grep

显示当前目录:pwd 创建一个空文件:touch

编辑:vimvi

5、你平时是怎么查看日志的?

Linux中查看日志的命令有很多:tail、cat、tac、head、echo等,本文只介绍几种常用的方法。

1. 尾巴

最常见的查看方式

命令格式:tail[必选参数][选择参数][文件] -f 循环读取 -q 不显示加工信息 -v 显示详细加工信息 -c 显示字节数 -n 显示行号 –

q, –quiet, –never the first part of the given file name -s, –sleep-=S 与-f一起使用,表示在每次重复之间

每 S 秒睡眠一次

例如:

tail -n 10 test.log 查询日志末尾最后10行的日志;

tail -n +10 test.log 查询10行后的所有日志;

tail -fn 10 test.log 循环实时查看最近1000行记录(最常用)

一般也和grep 结合使用,例如:

尾-fn 1000 test.log | grep ‘关键字’

如果一次性查询的数据量太大,可以翻页查看,例如:

tail -n 4700 aa.log |more -1000 可以多屏显示(ctrl+f或者空格键可以是快捷键)

2. 头部

和tail相反,head是看之前有多少行日志

head -n 10 test.log 查询日志文件中的前10行日志;

head -n -10 test.log 查询日志文件除最后10行以外的所有日志;

head的其他参数参考tail

3.猫

cat从第一行到最后一行连续显示在屏幕上

一次显示整个文件:

猫 >

将多个文件合并为一个:

猫-n >

清除日志文件:

$猫:>

注:> 表示创建,>> 表示追加。不要混淆。

cat的其他参数参考tail

4. 更多

more命令是基于vi编辑器的文本过滤器,以全屏方式逐页显示文本文件内容,支持vi

的关键字定位操作。更多列表内置了几个快捷键,常用的有H(获取帮助信息)、Enter(向下

滚动一行)、空格(向下滚动一屏)、Q(退出命令)。more命令是从前向后读取文件,所以在启动时

加载整个文件。

该命令每次显示一屏文字,满屏时停止,并在屏幕下方出现提示信息,给出目前已显示的文字

此文件的百分比:–更多– (XX%)

more的语法:more

Enter Down n lines,需要定义,默认为1行

Ctrl f 向下滚动一屏

空格键向下滚动一个屏幕

Ctrl b 返回上一屏幕

= 输出当前行的行号

:f 输出文件名和当前行的行号

v 调用 vi 编辑器

! 调用 Shell 并执行命令

q 退出更多

5. 搜索引擎优化

该命令可以搜索日志文件的特定,可以根据时间范围查询,也可以根据行号根据行号和时间范围进行查询

sed -n ‘5,10p’ 这样你只能查看文件的第 5 到 10 行。

按时间段


© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容