本节学习怎么从服务器加载数据。
JS中调用的基本都是RESTFul API接口,推荐JSON,虽然网页文件流都可以。SOAP用的很少了,企业级还用,互联网基本都是RESTFul了。
没有自己服务器的情况下,最好还是使用开放的API调用数据,填充小程序。RESTFul API其实就是一个url,只不过是一个语义化的URL,没什么特殊的。和访问慕课网官网拿到的数据一样,只不过RESTFul API更偏向于获取业务数据。但是访问网址的时候,拿到的是一个HTML数据。当然可以用RESTFul API获取一个HTML数据,调用RESTFul API时候,会设置content type,可以自己设置,一个application,xml也可以是其他流媒体。
微博,豆瓣都可以。
看一下快速入门介绍
这就是接口调用的地址不像是方法调用,这里就是一个http请求,豆瓣是https。下面是返回值,数据的结果。
返回值为json:
这个东东就是跟本地数据库一毛一样哦。以后就可以不用本地数据啦,哈哈哈。
本质没区别,只不过是要用网络调用。
RESTFul API接口一个好处:URL是可以自描述的。就是一看就知道是什么意思。
比如 :https://api.douban.com/v2/book/1220562
网址 版本号 图书 id 一看就知道是要获取这个图书的信息。
比如github的RESTFul API 就是很好的。接口是很容易实现的,难的是粒度。因为服务器的API编写之后,希望接口越细越好。如果是针对业务写的,那么业务一变,基本废了,但是如果接口粒度足够小,业务变了,可以从小的粒度接口组合起来,满足新的接口。实际编写接口还是要在具体业务,看接口细化到哪里。
另外一个决定api好坏的,就是看api的语义化,能不能一看就知道什么意思。
下面看怎么从 小程序里面访问豆瓣的API,先写一个简单示例:
比如在movies.wxml中onLoad中调用一下。小程序里发起网络请求用Request
提交数据时候,才会用9行data。10不同方法,不同操作,一般用get,开放的api,不太可能让你提交数据。
比如豆瓣电影TOP250,看一下提供的api
8行的url就写https://api.douban.com/ 然后加这里的/v2/movie/top250。这个路径就非常清晰了啊。成功的话,输出res,失败了输出failed。运行后有错误,一般参数有错误。
为什么返回的是错误信息,却还是输出了res?这个地方确实Request还是执行成功了。请求参数是错误的,但是请求是发送成功了。只有网断了,请求超时的时候,会走fail。小程序的网络请求根本没有建立成功。访问接口都没哟成功。本例请求是建立成功了。多尝试,有问题多尝试,经验帮助快速解决问题。接下来设置header的content-type:"application/xml" 不能写application/json。建议写ontent-type:"json"。
前端的缓存和优化对于减少服务器的压力来说非常重要,所以一定要了解http等知识。
网友评论