logo头像

博学广问,自律静思

谈谈网络API

尤其是微信公众平台的流行以来,网络API越来越流行。没有任何技术和资源的互联网爱好者,都可以借助网络上免费、开放的API搭建自己的公众号,而且功能也可以相当强大,比如查天气、查股票、查火车票、聊天讲笑话、查IP、手机归属地……当然,网络API的使用不仅仅局限于微信开发,还可以适用于安卓等移动端软件开发。 很多软件都有天气查询功能,但并不是所有的天气软件开发者“家”里都有天气卫星和地面观测站;很多软件都有根据用户所处位置提供有针对性的服务:比如你想用饿了么点一份快餐,它能根据你的位置找到你附近的餐厅;你用美团买附近电影院的观影票,现在的问题是:你觉得饿了么和美团会开发一套定位加地图的系统吗?现在国内比较知名的地图应用有高德地图和百度地图,两者提供了定位、导航的API和相关开发者SDK和文档。 API 个人认为,网络开放接口很大一部分程度推动软件应用尤其是移动应用的繁荣。借助天气API,我们可以很简单地实现制作一个查天气的APP,然后辅以百度地图API可以很简单地知道你当前所处地方的天气了。而这些,如果没有诸多的开放平台,没钱没技术的开发者是无法实现的,这也很大地降低了开发者的成本和门槛。 网络上API有免费的,比如地图定位、IP、手机归属地;也有收费的,比如你要为你的网站登录加入短信验证码认证,也有的是在一定使用次数内免费,在使用次数超出免费套餐外的需要收费。 就我所见的,目前互联网免费的网络API很多,大部分是JSON和webservice,还有一些其它编程语言的开发平台SDK。

你有没有想过为自己的数据搭建个API?

在之前的文章依托虚拟主机为自制APP提供软件更新服务中我介绍了怎样用PHP访问数据库返回JSON格式字符串,从而搭建自己的网络API;在文章我介绍了使用java+webservice连接数据库发布数据和实现查询、增删数据操作。 极客人最近就想到了学校教务系统就可以为学生查询成绩搭建一个API,一卡通中心可以提供一个查询账单的API,学校的跑操系统提供查询跑操次数,这些都是分分钟可以实现的问题,不知道学校不尝试一下呢,然后交由第三方实现相关APP。当然官方不开放API,并不代表第三方没有办法,办法是有的但是很暴力,那就是模拟用户登录、抓取页面然后解析数据提供给用户。但这样做实在是麻烦,也耗费程序猿的脑力。