这些天,我做了个API
这些天我做了个API站点
何为API?简单来说就是别人为你提供一些服务的接口。就像某些软件内部提供天气数据,一般也都是调用的类似中国天气之类的API服务,当然用python等去爬取网页也是可以的啦|´・ω・)ノ
那么,怎么用php去做一个最简单的API接口呢?就以我做的一句话API为例,当我们访问 https://api.xsot.cn/sentence/
时他便给我们返回了一个由json格式化后的数组:
1 | { |
这是一般API的返回格式-即json,那么如何实现呢?我们来看一个最简单的案例:
1 |
|
这样你便完成了一个最简单的API接口,将需要的数据放在一个data数组中,之后将这个数组转化成json,最后将转化后的json返回即可。
当需要调用接口的时候只需要:
1 | $data = file_get_contents("https://api.xsot.cn/sentence/"); |
再将他解码下,并调用其中的数据即可
1 | $arr = json_decode($data,true); |
做这个平台的时候遇到的最大的问题可能就是一言的js返回了吧,因为没学过js,对js的同步调用函数不太理解,一开始我是直接使用htmlspecialchars()函数直接将js给echo出来???然后?居然调用的时候出错了,查了半天资料最后才发现没有使用text/js的http报头,我也很是无奈 ̄﹃ ̄
然后在做网易云音乐的时候,因为网易云音乐官方并未提供API接口,只能自己抓包,然而网易云音乐UWP版本在开启Fiddler的时候居然连不上网。在查询微软官方文档之后发现,这可能是UWP的特性?(╯‵□′)╯︵┴─┴因为UWP貌似不能开代理,微软官方也给出了解决方法,但是我并没有尝试。最后的话还是在Github找了半天找到了一些网友给出的接口吧