很多新手对于API很头疼,不知道API是干嘛的,其实简单的说就是把原来传到模板上的东西用JSON输出一下罢了,这也就是为什么都是先写后台,后写API,稍微改改就行了,下面举个简单的例子:
你原来的路由是这样写:
Route::resource('myschool','MyschoolController');
然后你把MyschoolController.php复制一份,放到Controllers/Api文件夹(新建)下 Route::resource('myschool_api','Api\MyschoolApiController');
你原来的展示页面的控制器是这样写的:
public function index(){
return view("home.myschool.index")->withSchool(School::find(1));
}
写成API就稍稍改变一下,让他return个json就行
public function index(){
$page=School::find(1);
return response()->json(['status'=>1,'msg'=>'查询成功!','data'=>$page->toArray()]);
}
其中,status是状态码,msg是反馈信息,data是你查到的东西,别忘了后面的toArray(),要不出来一大堆东西。
做API就是这样简单,不管是增删改查哪个,你给他都返回一个json就可以,举个删除的例子
例如删除方法,以前是跳转到页面,而API是返回一个JSON:
public function destroy($id)
{
$page = School::find($id);
if ($page->delete()) {
return response()->json(['status'=>1,'msg'=>'删除成功!']);
} else {
return response()->json(['status'=>0,'msg'=>'删除失败!']);
}
}
还有就是,测试API的话使用谷歌浏览器自带的插件POSTMAN十分好用,GET是查询,POST是新增,PUT是更新,DELETE是删除,不过他是不支持从表单传参数的,要从地址栏传参数,例如你的地址是:http://localhost:8000/myschool_api/10,这个地址就是意味着你要对ID是10的数据进行操作,你选put他就是更新,你选delete他就是删除