详解从0开始搭建微信小程序(前后端)的全过程(2)

域名是用来映射到IP上,便于直接使用域名访问其绑定IP所在的服务器。虽然直接用IP和端口的形式也可以访问到我们购买的云服务器,但是一来IP不好记,二来微信不允许使用IP加端口形式的url。所以只能“慷慨解囊”购买一个域名了。

域名可以在任意域名服务商购买,我为了方便也是直接在腾讯云上买的,购买链接:域名注册

详解从0开始搭建微信小程序(前后端)的全过程

3. 域名解析

买好了域名,那这个域名怎么用呢,不和IP配套使用的域名是没有任何意义的域名。这里我们需要将这个域名或者其子域名绑定在我们需要对外提供服务的服务器所对应的IP上,也就是我刚刚购买的云服务器的IP上。

在腾讯云后台的云解析里,点击你的域名添加记录,一般主要是添加A记录,也就是将域名绑定到IPv4地址上,可以添加多条,以主机记录区分各级的域名,@表示直接使用二级域名xxx.com,其他的则表示使用三级或更多级的域名,挂在你自己二级域名以下的多级域名都归你管。

详解从0开始搭建微信小程序(前后端)的全过程

4. 域名备案

为什么要域名备案呢?这个,普天之下莫非王土,互联网这块一亩三分地自然也是属于国家的,不能随随便便让你接入服务。要想在这块地开垦拓荒,不是不可以,只是需要向国家报备,接受监管。

整个小程序的搭建过程,域名备案花的时间是最长的,花了十几二十天。进入备案页面:开始备案,详细的我就不多说了, 备案过程详情参考:网站备案 主要流程包括下面几个:

(1) 办理幕布拍照 (2) 验证备案信息 (3) 填写主体信息 (4) 填写网站信息 (5) 上传材料 (6) 确认备案信息,提交初审 (7) 通过审核,完成备案

5. 购买SSL证书

为什么需要SSL证书呢?因为配置了SSL证书后可以让我们的url以https开头,这是微信小程序中要求的域名访问方式,以加密传输的方式更加安全。

说是购买,其实你可以选择免费的证书“购买”,一样可以达到目的,只是没有付费的加密功能强,安全性自然弱了一等。不过这也阻拦不了我选择免费的,毕竟穷字当头。

进入购买页面:SSL证书, 选择你要购买的证书的配置,下单付钱即可,将证书下载下来,后续配置web服务器用得着。

小结

经过了前面5个大步骤,这时我们的服务器具备了使用https协议通过域名访问的能力。接下来的工作就剩下开发我们的后端接口以及把后端程序代码部署到这台服务器上供小程序访问。

后端程序开发

环境:

开发语言:Java 8

开发集成环境:IntelliJ IDEA Ultimate 2017

web框架:Springboot

构建工具:Maven

安装这些工具就不细讲了,网上一大堆教程,而且要是不懂后端开发的,安装了这一套环境也没用,这里姑且假设读者也是懂一定的后端开发知识。

下面列出最主要的一部分Java代码来说明后端程序是怎么提供的http接口:

@RestController @RequestMapping(value = "/movie") public class MovieListController extends MovieBaseController{ private static final Logger log = org.slf4j.LoggerFactory.getLogger(MovieListController.class); /** * 豆瓣top250电影 * test: :8080/movie/top250?start=0&limit=10 */ @RequestMapping(value = "/top250") public CommonRespVo<List<ListCommonVo>> getMovieTop250() { try { HttpServletRequest request = this.getHttpServletRequest(); String start = request.getParameter("start"); String limit = request.getParameter("limit"); String url = String.format("https://api.douban.com/v2/movie/top250?start=%s&count=%s",start,limit); JSONObject jsonObject = HttpUtil.getInfoFromHttpApi(url); List<ListCommonVo> listCommonVos = this.movieListDataTrans(jsonObject); if (CollectionUtils.isNotEmpty(listCommonVos)) { return new CommonRespVo(listCommonVos, CommonRespVoCode.SUCCESS); } } catch (Exception e) { log.error("获取豆瓣top250电影信息异常",e); } return new CommonRespVo(CommonRespVoCode.FAILED.code, "未获取到数据"); } /** * 华语top100电影 * test: :8080/movie/chinaTopMovie?start=0&limit=10 */ @RequestMapping(value = "/chinaTopMovie") public CommonRespVo<List<JSONObject>> getChinaTopMovie() { try { List<JSONObject> result = this.getSubList(Lists.newArrayList(ChinaTopMovieData.chinaTopMovieData)); if (CollectionUtils.isNotEmpty(result)) { return new CommonRespVo(result, CommonRespVoCode.SUCCESS); } } catch (Exception e) { log.error("获取华语Top电影信息异常",e); } return new CommonRespVo(CommonRespVoCode.FAILED.code, "未获取到数据"); } //省略后续代码 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/d5e5c468f485c66ceb744661f4fa3f78.html