这些天我做了个API站点

  何为API?简单来说就是别人为你提供一些服务的接口。就像某些软件内部提供天气数据,一般也都是调用的类似中国天气之类的API服务,当然用python等去爬取网页也是可以的啦|´・ω・)ノ
  那么,怎么用php去做一个最简单的API接口呢?就以我做的一句话API为例,当我们访问https://api.xsot.cn/sentence/时他便给我们返回了一个由json格式化后的数组:

{
    "uuid": "82a944fd-8098-4b12-9177-6fd285e4efa8",
    "sentence": "成一事者,是失之不渝的愚者;毁一事者,是停滞不前的贤者。",
    "type": "a",
    "from": "不正经的魔法讲师",
    "from_who": "",
    "created_at": "1557302125"
}

  这是一般API的返回格式-即json,那么如何实现呢?我们来看一个最简单的案例:

<?php 
  $data = array(
  "msg" => "hello world!"
  )
  //返回的数据
  header('Content-type:text/json');
  //json头
  exit(json_encode($data));
  //返回数据
?>

  这样你便完成了一个最简单的API接口,将需要的数据放在一个data数组中,之后将这个数组转化成json,最后将转化后的json返回即可。
  当需要调用接口的时候只需要:

$data = file_get_contents("https://api.xsot.cn/sentence/");

  再将他解码下,并调用其中的数据即可

$arr = json_decode($data,true);
$sentece = $arr['sentence'];

  做这个平台的时候遇到的最大的问题可能就是一言的js返回了吧,因为没学过js,对js的同步调用函数不太理解,一开始我是直接使用htmlspecialchars()函数直接将js给echo出来???然后?居然调用的时候出错了,查了半天资料最后才发现没有使用text/js的http报头,我也很是无奈 ̄﹃ ̄
  然后在做网易云音乐的时候,因为网易云音乐官方并未提供API接口,只能自己抓包,然而网易云音乐UWP版本在开启Fiddler的时候居然连不上网。在查询微软官方文档之后发现,这可能是UWP的特性?(╯‵□′)╯︵┴─┴因为UWP貌似不能开代理,微软官方也给出了解决方法,但是我并没有尝试。最后的话还是在Github找了半天找到了一些网友给出的接口吧

最后

  最后的话,我的API站点是:
  
  欢迎大家调用啊!ヾ(≧∇≦*)ゝ

Last modification:March 8th, 2020 at 12:56 pm
If you think my article is useful to you, please feel free to appreciate